سیستم عامل (Operating System) یا به اختصار OS، مهمترین نرم افزار رایانه است که مدیریت همه اجزای سخت افزاری و نرم افزاری آن را بر عهده دارد. وظیفه اصلی آن برقراری ارتباط بین کاربر و رایانه است؛ درواقع سیستم عامل به عنوان مترجم میان کاربر و کامپیوتر عمل میکند و دستورات کاربر را به زبان قابل فهم برای رایانه ترجمه میکند. سیستم عامل مغز متفکر و هدایتکننده کامپیوتر است. سیستم عامل تمام اجزای سختافزاری و نرمافزاری کامپیوتر را کنترل و هماهنگ میکند تا کامپیوتر بتواند به درستی کار کند. بدون حضور سیستم عامل، کامپیوتر تنها یک مجموعه از قطعات الکترونیکی بیفایده خواهد بود، درست مانند یک خودروی بدون راننده که نمیتواند به مقصد برسد.
در هنگام روشن شدن رایانه، برنامه بوت لودر، سیستم عامل را از هارد دیسک خوانده و در حافظه رم بارگذاری میکند؛ سپس سختافزار برای دسترسی به نرمافزارها از طریق رابط برنامه نویسی کاربردی (API) با سیستم عامل ارتباط برقرار میکند. کاربر نیز میتواند به طور مستقیم از طریق رابط کاربری با سیستم عامل تعامل داشته باشد. ویندوز، لینوکس و مک او اس از معروفترین نمونههای سیستم عامل هستند. در این مقاله از هامیا ژورنال به بررسی جنبههای مختلف سیستم عامل و نحوه کارکرد آن خواهیم پرداخت.

سیستم عامل چیست؟
کامپیوترها به زبان انسان آشنا نیستند و تنها میتوانند کدهای ۰ و ۱ یا به اصطلاح زبان ماشین را درک کنند.بنابراین ما به عنوان کاربر برای ارتباط با کامپیوتر، به یک واسطه یا مترجم نیاز داریم که دستورات ما را به زبان ماشین و کدهای صفر و یک طولانی را به شکل تصویری یا متنی برای ما ترجمه کند؛ این نقش را سیستم عامل در کامپیوتر ایفا میکند. سیستم عامل، فرمانهای کاربر را به کدهای قابل درک برای کامپیوتر (صفر و یک) تبدیل میکند و سپس نتایج را به شکلی قابل فهم برای انسان ارائه میدهد. در ابتدا، سیستم عاملها توانایی محدودی داشتند و تنها قادر به انجام محاسبات ساده ریاضی بودند اما با گذشت زمان و پیشرفت تکنولوژی، امکانات بیشتری مانند مدیریت فایل، کنترل دستگاههای جانبی، شبکه، گرافیک و مولتیمدیا به آنها اضافه شد. امروزه سیستم عاملها بسیار پیچیده و توسعه یافته هستند و نقشی حیاتی در مدیریت تمام جنبههای کامپیوتر دارند. بدون سیستم عامل، استفاده از کامپیوترها برای انسان تقریبا غیرممکن خواهد بود.
وظایف سیستم عامل چیست؟
سیستم عامل سه قابلیت اساسی برای کاربران فراهم میکند:
- یک رابط کاربری در اختیار کاربر قرار میدهد تا به صورت مستقیم با آن تعامل داشته باشد.
- اجرا و مدیریت تمام نرم افزارهایی که روی رایانه نصب شدهاند را بر عهده میگیرد.
- منابع سخت افزاری سیستم مانند حافظه رم، پردازنده، هارد دیسک و دیگر قطعات را شناسایی میکند و آنها را از طریق یک رابط برنامه نویسی کاربردی (API) در دسترس نرم افزارها قرار میدهد تا از این منابع استفاده کنند.
رابط کاربری (User Interface)
هر سیستم عاملی نیازمند یک رابطکاربری است تا به کاربران و مدیران سیستم اجازه دهد دستوراتشان را به سیستم عامل ارسال کنند و آن را راه اندازی، پیکربندی و حتی دیباگ کنند. رابط کاربری سیستم عاملها به دو دسته اصلی تقسیم بندی میشود: رابط کاربری خط فرمان (CLI) و رابط گرافیکی (GUI).
رابط خط فرمان (Command Line Interface) یا ترمینال، یک رابط متن محور است که در آن کاربران با استفاده از صفحه کلید، دستورات، پارامترها و آرگومانهای مربوط به کارهای خاص خود را وارد میکنند.
از طرف دیگر، رابط گرافیکی (Graphical User Interface) یا دسکتاپ، یک رابط تصویری است که بر پایه آیکونها و نمادها استوار است. در این رابط، کاربران با استفاده از ابزارهای ورودی مانند تاچ پد، صفحه لمسی و یا موس و کیبورد با سیستم عامل تعامل میکنند. لازم به ذکر است که بسیاری از کاربران عادی، رابط گرافیکی را به دلیل سادگی و راحتی بیشتر ترجیح میدهند، اما در مواردی مانند مدیریت سرورها یا اجرای اسکریپتها، رابط خط فرمان هنوز کاربرد بسیاری دارد.

