● اشاره:
در این مقاله، شما با ضرورت وجود سیستم‌عامل در كامپیوتر آشنا می‌‌شوید و دو وظیفه اساسی آن را فراخواهید گرفت. در این مقاله مثال‌‌های متنوعی در مورد عمل‌كرد سیستم‌عامل ذكر شده است. پس از مطالعه‌ی این مقاله، خواننده باید بتواند دو وظیفه‌ی اصلی سیستم‌‌عامل را با ذكر یك مثال بیان كند و اصطلاحات O.S. ،APT و VM را نیز تعریف نماید.
● ضرورت وجود سیستم‌‌عامل:
آیا می‌‌دانید رابطه‌ی كامپیوتر با سیستم‌‌عامل چیست؟ آیا می‌‌دانید سیستم‌‌عامل چه خدمت بزرگی به شما می‌‌كند؟ سیستم‌‌عامل نرم‌‌افزار یا برنامه‌‌ای است كه شما را از پیچیدگی‌‌های سخت‌‌افزاری دور كرده و رابطه شما را با كامپیوتر به یك رابطه صمیمی‌‌تر تبدیل می‌‌كند و این هنر سیستم‌‌عامل است. كامپیوتر دستگاهی است سخت‌‌افزاری كه از قطعات مختلفی مانند ریزپردازنده، حافظه، دیسك سخت، كی‌‌برد،... تشكیل شده است ولی هیچیك از این قطعات حس و شعور ندارند تا به خودی‌خود، برای شما كاری انجام دهند، بلكه این شما هستید كه بایستی به این مجموعه قطعات بی‌‌روح، فرمان بدهید، خطاهای آنها را در نظر بگیرید و از میان عمل‌كرد آنها جواب خود را بیابید و یا ارتباط این قطعات را با یكدیگر حفظ كنید.
▪ تفسیر: چند قطعه كامپیوتری كه تار عنكبوت روی آنها بسته شده است
▪ نوشته: قطعات كامپیوتری بدون نرم‌‌افزاری بی‌‌فایده هستند.
مهمترین قطعه سخت‌‌افزاری یك كامپیوتر كه مغز متفكر آن هم خوانده می‌‌شود، CPU یا ریزپردازنده ((Micro Processor نام دارد. تمامی این اسامی در كامپیوترهای شخصی معادل یكدیگر هستند. اما این مغز متفكر همه‌ی كارها را انجام می‌‌دهد؟ CPU با تمام قدرتی كه دارد فقط می‌‌تواند دستوراتی را كه به او داده می‌‌شود انجام دهد. هر چه CPU قدرتمند‌‌تر باشد سرعت انجام این دستورات بیشتر است و دستورات هم متنوع‌‌تر خواهند بود ولی به هر حال CPU قدرت مدیریت سخت‌‌افزارها را ندارد و یا نمی‌‌تواند بین سخت‌‌افزارهای مختلفی كه در كامپیوتر وجود دارد هماهنگی ایجاد كند. این شما هستید كه با نوشتن برنامه‌‌های كامپیوتری مختلف، از سخت‌افزارها بهره می‌ببرید و مدیریت آنها را انجام می‌دهید. مثلاً اگر بخواهید فایل را از روی دیسك‌سخت (Hard Disk) بخوانید بایستی برنامه‌‌ای بنویسید كه كارهای زیر را انجام دهد:
▪ به نقطعه مشخصی در روی دیسك‌سخت بروید كه در آنجا لیست نام فایل‌‌ها قرار دارد.
▪در میان انبوهی از نام فایل‌‌ها، اسم فایل خود را جستجو كنید.
▪اگر اسم فایل را یافتید، در كنار نام فایل اطلاعات مربوط به محل قرار گرفتن فایل در روی دیسك‌سخت و اندازهٔ فایل (برحسب بایت) را بخوانید و یادداشت كنید.
▪ سپس به نقطه‌ی موردنظر روی دیسك‌سخت مراجعه كرده و فایل را از روی دیسك‌سخت بخوانید. همچنین باید دقت كنید كه اطلاعات خوانده شده از روی دیسك خراب نشده باشند. ملاحظه كردید كه كنترل و هدایت دیسك‌سخت، بسیار مشكل است.كنترل سایر سخت‌افزارها نیز اگر مشكل‌‌تر نباشد، ساده‌‌تر نخواهند بود. با این تفاسیر احتمالا"از كار كردن با كامپیوتر منصرف شده‌‌اید. اما نگران نباشید!
در هر كامپیوتر، نرم‌‌افزاری به نام سیستم‌‌عامل موجود است كه این وظیفه‌ی خطیر، دشوار و دائمی را به عهده دارد. اگر سیستم‌‌عامل نبود، شما مجبور بودید برای هر بار روشن كردن كامپیوتر خود، برنامه‌‌ای به آن بدهید كه سرگردان نباشد و بداند پس از روشن شدن، چه باید بكند. احتمالا" با نام سیستم‌‌عامل معروفDos (یا همان MS-DOS) آشنا هستید و یا شاید نام سیستم‌‌عامل‌‌های دیگری از قبیل Windows ۹۵, UNIX,DR_DOS, OS/۲ و یا Windows NT را شنیده باشید. هر یك از این سیستم‌‌عامل‌‌ها با یكدیگر چه فرقی می‌‌كنند و یا آیا اصولا" با هم تفاوت دارند؟ كدامیك بهتر از دیگری است؟ برای پاسخ به این سؤالات لازم است وظیفه سیستم‌‌عامل را دقیق‌‌تر بشناسیم.
● وظایف سیستم‌‌عامل:
در تقسیم‌‌بندی فعالیت‌‌های سیستم‌‌عامل، دو وظیفه اصلی را برای آن در نظر می‌‌گیرند:
الف) پنهان كردن پیچیدگی‌‌های سخت‌‌افزار از دید كاربر
ب) مدیریت سخت‌‌افزارها
الف) پنهان كردن پیچیدگی‌‌های سخت‌‌افزاری از دیدگاه كاربر
مهندسین كامپیوتر با توجه به پیچیدگی و دشواری برنامه‌‌ریزی و مدیریت سخت‌‌افزار توسط كاربران، سعی كردند كه این مشكلات و پیچیدگی‌‌ها را از دیدگاه كاربر مخفی نگهدارند و او را با این كارها درگیر نسازند. لذا برنامه‌‌ای كامپیوتری تهیه كردند كه وظیفه‌‌اش گرفتن دستورات از شما و اجرای آنها با توجه به تمام ظرافت‌‌ها و پیچیدگی‌‌های سخت‌‌افزار است، كه در چند سطر فوق بخشی از این پیچیدگی را در رابطه با دیسك‌‌سخت بیان كردیم. به این ترتیب، سیستم‌‌عامل را می‌‌توان مانند پوششی دانست كه پیچیدگی‌‌های سخت‌‌افزاری را از دید كاربر مخفی نگه می‌‌دارد.
گاهی اوقات كاربر درخواست‌‌های خود را در مورد استفاده از سخت‌‌افزار مستقیما" از سیستم‌‌عامل می‌‌خواهد. مثلا" وقتی كه شما دستور dir c: را اجرا كنید، مستقیما" از سیستم‌‌عامل درخواست كرده‌‌اید. پس در این حالت سیستم‌‌عامل رابط بین شما و سخت‌‌افزار است.
اما هنگامی كه یك برنامه كاربردی مثلNorton Commander را اجرا می‌‌كنید، درخواست‌‌های خود را به برنامه كاربردی اعلام كرده و آن برنامه ارتباط شما با سیستم‌‌عامل برقرار می‌‌كند.
در مورد وظیفه اول باید گفت برخی سیستم‌‌عامل‌‌ها را با یكدیگر مقایسه می‌‌كنیم. اگر بخواهید در كامپیوتری كه سیستم‌عامل آن MS-DOS است، برنامه NC را اجرا كنید، باید روی خط فرمان(Norten Commander )، كلمه‌ی NC را تایپ كرده و كلید Enter را بزنید. ولی این كار در سیستم‌‌عاملWindows ۹۵ به سادگی قابل اجرا است. كافیست روی شمایل(Icon) مربوط به برنامه NC دوبار كلیك كنید تا برنامهNC اجرا شود. بنابراین می‌‌توان گفت در زمینه ارتباط با كاربر، سیستم‌‌عاملWindows ۹۵ ساده‌‌تر از كار كردن با سیستم‌‌عامل MS-DOS است. سیستم‌‌عامل UNIX برای ارتباط با كاربر زبان پیچیده‌‌تری نسبت به سیستم‌‌عامل Windows ۹۵ دارد، لذا از این جهت سیستم‌‌عامل UNIX نسبت به Windows ۹۵ در سطح پایین‌‌تری قرار دارد. به‌طور كلی می‌‌توان گفت سیستم‌‌عامل‌‌هایی كه برای ارتباط با كاربر از تصاویر استفاده می‌‌كنند، موفق‌‌تر از سیستم‌‌عامل‌‌هایی هستند كه از خط فرمان استفاده می‌‌نمایند، چرا كه "یك تصویر به هزار كلمه می‌‌ارزد" . در مورد سیستم‌‌عامل‌‌هایی كه برای ارتباط با كاربر از تصویر استفاده می‌‌كنند،اصطلاحا" گفته می‌‌شود كه یك رابط تصویری برای كاربر دارند و یا به طور خلاصه‌‌تر، رابط كاربر تصویری(GUI) دارند. پس سیستم‌‌عاملWindows ۹۵ دارای GUI است. Windows NT نیز دارای GUI است. موفقیت ارتباط تصویری با كاربر باعث شده است، سایر سیستم‌‌عامل‌‌ها نیز به این جهت پیش روند كه رابط خود با كاربر را به یك رابط تصویری تبدیل كنند. به همین دلیل است كه برای سیستم‌‌عاملUNIX، یك رابط گرافیكی با كاربر به نام X Windows طراحی شده است و یا سیستم‌عامل كامپیوترهایApple- Macintoch یك رابط گرافیكی دارد.
هر سیستم‌‌عامل برای ارتباط با برنامه‌ی كاربردی از زبان مخصوص به خود استفاده می‌‌كند، یعنی اگر شما بخواهید برنامه‌‌ای بنویسید كه تحت سیستم‌‌عامل خاصی اجرا شود باید به زبان مخصوص (لیست دستورات قابل فهم) آن سیستم‌‌عامل آشنا شوید. به این زبان ارتباط با برنامه‌‌های كاربردی، API می‌‌گویند.
مثلا" سیستم‌‌عامل MS-DOS دارای لیست دستورات خاصی است كه برنامه‌‌های كاربردی فقط می‌‌توانند از این لیست دستورات برای ارتباط با سیستم‌‌عامل MS-DOS استفاده كنند، بنابراین سیستم‌‌عامل MS-DOS، API خاص خود را دارد. سیستم‌‌عامل Windows ۹۵ نیز دارای API مخصوص به خود است. سایر سیستم‌‌عامل‌‌ها نیز این‌گونه‌‌اند. چون ممكن است زبان API یك سیستم‌‌عامل با API سیستم‌‌عامل دیگر نیز اجرا شوند. مثلا" برنامه‌‌های تحت سیستم‌‌عامل UNIX، بر روی سیستم‌‌عامل MS-DOSاجرا نمی‌‌شوند. زیرا زبان API مربوط به UNIX با زبان API مربوط به MS-DOS فرق می‌‌كند. می‌‌توان گفت كه با ورود هر سیستم‌عامل جدید به دنیای سیستم‌‌عامل‌‌ها، مجموعه‌‌ای از برنامه‌‌های كاربردی مورد نیاز است كه با API آن سیستم‌‌عامل همخوانی داشته باشند.گاهی در مورد وظیفه سیستم‌‌عامل برای پنهان كردن پیچیدگی‌‌های سخت‌‌افزاری از دید كاربر، گفته می‌‌شود كه سیستم‌‌عامل به كاربر كامپیوتر دیگر ارایه می‌‌دهد كه كاركردن با آن ساده‌‌تر از كامپیوتر واقعی است، یعنی سیستم‌‌عامل به كاربر یك كامپیوتر مجازی معرفی می‌‌كند كه این كامپیوتر مجازی پیچیدگی كامپیوتر واقعی را ندارند. به این كامپیوتر مجازی، ماشین مجازی یا (Virtual Machine) گفته می‌‌شود. البته مفهوم ماشین مجازی یا VM در موارد دیگری هم به كار می‌‌رود كه در آینده در مورد آن بیشتر خواهیم گفت.ب) مدیریت سخت‌‌افزارها توسط سیستم عامل
شاید توان گفت كه این وظیفه سیستم‌‌عامل مهمتر از وظیفه قبلی است، زیرا هرگونه اشكال و ضعف در این مدیریت، می‌‌تواند منجر به خرابی و اشكال در كل كامپیوتر شود. اگر برخی مواقع ملاحظه می‌‌كنید كه كامپیوتر شما به هنگام اجرای یك برنامه قفل (Hang) می‌‌كند، به‌دلیل ضعف مدیریت سیستم‌‌عامل است. یك سیستم‌عامل قوی هرگز به نرم‌‌افزارهای كاربردی اجازه نمی‌‌دهد كه مستقیما" به سخت‌‌افزار دسترسی پیدا كنند، زیرا مدیریت سخت‌‌افزارها به عهده سیستم‌‌عامل است و اگر آشپز دو تا شود آش یا شور است یا بی‌‌نمك. اگر مدیریت سخت‌‌افزار كامپیوتر خود را به یك سیستم‌‌عامل معمولی واگذار كنید. باید منتظر هرگونه حادثه‌‌ای باشید. سیستم‌‌عامل مدیر سخت‌‌افزار سیستم است، زیرا تمام سخت‌‌افزارها در اختیار سیستم‌عامل قرار دارد و هدایت و كنترل آنها به عهده سیستم‌‌عامل است. مجموعه‌‌ای متشكل از CPU ، صفحه كلید، دیسك سخت، فلاپی، صفحه‌نمایش، حافظه و ... را در نظر بگیرید كه هر یك با قراردادها و روش‌‌های خاص خودشان كار می‌‌كنند.
مثلا" صفحه كلید، اطلاعات خود را بیت به بیت تحویل می‌‌دهد. ولی ارسال اطلاعات برای كارت گرافیكی بایت به بایت انجام می‌‌شود، یا این‌كه CPU فقط برنامه‌‌هایی را اجرا می‌‌كند كه در حافظه اصلی قرار گرفته باشند. مدیر لایق وكاردانی كه بر این مجموعه مدیریت می‌‌كند، با هر عنصر به زبان خاص خودش صحبت می‌‌كند و همه این اجزای را با هم هماهنگ می‌‌نماید و كاربر سرویس و خدمات لازم را رابط سیسم‌‌عامل دریافت می‌‌كند.
هرچه مدیریت سیستم‌‌عامل قوی‌‌تر باشد، از امكانات سخت‌‌افزاری بیشتر و بهتر می‌‌توان استفاده كرد. اگر سیستم‌‌عامل قوی باشد می‌‌تواند در آنِ واحد به چندین نرم‌‌افزار كاربردی سرویس بدهد. اگر سیستم‌‌عامل قوی باشد می‌‌تواند درخواست‌‌های غیرمنطقی نرم‌‌افزارهای كاربردی را با پاسخ منطقی جواب دهد. اگر سیستم‌‌عامل قوی باشد می‌‌تواند امكانات سخت‌‌افزاری خود را به سایر كامپیوترها ارایه بدهد(اشتراك سخت‌‌افزار).
اگر سیستم‌‌عامل قوی باشد هرگز به برنامه‌ی كاربردی اجازه نمی‌‌دهد كه مستقیما" به سخت‌افزار دسترسی پیدا كند، زیرا دسترسی برنامه‌ی كاربردی به سخت‌‌افزار، یعنی دخالت در مدیریت وسیستم‌‌عامل MS-DOS از این جهت، قابل انتقاد است. یعنی به‌دلیل ضعف در مدیریت MS-DOS، نرم‌‌افزارهای كاربردی می‌‌توانند به سخت‌‌افزار دسترسی پیدا كنند و كنترل سخت‌‌افزار را به عهده بگیرند و این یكی از دلایلی است كه برخی مواقع كامپیوتر تحت سیستم‌‌عامل MS-DOS قفل (Hang) می‌‌كند. برای روشن شدن نقش سیستم‌‌عامل در این مدیریت، چند مثال می‌‌آوریم. یكی از سخت‌‌افزارهایی كه تحت كنترل سیستم‌‌عامل قرار دارد، دیسك سخت است. نحوهٔ قرار گرفتن فایل‌‌ها بر روی دیسك سخت از جمله وظایف سیستم‌‌عامل است و این مدیر هر طرحی یا راه‌‌حلی كه برای این مورد پیشنهاد كند، مستقیما" بر عمل‌كرد كامپیوتر تأثیر می‌‌گذارد.
مثلا" سیستم‌‌عامل MS-DOS برای نامگذاری فایل‌‌ها از قانون ۸۰۳ استفاده می‌‌كند. یعنی نام فایل از دو قسمت تشكیل شده است، بخش اول نام فایل حداكثر از هشت كاراكتر تشكیل می‌‌شود و قسمت دوم كه پسوند (extension) است، حداكثر سه كاراكتر خواهد بود. پس در سیستم‌‌عامل MS-DOS ، نام یك فایل حداكثر ۱۱ كاراكتر است. سیستم‌‌عاملOS/۲ برای این مورد راه‌‌حل دیگری در نظر گرفته است و آن اختصاص ۲۵۴ كاراكتر برای نام هر فایل است كه به این ترتیب سیستم‌‌عاملOS/۲ در مورد نام فایل‌‌ها راه حل بهتری ارایه داده است.یكی دیگر از سخت‌‌افزارهای كامپیوتر، میكروپروسسور را انجام دهد، یعنی می‌‌توانید روی كامپیوتری كه دو میكروپروسسور دارد، از سیستم‌‌عاملWindows NT استفاده كنید ولی سیستم‌‌عاملMS-DOS در این مورد قابل استفاده نیست. استفاده از دو میكروپروسسور به معنی افزایش قدرت و سرعت كامپیوتر است، پس نقش سیستم‌‌عامل در افزایش قدرت كامپیوتر نیز مشخص گردید.
سیستم‌‌عامل چون رابط كاربر و سخت‌‌افزار است می‌‌تواند سطح دسترسی كاربر به سخت‌‌افزار كامپیوتر را تعیین كند. البته این بدان معنی نیست كه همه سیستم‌‌عامل‌‌ها دارای این قابلیت هستند. سیستم‌‌عامل UNIX می‌‌تواند لیستی از كاربران كامپیوتر را تهیه كند و برای هر یك اجازه دسترسی به امكانات كامپیوتری را تعیین نماید. مثلا" كاربری به نام Admininstrator (مدیر) بتواند به تمام فایل‌‌های روی دیسك‌سخت دسترسی داشته باشد، در حالی كه كاربر دیگری، مثلا" بنام John، فقط به بخشی از فایل‌‌های روی دیسك‌سخت دسترسی داشته باشد. به این ترتیب از یك كامپیوتر چندین نفر استفاده می‌‌كنند و امنیت فایل‌‌های روی دیسك‌سخت نیز حفظ شده است. هرگاه این كامپیوتر را روشن می‌‌كنید، سیستم‌‌عاملUNIX نام كاربر و اسم رمز وی را جویا می‌‌شود و بر اساس نام كاربر، سطحی از دسترسی به كامپیوتر را كه برای وی تعیین شده است، در اختیار كاربر قرار می‌‌دهد. پس امنیت فایل‌‌ها نیز به سیستم‌‌عامل بستگی دارد.
از مطالب فوق نتیجه می‌‌گیریم كه نقش سیستم‌‌عامل در بهره‌‌وری و استفاده درست از سخت‌‌افزار كاملا" مشهود است و نقش دیگری كه سیستم‌عامل بازی می‌‌كند پنهان كردن چهرهٔ پیچیده سخت‌‌‌‌افزار از دید كاربر است. امیدواریم دید بهتری نسبت به نقش سیستم‌‌عامل به دست آورده باشید. در شماره‌‌های بعد مطالب بیشتری با ذكر جزییات از ساختار سیستم‌‌عامل، وظایف آن در رابطه با اجزای سخت‌‌افزاری و مقایسه سیستم‌‌عامل بیان خواهیم كرد.