مدیریت برنامهها
سیستم عامل مسئولیت راه اندازی و اجرای نرم افزارها را بر عهده دارد و وظایف گوناگونی در قبال آنها انجام می دهد:
- اشتراک زمانی (Time Sharing): سیستم عامل زمان پردازش را بین چندین برنامه تقسیم میکند تا هر برنامه بتواند به صورت همزمان از منابع موجود استفاده کند.
- مدیریت وقفهها (Interrupt Handling): برنامهها برای جلب توجه فوری پردازنده، وقفههایی ایجاد میکنند. سیستم عامل مدیریت این وقفهها را بر عهده دارد.
- مدیریت حافظه (Memory Management): سیستم عامل اطمینان حاصل میکند که حافظه کافی برای اجرای برنامهها و دادههای آنها در دسترس باشد، بدون اینکه با سایر برنامهها تداخل ایجاد شود.
- گزارش و رفع خطا (Error Handling): سیستم عامل نقش مهمی در ارتباطات و گزارشدهی دارد. این سیستم پیامهایی در مورد وضعیت کارکرد و هرگونه خطای پیش آمده را، برای برنامه ها، کاربران و مدیر سیستم ارسال میکند. سیستم عامل خطاهایی را که میتواند منجر به اختلال در کارکرد برنامهها شود، شناسایی و رفع میکند.
- مالتی تسکینگ (Multitasking): در یک سیستم عامل چندوظیفهای، چندین برنامه میتوانند همزمان کار کنند. اما در پشت پرده، این سیستم عامل است که تعیین میکند در هر لحظه کدام برنامه باید اجرا شود. سیستم عامل به هر برنامه یک بازه زمانی کوتاه اختصاص میدهد تا اجرا شود. سپس به برنامه بعدی میرود و این چرخه ادامه پیدا میکند. در این حالت، به نظر میرسد که همه برنامهها همزمان در حال اجرا هستند، در حالی که در واقع، سیستم عامل به طور متناوب بین آنها جابجا میشود. این کار توسط سیستم عامل انجام میشود تا از منابع کامپیوتر به صورت بهینه استفاده شود.
- مدیریت ورودی و خروجی (Input/Output): سیستمعامل مدیریت تبادل اطلاعات (ورودی و خروجی) از سختافزارهای متصل، مانند هارد دیسک و پرینتر را برعهده دارد.
- پردازش موازی (Parallel Processing): در کامپیوترهایی که امکان پردازش موازی دارند، سیستمعامل میتواند پردازشها را به بخشهای کوچکتر تقسیم کند تا این بخشها به طور همزمان روی چندین پردازنده اجرا شوند. به این ترتیب کل برنامه سریعتر اجرا میشود.
رابطهای برنامه نویسی (API)
سیستمعامل میتواند از رابطهای برنامهنویسی (Application Programming Interface) پشتیبانی کند. رابط برنامهنویسی کاربردی (API) مجموعهای از تعاریف، دستورالعملها و ابزارها است که به برنامهها امکان میدهد با یکدیگر تعامل داشته باشند. این تعاریف شامل مشخص کردن نحوه ارسال و دریافت درخواستها، ساختار دادهها و فرمت پیامها میشود. APIها به عنوان واسطهای میان برنامهها عمل میکنند و به آنها اجازه میدهند بدون نیاز به درک جزئیات پیادهسازی داخلی یکدیگر، با یکدیگر تبادل اطلاعات داشته باشند و از ویژگیهای یکدیگر استفاده کنند.
برای مثال، یک API در سیستمعامل ویندوز میتواند به نرم افزاری این امکان را بدهد که اطلاعات را از کیبورد یا ماوس دریافت کند، عناصر رابط کاربری گرافیکی مانند پنجرهها و دکمهها را بسازد، فایلها را از روی حافظه بخواند یا روی آن بنویسد و کارهای دیگری انجام دهد. برنامهها همواره برای استفاده بر روی سیستمعاملی که برای آن طراحی شدهاند، بهینهسازی میشوند.
مدیریت دستگاه (Device Management)
سیستمعامل در مدیریت، تنظیم و اشتراکگذاری سختافزارهای پایه بین برنامههای مختلف نقش دارد. هنگامی که سیستمعامل سختافزار را شناسایی میکند، برای هر دستگاه درایور مخصوص آن را نصب میکند. این درایورها به سیستمعامل و برنامههای در حال اجرا اجازه میدهند تا از دستگاهها بدون نیاز به دانش خاصی در مورد سختافزار یا خود دستگاهها، استفاده کنند.
برای مثال، سیستمعامل مسئول شناسایی صحیح چاپگر و نصب درایور مناسب آن است. بنابراین، برنامهها فقط نیاز به برقراری ارتباط با چاپگر دارند و لازم نیست از کدها یا دستورات خاصی که مخصوص آن چاپگر هستند استفاده کنند. این کارکرد به عهده سیستمعامل است. همین شرایط برای سایر سختافزارها مانند پورتهای USB، پورتهای شبکه، کارتهای گرافیک (GPU)، چیپستهای مادربورد و دستگاههای ذخیرهسازی نظیر آداپتورهای دیسک SAS و دیسکهایی که با فایل سیستم مناسب فرمت شدهاند نیز صادق است.
سیستمعامل دستگاههای فیزیکی و منطقی را شناسایی و پیکربندی میکند تا قابل استفاده شوند. این اطلاعات معمولا در یک ساختار استاندارد مانند رجیستری ویندوز ثبت میشوند. سازندگان سختافزار بهصورت دورهای درایورها را اصلاح و بهروزرسانی میکنند و سیستمعامل باید این درایورها را بهروز نگه دارد تا بهترین عملکرد و امنیت برای دستگاه تضمین شود. همچنین، هنگامی که قطعهای جایگزین میشود، سیستمعامل درایورهای جدید را نصب و پیکربندی میکند.
انواع سیستم عامل
در حالی که وظایف اصلی یک سیستمعامل در همه جا یکسان است، سیستمعاملهای بیشماری وجود دارند که برای سختافزارها و نیازهای متنوع کاربران طراحی شدهاند.

سیستم عاملهای چند منظوره
سیستمعامل چندمنظوره مجموعهای از سیستمعاملها است که برای اجرا بر روی انواع سختافزارها و همچنین اجرای تعداد زیادی از برنامهها به طور همزمان طراحی شدهاست. این سیستمعاملها را میتوان روی بسیاری از کامپیوترهای رومیزی و لپتاپ نصب کرد و انواع برنامهها را اجرا نمود، از نرمافزارهای حسابداری گرفته تا پایگاههای داده، مرورگرهای وب و بازیهای رایانهای. سیستمعاملهای چندمنظوره معمولا روی مدیریت فرایند و سخت افزار تمرکز میکنند تا اطمینان حاصل شود که برنامهها میتوانند به طور قابل اعتمادی از منابع سختافزاری موجود در کامپیوتر استفاده کنند.
سیستم عاملهای عمومی عبارتند از:
ویندوز: سیستمعامل پیشتاز مایکروسافت
ویندوز، محصول پرچمدار کمپانی مایکروسافت است که عملا به استاندارد رایانههای شخصی و اداری تبدیل شده است. این سیستمعامل مبتنی بر رابط گرافیکی کاربرپسند (GUI)، از سال 1985 تاکنون در نسخههای متنوعی ارائه شده است. نسخه کاربری آسان و دوستانه ویندوز 95 موجب رشد سریع و گسترده رایانههای شخصی در میان کاربران گردید و زمینهساز تحولات بزرگی در این عرصه بود.
مک او اس: سیستمعامل اختصاصی رایانههای اپل
Mac OS، سیستمعاملی منحصر به فرد از شرکت اپل است که ابتدا برای کامپیوترهای مکینتاش این شرکت طراحی شده بود و تا امروز نیز نسخههای بهروز آن به شکل اختصاصی در تمامی کامپیوترها و لپتاپهای کمپانی اپل استفاده میشود.
یونیکس: سیستمعامل چندکاربره قدرتمند
یونیکس یک سیستمعامل چندکاربره است که بر انعطافپذیری و تطبیقپذیری بالا تمرکز دارد. نسخههای اولیه این سیستمعامل در دهه ۱۹۷۰ میلادی توسعه یافت. یونیکس از اولین سیستمعاملهایی بود که با زبان برنامهنویسی C نوشته شدهبود.
لینوکس: سیستمعامل قدرتمند و آزاد

لینوکس یک سیستمعامل شبیه به یونیکس است که برای ارائه جایگزین رایگان یا کمهزینه به کاربران رایانههای شخصی و سرورها طراحی شده است که به کارایی و سرعت بالا شهرت دارد.
سیستم عامل تعبیه شده (Embedded OS)
همه دستگاههای رایانهای، اهداف عمومی ندارند. طیف وسیعی از دستگاههای اختصاصی از جمله خانههای هوشمند، خودپردازهای بانک (ATM)، سیستمهای هواپیما، پایانههای فروشگاهی (POS) و دستگاههای اینترنت اشیا (IoT) همگی از سخت افزارهایی تشکیل شدهاند که به یک سیستمعامل نیاز دارند. تفاوت اصلی این دستگاهها با کامپیوترهای ما این است که این دستگاههای هوشمند تنها برای انجام یک کار مشخص طراحی شدهاند؛ بنابراین سیستمعامل آنها نیز بسیار ساده و بهینهسازی شده برای عملکرد و پایداری بالای آنها است. این نوع از سیستمعاملها باید به سرعت اجرا شوند، از کار نیفتند (کرش/Crash نکنند) و تمام خطاها را به طور صحیح مدیریت کنند تا بتوانند در هر شرایطی به کار خود ادامه دهند.
در اکثر موارد، سیستمعامل بر روی تراشهای تعبیه شده است که جزئی از خود دستگاه است. به عنوان مثال، یک دستگاه پزشکی که در تجهیزات پشتیبانی حیات بیمار استفاده میشود، از یک سیستمعامل تعبیه شده (Embedded OS) بهره میبرد که برای حفظ سلامت بیمار باید به طور قابل اعتمادی اجرا شود. یکی از نمونههای سیستمعاملهای تعبیه شده، لینوکس تعبیه شده (Embedded Linux) است.
سیستمعامل شبکه (Network OS)
سیستمعامل شبکه نوع دیگری از سیستمعاملهای تخصصی است که هدف آن تسهیل ارتباط بین دستگاههای موجود در یک شبکه محلی (LAN) است. یک NOS با بهرهگیری از یک پشته ارتباطی (Communication Stack)، پروتکلهای شبکه را درک میکند تا بتواند بستههای شبکهای (Network Packets) را ایجاد، تبادل و تجزیه کند.
امروزه، مفهوم سیستمعامل شبکه تخصصی تا حد زیادی منسوخ شده است؛ چرا که سایر انواع سیستمعاملها عمدتا مدیریت ارتباطات شبکه را برعهده دارند. برای مثال، ویندوز 10 و ویندوز سرور 2024 قابلیتهای جامع شبکهای را در خود جای دادهاند. با این حال، مفهوم NOS همچنان در برخی از تجهیزات شبکه مانند روترها، سوییچها و فایروالها کاربرد دارد. تولیدکنندگان این تجهیزات ممکن است از سیستمعاملهای شبکه اختصاصی خود مانند Cisco IOS، RouterOS و ZyNOS استفاده کنند.
سیستم عامل بیدرنگ (Real Time OS)
یک سیستم عامل بیدرنگ (RTOS) نوع خاصی از سیستم عامل است که دارای دو ویژگی کلیدی است: قابلیت پیش بینی و تعیین پذیری. در یک RTOS، وظایف تکراری در یک محدوده زمانی مشخص انجام میشوند، در حالی که در یک سیستم عامل عمومی، لزوما چنین نیست. یک سیستم عامل بیدرنگ نتیجههای از پیش تعیین شده را در یک زمان مشخص، دائما تولید خواهد کرد. برای مثال، یک سیستم کنترل صنعتی میتواند عملیات یک کارخانه بزرگ یا نیروگاه برق را هدایت کند. این تاسیسات، اطلاعات را از حسگرها جمعآوری میکنند و در مقابل، برای کنترل شیرها، عملگرها، موتورها و تجهیزات مختلف، سیگنال ارسال میکنند. در چنین شرایطی، سیستم کنترل صنعتی باید به سرعت و به طور قابل پیشبینی به تغییرات شرایط دنیای واقعی پاسخ دهد، در غیر این صورت ممکن است فاجعه رخ دهد. یک RTOS باید بدون بافرینگ، تاخیر در پردازش و سایر تاخیرهایی که در سایر انواع سیستمعامل کاملا قابل قبول هستند، عمل کند. FreeRTOS و VxWorks دو نمونه از سیستمعاملهای بیدرنگ هستند.
سیستم عامل موبایل

سیستمعاملهای موبایل برای برآورده کردن نیازهای خاص دستگاههای ارتباطی و رایانهای همراه، مانند گوشیهای هوشمند و تبلتها طراحی شدهاند. برخلاف رایانههای شخصی، دستگاههای موبایل معمولا منابع پردازشی محدودی دارند؛ بنابراین، سیستمعامل موبایل باید از نظر حجم و پیچیدگی بهینه شود تا ضمن کمترین مصرف منابع، بتواند اجرای روان یک یا چند برنامه روی دستگاه را تضمین کند. سیستمعاملهای موبایل بر عملکرد بهینه، پاسخگویی سریع به کاربر و مدیریت کارآمد دادهها تمرکز دارند. از نمونههای شناختهشدهی سیستمعاملهای موبایل میتوان به iOS شرکت اپل و اندروید شرکت گوگل اشاره کرد.
تفاوت سیستمعاملها
تفاوتهای میان انواع سیستمعاملها مطلق نیست و ممکن است در برخی از ویژگیها با یکدیگر اشتراک داشته باشند. به عنوان مثال، سیستمعاملهای چندمنظوره معمولا قابلیتهای شبکهای را که در سیستمعاملهای شبکه دیده میشوند، دارا هستند. همچنین یک سیستمعامل تعبیه شده اغلب دارای ویژگیهای یک سیستمعامل بیدرنگ است، در حالی که یک سیستمعامل تلفن همراه نیز میتواند همانند سایر سیستمعاملهای چندمنظوره، چندین برنامه را به صورت همزمان اجرا کند. بنابراین تداخل و همپوشانی ویژگیها، میان انواع مختلف سیستمعاملها امری طبیعی و رایج است.
سخن پایانی
سیستم عامل از جمله مهمترین و پیچیدهترین دستاوردهای حوزه فناوری اطلاعات محسوب میشود که نقش حیاتی در مدیریت و کنترل کلیه جنبههای عملکرد یک رایانه بر عهده دارد. در نهایت باید قبول کنیم پیشرفت چشمگیر فناوری رایانهها در دهههای اخیر، مدیون توسعه روزافزون سیستم عاملهای مدرن و کارآمد بوده است. بدون این رکن اساسی، دستیابی به قابلیتهای کنونی کامپیوترها و بهرهگیری از مزایای فراوان آن در عرصههای مختلف علمی، تجاری و سرگرمی امکان پذیر نمیبود. برای اطلاع از جدیدترین مقالات ما از طریق فرم پایین ایمیل خود را در هامیا ژورنال ثبت کنید.
اگر محتوای ما برایتان جذاب بود و چیزی از آن آموختید، لطفاً لحظهای وقت بگذارید و این چند خط را بخوانید:
ما گروهی کوچک و مستقل از دوستداران علم و فناوری هستیم که تنها با حمایتهای شما میتوانیم به راه خود ادامه دهیم. اگر محتوای ما را مفید یافتید و مایلید از ما حمایت کنید، سادهترین و مستقیمترین راه، کمک مالی از طریق لینک دونیت در پایین صفحه است.
اما اگر به هر دلیلی امکان حمایت مالی ندارید، همراهی شما به شکلهای دیگر هم برای ما ارزشمند است. با معرفی ما به دوستانتان، لایک، کامنت یا هر نوع تعامل دیگر، میتوانید در این مسیر کنار ما باشید و یاریمان کنید. ❤️