سیستم عامل چیست؟
سیستمعامل یا به زبان انگلیسی Operating System که به صورت مخفف OS هم نامیده میشود، یک واسط نرم افزاری میان سختافزار و برنامههای اجرایی روی آن است. در واقع مجموعه نرمافزارهایی که منابع یک سیستم را مدیریت میکنند سیستمعامل نامیده میشوند. این سختافزار میتواند یک کامپیوتر، یک گوشی تلفن همراه و یا حتی یک تجهیز صنعتی مانند PLC باشد که قابلبرنامهریزی است. اما اگر بپرسیم وظیفه اصلی سیستم عامل چیست میتوان گفت سیستم عامل در واقع وظیفه هدایت و اجرای برنامههای کاربردی را در محیط سختافزار بر عهده دارد و کنترل روی روند و ترتیب اجرای این برنامهها، بر عهده OS است.
سیستمعامل (OS) چیست؟
سیستمعامل (software that manages computer hardware resources ) یا operating system مجموعه نرمافزارهایی که منابع یک سیستم را مدیریت میکنند تعریف می شود که یک بستر نرمافزاری و عملیاتی است و اجرای برنامههای جانبی در محیط سختافزاری، به وجود آن وابسته است. به همین دلیل نرمافزارها، اپلیکیشنها و برنامههای اجرایی بر اساس سیستم عامل خاصی نوشته میشوند و در صورت نصب در محیط همان سیستم عامل، به درستی اجرا خواهند شد. این کار، نوشتن برنامههای کاربردی را که تنوع بسیار زیادی دارند، آسان میسازد. تنوع سیستم عاملها بسیار کمتر بوده و از یک سیستم عامل، میتوان برای اجرای هزاران نرمافزار استفاده کرد. در ادامه این مقاله، به تقسیمبندی انواع سیستم عاملها، انواع آنها برای سختافزارهای مرسوم و توضیح مختصری در مورد هر یک، خواهیم پرداخت.
انواع سیستم عامل
در این بخش به طور کلی انواع سیستم عامل فهرست شده است و اکثر این انواع در ادامه بهطور مختصر شرح داده شدهاند.
- سیستمعاملهای تک وظیفهای و چند وظیفهای / اشتراک زمانی (Time Sharing)
- سیستمهای عامل تککاربره و چندکاربره
- قالببندی شده (Templated)
- سیستم عامل دستهای (Batch)
- چندپردازندهای (Multiprocessing OS)
این دسته از سیستم عامل ها، برای اجرای نرمافزارها و برنامههای مخصوص کامپیوتر طراحی شدهاند و خود به انواع مختلفی تقسیمبندی میشوند. شرکتهای معروفی نظیر مایکروسافت و اپل اقدام به توسعه و ارائه این سیستم عامل ها کردهاند که گاهاً اجرای نرمافزارها و حتی سختافزارهای لازم برای این OS ها، انحصاری است و تنها برای همان سیستم عامل خاص طراحی شدهاند.
گوشیهای موبایل نیز به دلیل استفاده از سختافزارهای اختصاصی تولیدی توسط شرکت سازنده، ممکن است دارای سیستم عامل انحصاری خود باشند. سیستم عامل (OS) در گوشی موبایل، وظیفه اجرای اپلیکیشنها و مدیریت برنامه و فایلها را بر عهده دارد. اپلیکیشنهای مختص هر سیستم عامل برای گوشیهای تلفن همراه وجود دارد، هرچند ممکن است نسخههای مختلفی از یک نرمافزار یا اپلیکیشن خاص برای سیستمهای عامل مختلف ارائه شده باشد.
- سیستمعامل سختافزارهای شبکه
برخی از سختافزارهای مخصوص شبکه نظیر روترها، میکسرها، سوئیچها و غیره، سیستمعامل مختص خود را دارند؛ یعنی برای عملکرد صحیح این سختافزارها، میبایست سیستم عامل مختص همان سختافزار بر روی آن نصب گردد. برخی از شرکتهای سازنده سختافزار شبکه نظیر سیسکو و میکروتیک، سیستمهای عامل مختص خود را نیز ارائه دادهاند.
یک سیستم عامل توزیعی مدیریت گروهی از کامپیتورهای مشخص عضو شبکه را برعهده دارد و کاری میکند که تمام این کامپیوترهای داخل شبکه به صورت یک کامپیوتر واحد در نظر گرفته شوند. در این نوع از سیستمهای عامل، تمام محاسبات به صورت توزیع شده انجام میشوند؛ یعنی محاسبات در میان هر یک از کامپیوترهای عضو شبکهها تقسیم میشود.
- سیستم عامل های قالب بندی شده
یک سیستم عامل قالببندی شده سیستمعاملی است که به یک کاربر اجازه میدهد تا محیط سفارشی خود را در پایه و اساسی یکسان و مشترک با کدهای منبع یکسان ایجاد کند. در زمینه محاسبات توزیعی و ابری (Cloud) سیستم عامل به ایجاد ایمیج ماشین مجازی واحدی به عنوان سیستم عامل مهمان و سپس ذخیرهسازی آن به عنوان ابزاری برای ماشینهای مجازی چنداجرایی «قالببندی» (Templating) گفته میشود. این روش هم در مدیریت مجازیسازی و هم در رایانش ابری به کار میرود و استفاده از آن در انبارهای داده سرورهای بزرگ بسیار رایج است.
سیستمعاملهای تعبیه شده برای استفاده در سیستمهای کامپیوتری تعبیه شده طراحی شدهاند. سیستمهای عامل تعبیه شده برای اجرا روی ماشینهای کوچک با قابلیتهای خودکارسازی کمتر (مثل دستیار دیجیتال شخصی یا PDAها) طراحی شدهاند. این نوع سیستمعاملها بسیار فشرده هستند و طراحی آنها بسیار بهینه است و قابلیت اجرا را با میزان محدودی از منابع دارند. ویندوز CE و Minix 3 نمونههایی از سیستمعاملهای تعبیه شده به حساب میآیند.
یک سیستم عامل بلادرنگ سیستم عاملی است که تضمین میکند رویدادها یا دادههایی را در زمان مشخصی پردازش خواهد کرد. یک سیستم عامل بلادرنگ میتواند تکوظیفهای یا چندوظیفهای باشد، اما در صورت چندوظیفهای بودن، از الگوریتمهای زمانبندی اختصاصی استفاده میکند تا طبیعت رفتاری قطعی (deterministic) حاصل شود. چنین سیستم مبتنی بر رویدادی براساس اولویتهای تعیین شده یا رویدادهای خارجی میان وظایف مختلف سوئیچ ميکند؛ درست مشابه سیستمعاملهای اشتراک زمانی که براساس وقفههای ساعت بین وظایف سوئیچ میکنند.
- سیستم عامل های کتابخانه ای
سیستم عامل کتابخانهای نوعی از سیستم عامل است که در آن خدماتی که یک سیستم عامل رایج نظیر خدمات شبکه فراهم میکند، در قالب کتابخانهها ارائه میشوند. سیستمعاملهای کتابخانهای از کدهای کاربردی و پیکربندیهای مربوط به ساخت یک «یونیکرنل» (Unikernel) تشکیل میشوند. یونیکرنل یک ایمیج ماشین خاص با فضای آدرس واحد است که میتواند در بستر ابری یا محیطهای تعبیه شده مستقر شود.
این دسته از سیستم عامل ها به نوع بیدرنگ یا فوری نیز معروف هستند و در مصارف صنعتی برای کنترلکنندههای هوشمند و مدارهای فرمان خودکار استفاده میشوند. تجهیزات صنعتی نظیر کنترلکننده، PLC ها، PLR ها و غیره، همگی برای برنامهریزی و اجرای دستورات نیاز به سیستم عامل دارند که اغلب به صورت اختصاصی توسط خود شرکتهای سازنده برای آنها ارائه میشود.
سیستم عاملهای مخصوص کامپیوتر نیز از دیدگاه تعداد پردازندههای مورد استفاده برای اجرای سیستم عامل، به دو دسته کلی تقسیمبندی میشوند:
سیستم عامل های تک پردازنده
در این نوع که بیشتر سیستم عاملهای فعلی در این دسته قرار میگیرند، OS تنها روی یک پردازنده نصب میشود و اجرای سایر برنامهها نیز تحت مدیریت همین سیستم عامل و روی همان پردازنده مرکزی انجام خواهد شد. یک سیستم تکوظیفهای (تککاره | Single-Tasking) تنها میتواند یک برنامه را در لحظه اجرا کند، در حالی که یک سیستم عامل چند وظیفهای (چندکاره | Multi-Tasking) امکان اجرای بیش از یک برنامه را فراهم میکند. این امکان از طریق «اشتراک زمانی» (Time-Sharing) بدست میآید. در روش اشتراک زمانی، زمانی که برای پردازنده وجود دارد میان چندین پردازه (Process) تقسیم میشود. در هر یک از این پردازهها در بُرشهای زمانی (Time Slices) به وسیله زیرسیستم زمانبندی وظایف در سیستم عامل بهطور مکرر وقفه ایجاد میشود. چندوظیفهای را میتوان به انواع «غیرانحصاری» (Preemptive) و «مشارکتی» (Cooperative) تقسیمبندی کرد.
سیستم عامل های توزیع شده یا چند پردازنده
در این مدل که بیشتر در شبکهبندی کامپیوترها مورد استفاده قرار میگیرد، سیستمعامل (OS) روی چندین پردازنده در کامپیوترهای مختلف نصب میگردد و یک کامپیوتر مرکزی نیز وظیفه نمایش نتایج پردازش را بر عهده دارد. در حالت چندوظیفهای غیرانحصاری سیستم عامل زمان پردازنده را بُرش میزند و هر برش زمانی را به هر یک از برنامههای در حال اجرا تخصیص میدهد. سیستمعاملهای مبتنی بر یونیکس (Unix-Like OS) مثل لینوکس و همچنین سیستمعاملهای غیروابسته به یونیکس مثل AmigaOS از روش چندوظیفهای غیرانحصاری پشتیبانی میکنند.
چندوظیفهای مشارکتی نیز به وسیله وابستگی به هر پردازه جهت فراهمسازی زمان برای سایر پردازهها در یک وضعیت تعریف شده حاصل میشود. نسخههای ۱۶ بیتی سیستم عامل ویندوز شرکت مایکروسافت از روش چندوظیفهای مشارکتی اسنفاده میکرد. همچنین نسخههای ۲۳ بیتی ویندوز NT و Win9x نیز از چندوظیفهای مشارکتی استفاده میکردند.
وظایف سیستمعامل
سیستم عامل بسته به نوع کاربرد و سختافزار مورد استفاده ممکن است وظایف مختلفی از جمله مدیریت حافظه، مدیریت فایلها، پردازش اطلاعات، مدیریت سیستم و تجهیزات ورودی و خروجی، امنیت سختافزار و غیره را بر عهده داشته باشد؛ اما به طور معمول یک سیستم عامل وظایف زیر را بر عهده دارد:
- مدیریت فرآیند: مدیریت فرآیند در واقع به ایجاد، اجرا و حذف پروسهها در یک سختافزار اطلاق میشود. همچنین در یک سیستمعامل، مکانیزمهایی برای همگامسازی و ایجاد ارتباط بین فرآیندها در نظر گرفته شده است.
- مدیریت حافظه: ماژول مدیریت حافظه که تحت فرمان سیستم عامل است، وظیفه تخصیص و عدم تخصیص فضای حافظه را به برنامههایی که به این منابع حافظه نیاز دارند، بر عهده دارد.
- مدیریت فایلها: کلیه اقدامات مربوط به فایلها مانند ذخیرهسازی، سازماندهی، بازیابی، نامگذاری، اشتراکگذاری و حفاظت از محتوای فایل در یک سختافزار، بر عهده سیستم عامل آن است.
- مدیریت دستگاه: ماژول مدیریت دستگاه در واقع به عنوان یک کنترلکننده ورودی و خروجی شناخته میشود و ارتباط میان دستگاه مورد نظر با سایر دستگاهها را مدیریت میکند.
- مدیریت سیستم ورودی و خروجی: یکی از اهداف اصلی یک سیستم عامل ، مدیریت سیستمهای ورودی و خروجی به یک سختافزار است که در واقع اجرا و هماهنگی این سختافزار میبایست به کمک سیستم عامل صورت گیرد.
- مدیریت ذخیرهسازی ثانویه: در سیستمهای کامپیوتری، چندین سطح ذخیرهسازی وجود دارد که شامل سطح اولیه، سطح ثانویه و ذخیرهسازی کش است. دستورالعملها و دادهها میبایست در ذخیرهسازی اولیه و یا حافظه کش ذخیره شوند و فایلهای اصلی در سطح ثانویه ذخیرهسازی گردند. یکی از وظایف سیستم عامل ، مدیریت سطح ذخیرهسازی ثانویه برای فایلهای دائمی است.
- امنیت: ماژول امنیتی در یک سیستم عامل از دادهها و اطلاعات یک سیستم کامپیوتری در مقابل دسترسی غیرمجاز و حملات سایبری، محافظت میکند.
- تفسیر دستورات: این ماژول در سیستم عامل وظیفه دارد دستوراتی را که توسط سیستم و برای پردازش آنها ارسال شده است، تفسیر کند.
- شبکهسازی: این وظیفه به خصوص در ساختارهای چند پردازنده و توزیع شده کاربرد دارد. یک شبکه از چندین سیستم گروهی با پردازندهها، حافظهها و سختافزارهای مختلف تشکیل شده است که از طریق یک شبکه با هم در ارتباط هستند. سیستم عامل در این ساختار، وظیفه ارتباط این سیستمها را در قالب یک شبکه بر عهده دارد.
- مدیریت ارتباطات: هماهنگی و تعیین کامپایلرها، مترجمها و منابع نرمافزاری دیگر کاربران در سیستمهای کامپیوتری بر عهده سیستم عامل است.
ویژگیهای مهم سیستم عامل
برخی از ویژگیهای مهم سیستمعامل (OS)عبارتاند از:
- دارای مود حفاظت شده و نظارتی
- امکان دسترسی به دیسک و درایوهای دستگاه
- مدیریت حافظه اصلی و حافظه مجازی
- مدیریت عملکرد سختافزارهای ورودی و خروجی
- تخصیص منابع
- حفاظت از منابع و اطلاعات
مزایا و معایب سیستمعامل چیست؟
مزایای سیستم عامل را میتوان به صورت زیر خلاصه کرد:
- امکان دسترسی به جزئیات سختافزارها
- استفاده آسان با GUI
- ایجاد محیطی برای اجرای برنامهها و اپلیکیشنها توسط کاربر
- ایجاد ارتباط به عنوان یک واسطه میان اپلیکیشنها و مؤلفههای سختافزاری
- ارائه منابع سیستم کامپیوتری با استفاده آسان
- ایجاد ارتباط میان سختافزارها و نرمافزارهای سازگار با سیستم عامل
معایب سیستم عامل را نیز میتوان به صورت زیر بیان کرد:
- اگر مشکلی برای سیستم عامل رخ دهد، ممکن است همه محتوا و فایلهای مهم که در سیستم ذخیره شده است، از بین برود.
- نرمافزارهای OS اختصاصی برای سازمانهای کوچک کمی گرانقیمت هستند و میبایست بودجه مجزایی را برای تهیه و بهروزرسانی سیستمهای عامل در نظر بگیرند.
- هرگز نمیتوان گفت که یک سیستم عامل کاملاً ایمن است.
اجزای تشکیلدهنده سیستمعامل
هر سیستم عامل صرفنظر از نوع کاربرد، میبایست از دو بخش اصلی تشکیل شده باشد: هسته یا کرنل و پوسته.
پوسته سیستم عامل
پوسته لایه بیرونی یک سیستم عامل است که وظیفه ایجاد ارتباط بین کاربران، دریافت درخواست از سوی کاربر، مدیریت سیستمهای ورودی و خروجی و ایجاد ارتباط در یک شبکه را بر عهده دارد.
هسته یا کرنل سیستم عامل
هسته یا کرنل، اصلیترین بخش در یک سیستم عامل است. وظیفه اصلی کرنل، مدیریت ارتباط بین نرمافزار و سختافزار است. ویژگیهای کرنل عبارتاند از:
- برنامهریزی سطح پایین فرآیندها
- ارتباطات بین فرآیندی
انواع هسته سیستمعامل
انواع مختلفی از کرنل یا هسته برای سیستمهای عامل ارائه شدهاند اما دو نوع معروف آنها عبارتاند از:
Monolithic
کرنل monolithic یک کد یا بلوک واحد از برنامه است که تمام سرویسهای مورد نیاز OS را ارائه میدهد. طراحی این کرنل ساده است و از یک لایه ارتباطی متمایز بین سختافزار و نرمافزار تشکیل شده است.
Microkernels
کرنل Microkernel تمام منابع سیستم را مدیریت میکند. در این نوع هسته، سرویسها در فضای آدرسهای مختلف پیادهسازی میشوند. خدمات کاربر در این مدل کرنل، در فضای آدرس کاربر ذخیره شده و خدمات و سرویسهای هسته کرنل نیز در فضای آدرس کرنل ذخیرهسازی میگردند؛ بنابراین این ساختار به کاهش اندازه هسته و سیستم عامل کمک میکند.
تفاوت Firmware و OS چیست؟
Operating System و Firmware هر دو در لغت به معنی سیستمعامل (OS) هستند؛ اما دارای تفاوتهایی از سه جنبه هستند که در اینجا به آنها اشاره میکنیم:
- Firmware برنامهای است که توسط شرکت سازنده روی چیپ و IC ها تعبیه میشود و نسبت به نوع قطعات، قابل تغییر یا غیر قابل تغییر است؛ در حالی که OS برنامهای است که توسط کاربر بر روی سختافزار قابلنصب بوده و قابلتغییر است.
- Firmware نوعی برنامه است که روی چیپها پیادهسازی میشود و بخش مشخصی از سیستمها را مدیریت میکند؛ در حالی که OS وظیفهای فراتر از Firmware دارد؛ به عبارت دیگر، OS یک محیط برنامهریزی شده برای اجرای وظایف مختلفی است که یکی از آنها، کنترل سختافزار و نرمافزار است.
- Firmware روی حافظه ROM ذخیره میشود در حالی که OS روی هارد درایو ذخیره میگردد.
انواع سیستمعامل کامپیوتر
در دستهبندی سیستم عامل ها، یکی از گستردهترین و پرکاربردترین طبقه از سیستم عامل ها، OS های مخصوص کامپیوتر است که به سیستم عامل دسکتاپ نیز معروف هستند و به انواع مختلفی تقسیم میشوند. جدیدترین نسخه ویندوز در سال ۱۴۰۱ ویندوز ۱۱ به حساب میآید که در اکتبر ۲۰۲۱ منتشر شده است و پس از آن هم به طور مرتب بروزرسانیهایی برای آن ارائه میشود. همچنین آخرین نسخه macOS در سال ۱۴۰۱ با نام «macOS Ventura» نام دارد که در WWDC 2022 معرفی شده است. در خصوص سیستمعاملهای لینوکسی هم نسخه «Ubuntu 22.04 LTS» آخرین نسخه اوبونتو در تابستان ۱۴۰۱ به حساب میآید. همچنین KDE Neon هم جدیدترین توزیع لینوکس محسوب میشود که توسط KDE توسعه داده شده است. سیستم عامل کروم یا همان ChromeOS نیز یکی از سیستمعاملهای جدیدی به حساب میآید که اخیراً از آن زیاد استفاده میشود.در این بخش به بررسی انواع سیستم عامل های مخصوص کامپیوتر پرداخته و توضیح مختصری در مورد هر یک بیان میکنیم:
ویندوز (Windows) متداولترین و شناختهشدهترین سیستمعامل جهان است. از زمان ارائه ویندوز 95 تا کنون که ویندوز 11 ارائه شده است، ویژگیهای مختلفی در این سیستمعامل اضافه شده که استفاده از آن را برای کاربران با اهداف اجرای برنامه، وبگردی، کاربردهای شخصی، بازی و غیره، بسیار ساده کرده است.
محیط ویندوز کاربرپسند بوده و یادگیری آن نیز سریع انجام میشود. امنیت این سیستم عامل با ارائه نسخههای جدید، افزایش یافته است. برخی از ویژگیهای سیستم عامل ویندوز عبارتند از:
- رابط کاربری قوی که استفاده و هدایت کاربر را آسان میسازد.
- ویژگیهای مربوط به منوی وظیفه (taskbar) که امکان سوئیچ بین چندین محیط کاربری و نمایش همه پنجرهها را به صورت همزمان فراهم میکند.
- دو رابط کاربری مختلف به نام ماوس و کیبورد و همچنین مود تبلت که برای سختافزارهای تاچ اسکرین نظیر لپتاپهای دارای نمایشگر تاچ ارائه شده است.
- مکانیزم احراز هویت چندعاملی برای امنیت بیشتر نظیر شناسایی از طریق BIN، PIN، اثرانگشت و غیره.
- سیستم خودکار فشردهسازی فایل برای کاهش فضای اشغال شده
سیستم عامل macOS که سیستم عامل کامپیوترهای شرکت اَپِل نامیده میشود با گذشت زمان، ویژگیهای جدیدی را در این سیستم عامل میبینیم. در سالهای اخیر نیز نصب مکاواس (operating system for Apple computers) و ارتقای آن به نسخههای جدیدتر کاملاً رایگان شده است. برخی از ویژگیهای این سیستمعامل عبارتند از:
- دسکتاپ با مود تیره (dark mode)
- محیط دسکتاپ دینامیکی برای مدیریت فایلها
- سازگاری با آیفون و استفاده از دوربین گوشی آیفون برای اسکن و عکسبرداری
- محیط برنامههای جامع به نام app store
- ویژگیهای جدید در iTunes برای جستجوی آهنگ
- امنیت در مقابل نفوذ هکرها
یونیکس (family of computer operating systems that derive from the original AT&T Unix) یک سیستمعامل (OS) چندمنظوره است که برای ویژگیهایی نظیر انعطافپذیری و تطبیقپذیری، شناخته شده است. این سیستم عامل یکی از اولین سیستم عامل هایی است که ارائه شده و به زمان C نوشته شده است.
سیستم عامل لینوکس نیز یک سیستم عامل شبیه یونیکس است که برای کامپیوترهای PC طراحی شده و یک گزینه رایگان برای کاربران کامپیوتر است. لینوکس از نظر کارآمدی و سرعت بالا در میان سیستمهای عامل دسکتاپ شهرت دارد.
سیستم عامل Ubuntu یک سیستمعامل مبتنی بر لینوکس است که برای سازمانها، مدارس و کاربران خانگی مناسب است. دانلود، اشتراکگذاری و استفاده از این سیستم عامل کاملاً رایگان است.
سیستم عامل Fedora نیز یک سیستم عامل مبتنی بر لینوکس است که ویژگی متنباز بودن را به Ubuntu اضافه کرده است. قابلیت اطمینان بالا، کاربرپسند بودن و قابلیت اجرا روی همه لپتاپها و کامپیوترها، از ویژگیهای این OS است.
Solaris یک سیستم عامل مبتنی بر یونیکس است که در سال 2010 به Oracle Solaris تغییر نام داد. این سیستم عامل به خاطر مقیاسپذیری و ویژگیهایی نظیر Dtrace، ZFS و Time Slider شناخته شده است.
FreeBSD همانطور که از نامش پیداست، یک سیستمعامل متنباز رایگان مبتنی بر یونیکس است. عمدتاً ویژگیهایی نظیر سرعت و ثبات بالا در این OS شناخته شده هستند.
Debian یک سیستم عامل متنباز و رایگان مبتنی بر کرنل لینوکس است. نصب این OS بسیار آسان بوده و رابط کاربری بسیار جذابی دارد. از بسیاری از سیستم عامل های دیگر سبکتر بوده و به همین دلیل از سرعت بیشتری نیز برخوردار است. ویژگیهای امنیتی و شبکهسازی در این سیستم عامل شناخته شده است.
Deepin یک سیستم عامل متنباز مبتنی بر Debian است. زیبایی ظاهری و جذابیت سیستم عامل رایانه ای دیپین (Linux distribution)، فاکتور مهمی در شناخته شدن آن است. ویژگیهای امنیتی پیشرفته، پروسه نصب آسان و استفاده از برنامههای مدیریت فایل سفارشی نظیر اسکرین شات، اسکرین رکوردر، نمایش عکس، نمایش ویدئو و غیره از ویژگیهای اختصاصی این سیستم عامل است.
انواع سیستم عامل موبایل
دسته دوم سیستمهای عامل که شناخته شده و پرکاربرد هستند، سیستم عامل های مخصوص موبایل هستند که برای اجرای اپلیکیشنها و مدیریت فایل در گوشیهای تلفن همراه به کار میروند. در این بخش، معروفترین OS های موبایل را معرفی میکنیم:
سیستمعامل اندروید محبوبترین سیستم عامل امروزی برای موبایلهاست. این سیستم عامل تلفن همراه مبتنی بر هسته لینوکس بوده و متنباز است. سیستم عامل اندروید توسط گوگل توسعه یافته، همچنین اولین دستگاه اندروید نیز در سال 2008 عرضه شد. اندروید ویژگیهای متعددی را برای سختافزارهایی که از این OS استفاده میکنند، ارائه کرده است که مهمترین آنها عبارتند از:
- رابط کاربری: رابط کاربری در اندروید بر اساس ویژگی direct manipulation پیاده شده است، به این معنی که با تاچ صفحهنمایش، اقدام نرمافزاری بدون درنگ انجام میشود.
- نوار وضعیت: نوار وضعیت یا status bar ویژگی دیگری از محیط اندروید است که امکان نمایش اپها و دسترسی سریع به کنترل سیستم نظیر روشنایی صفحه، تنظیمات ارتباطی نظیر WiFi و غیره را فراهم میکند.
- اعلانها: اعلان یا Notification یک ویژگی جالب در اندروید است که برای آگاهی کاربر به صورت پیامهای کوتاه روی اسکرین نمایش داده میشود. ویژگیهای دیگری نظیر دکمههای هدایت (Navigation)، صفحهنمایش تقسیم شده، قابلیت شارژ در حالت خاموش و غیره نیز از دیگر ویژگیهای اندروید است.
سیستم عامل iOS توسط شرکت اپل برای استفاده در دستگاههای توسعه یافته در این شرکت ارائه شده است. این سیستم عامل از نظر امنیت بسیار پیشرفته است و بر روی هیچ سختافزار دیگری غیر از دستگاههای ارائه شده شرکت اپل، قابلاستفاده نیست. همچنین هیچ سیستم عامل دیگری بر روی این دستگاههای اختصاصی قابلنصب نیست.
- Bada (Samsung Electronics)
Bada سیستم عامل اختصاصی موبایلهای سامسونگ بود که در سال 2010 ارائه شد. برند سامسونگ اولین برندی بود که از سیستم عامل Bada استفاده کرد. این سیستم عامل، بسیاری از ویژگیهای موبایل نظیر گرافیک سه بعدی، نصب برنامه و ویژگیهای تاچ چندنقطهای را دارا است.
سیستم عامل BlackBerry یک سیستم عامل تلفن همراه است که توسط شرکت Research In Motion (RIM) ارائه شد. این OS به صورت اختصاصی برای دستگاههای بلک بری طراحی شده است. ویژگیهای چند کاربری و امکانات استفاده از Microsoft Exchang، ایمیل Novell GroupWise و نرمافزارهای تجاری، بر روی سرور اختصاصی بلک بری، در این OS در نظر گرفته شده است.
سیستم عامل Symbian یک سیستمعامل تلفن همراه است که سطح بالایی از یکپارچگی را برای کاربر فراهم میکند. این OS بر اساس زبان جاوا نوشته شده و اولین بار در سال 1998 توسعه یافته و توسط شرکت نوکیا برای اولین بار بر روی گوشیهای تلفن همراه نصب گردید.
سیستم عامل ویندوز موبایل توسط شرکت مایکروسافت ارائه گردید. این سیستم عامل برای کامپیوترهای جیبی و گوشیهای موبایل هوشمند ارائه شد.
سیستم عامل Harmony آخرین سیستم عامل موبایل است که توسط شرکت Huawei و برای استفاده در دستگاههای ساخت این شرکت ارائه شده است. این سیستم عامل ابتدا برای تجهیزات مورد استفاده در فناوری اینترنت اشیا یا IoT توسعه یافته بود.
این سیستمعامل نیز در شرکت مایکروسافت توسعه یافته است و به عنوان جایگزینی برای سیستم عامل ویندوز موبایل شناخته میشود.
سیستم عامل Palm یک OS مخصوص موبایل است که توسط شرکت Palm برای دستگاههای دیجیتال شخصی ارائه شده است. این سیستم عامل ابتدا در سال 1996 ارائه گردید و با نام Garnet نیز شناخته میشود.
WebOS یک سیستم عامل موبایل است که توسط شرکت Palm ارائه شده بوده و مبتنی بر هسته لینوکس است. این سیستم عامل با عنوان Palm/HP شناخته میشود و شرکت HP از این سیستم عامل برای موبایلها و دستگاههای صفحه لمسی خود استفاده میکند.
تاریخچه سیستم عامل
کامپیوترهای اولیه برای اجرای تعدادی از وظایف واحد پشت سر هم مثل یک ماشین حساب ساخته شده بودند. در دهه ۵۰ میلادی (۳۰ خورشیدی) قابلیتهای ابتدایی و اساسی سیستم عامل از جمله قابلیت «نظارت پایدار» (Resident Monitor) توسعه داده شدند. در قابلیت نظارت پایدار این امکان وجود داشت که بهطور خودکار برنامههای متفاوتی به صورت پیاپی اجرا شوند تا سرعت پردازش افزایش پیدا کند.
تا اوایل دهه ۶۰ میلادی (دهه ۴۰ خورشیدی) سیستمهای عامل در شکل و فُرم مُدرن و پیچیده امروزی خود وجود نداشتند. در آن زمان نوعی از قابلیتهای سختافزاری اضافه شدند که امکان استفاده از کتابخانههای زمان اجرا، وقفهها و پردازش موازی را فراهم کردند. وقتی که کامپیوترهای شخصی در دهه ۸۰ میلادی محبوبیت پیدا کردند، سیستمعاملهایی با مفهومی مشابه کامپیوترهای بزرگتر برای کامپیوترهای شخصی هم به کار گرفته شدند.
تاریخچه سیستم عامل در دهه ۴۰ میلادی
در دهه ۴۰ میلادی، جدیدترین سیستمهای الکترونیکی دیجیتال هیچ سیستم عاملی نداشتند. سیستمهای الکترونیکی آن زمان با ردیفهایی از دکمههای مکانیکی یا به وسیله سیمهای جامپر روی تختههای سیمبندی شده برنامه نویسی میشدند. در اینجا منظور از جامپر قطعهای با بدنه پلاستیکی است که بخشی رسانا در آن وجود دارد که با استفاده از آن میتوان دو پایه رسانا را به هم متصل کرد. اینها سیستمهایی برای مقاصد خاص بودند که مثلاً جدولهای بالستیک را برای ارتش تولید میکردند یا چاپ فیشهای حقوق را از روی دادههای روی کارتهای پانچ کاغذی کنترل میکردند.
پس از آنکه کامپیوترهای همهمنظوره قابل برنامه ریزی اختراع شدند، زبانهای ماشین (دارای رشتههایی از ارقام دودویی صفر و یک روی نوار پانچ کاغذی) معرفی شدند که باعث شدند فرایند برنامه نویسی بسیار سریعتر انجام شود. در اوایل دهه ۵۰ میلادی (۳۰ خورشیدی) یک کامپیوتر تنها میتوانست یک برنامه را در لحظه اجرا کند.
هر کاربر فقط میتوانست به تنهایی برای مدت محدودی از کامپیوتر استفاده کند و کاربران باید در زمانی مقرر به همراه برنامه و دادههای خود حاضر میشدند و دادههای آنها روی کارتهای پانچ کاغذی یا نوارهای پانچ حک شده بودند. برنامه در داخل ماشین بارگذاری و ماشین بهگونهای تنظیم میشد که تا زمانی کار کند که برنامه به اتمام میرسید یا از کار میافتاد.
برنامهها بهطور کلی میتوانستند از طریق یک پنل جلویی با استفاده از دکمههای تغییر وضعیت و چراغهای پنل اشکالزدایی یا دیباگ شوند. گفته شده است که «آلن تورینگ» (Alan Turing) با استفاده از ماشین اولیه Manchester Mark 1 در این کار تبحر داشته است و او از همان زمان مفاهیم اولیه سیستم عامل را از اصول ماشین جهانی تورینگ استخراج کرده بود.
ماشینهایی که پس از آن روی کار آمدند دارای کتابخانههایی از برنامهها بودند که به برنامه یک کاربر پیوند داده میشدند تا در عملیاتی نظیر ورودی و خروجی و کامپایل کردن کمک کنند. کامپایل کردن به معنی تبدیل کدهای سمبلیک قابل خواندن توسط انسان به کدهای زبان ماشین است. این مسئله در واقع پیدایش سیستمهای عامل امروزی را رقم زد.
اگرچه در آن زمان هم ماشینها همچنان فقط میتوانستند یک وظیفه واحد را در هر لحظه انجام دهند. در مقطعی در دانشگاه کمبریج کشور انگلستان، صف وظایف در واقع بند رختی بود که نوارهای پانچ شده با گیرههای لباس دارای رنگهای مختلف آویزان میشدند تا اولویت وظایف مشخص شوند.
تاریخچه سیستم عامل در دهه ۵۰ میلادی
تا اواخر دهه ۵۰ میلادی (۳۰ خورشیدی) برنامههایی شروع به پیدایش کردند که میتوانستیم آنها را به عنوان سیستم عامل در نظر بگیریم. یکی از نرم افزارهایی که اغلب به عنوان اولین سیستم عامل به آن اشاره میشود، GM-NAA I/O نام دارد که در سال ۱۹۵۶ برای IBM 704 منتشر شده است. اولین نمونهای که به واقع نام آن را سیستم عامل گذاشتهاند، «سیستم عامل اشتراکی» یا «Shared Operating System» است که نوع توسعهیافته GM-NAA I/O به حساب میآید و در سال ۱۹۵۹ منتشر شده است.
IBM 704
در مقاله منتشر شده به تاریخ ماه می ۱۹۶۰ در توصیف این سیستم عامل، «جورج ریکمن» (George Ryckman) بیان داشته است:
ظهور و توسعه سیستمعاملهای کامپیوتری به لحاظی مادی مشکل قرار دادن یا برداشتن یک برنامه یا مجموعهای از برنامهها را در کامپیوترها به گونهای بهینه حل کرده است.
یکی از نمونههای مشهورتری که اغلب در بحثهای مربوط به سیستمهای اولیه مطرح میشود، سیستم عامل Atlas Supervisor نام دارد که روی کامپیوتر اطلس در سال ۱۹۶۲ اجرا میشد. علاوه بر Supervisor به این سیستم Monitor هم گفته میشد. دانشمند علوم کامپیوتر، «برینچ هانسن» (Brinch Hansen) این سیستم عامل را به عنوان مهمترین تحول در تاریخ سیستمعاملها توصیف کرده است.
کامپیوتر Atlas
روند پیشرفت سیستم عامل برای کامپیوترهای Mainframe
کامپیوترهای Mainframe به کامپیوترهای مرکزی گفته میشود که قدرت پردازشی بسیار بالایی دارند و معمولاً در سازمانهای بسیار بزرگ نظیر بانکها مورد استفاده قرار میگرفتند. امروزه فناوریهای جدیدتری مثل پردازش ابری تقریباً جایگزین Mainframeها شدهاند.
قابلیت های جدید کامپیوترهای Mainframe در دهه ۵۰ میلادی
در طول دهه ۵۰ میلادی، قابلیتهای جدید بسیاری در حوزه سیستمهای عامل مخصوص کامپیوترهای Mainframe بنیانگذاری شدند. از جمله این قابلیتها میتوان به موارد زیر اشاره کرد:
- پردازش دستهای (Batch Processing)
- وقفهدهی ورودی/خروجی (Input/Output Interrupting)
- میانگیری (Buffering | عمل قرار دادن دادهها در میانگیر یا بافر)
- چندوظیفگی (چندکارگی | Multitasking)
- عملیات همزمان دستگاه جانبی برخط (Spooling | Simultaneous Peripheral Operation on Line)
- کتابخانههای زمان اجرا (Runtime Libraries)
- بارگذاری پیوند (Link Loading)
- برنامههایی برای مرتبسازی رکوردها در فایلها
این ویژگیها و قابلیتها به جای اینکه در سیستم عاملی جدا به وسیله تمام اپلیکیشنها استفاده شوند، تنها برخی از آنها به انتخاب برنامه نویسان، در توسعه بعضی از نرم افزارهای کاربردی به کار گرفته میشدند یا ممکن بود از آنها استفاده نشود.
نقش کلیدی OS/360 در تاریخچه سیستم عامل
در طول دهه ۶۰ میلادی، در سیستم عامل OS/360 شرکت IBM این رویکرد و مفهوم معرفی شد که یک سیستم عامل واحد کل خط تولید را پوشش دهد. این رویکرد برای موفقیت ماشینهای System/360 بسیار حیاتی و ضروری بود. سیستم عاملهای Mainframe امروزی شرکت IBM نوادگان دور آن سیستمهای اولیه قدیمی به حساب میآیند. البته ماشینهای امروزی با برنامههای نوشته شده برای OS/360 سازگاری دارند و به اصطلاح با آنها «پسسازگار» (Backward Compatible) هستند.
استفاده از سیستم عامل OS/360 در کامپیوترهای Mainframe شرکت IBM
همچنین در OS/360 شیوهای بنیان گذاشته شد که در آن سیستم عامل پایش تمام منابع سیستمی مورد استفاده را انجام میدهد که این شامل تخصیص فضا برای برنامه و دادهها در حافظه اصلی، فضای فایل در ذخیرهگاه جانبی و قفل کردن فایلها در طول بروزرسانیها میشود. وقتی که پردازشی به هر دلیلی متوقف شود، تمام این منابع به وسیله سیستم عامل بازپس گرفته میشوند.
سیستم عامل های Mainframe شرکت IBM
سیستم جایگزین برای S/360-67 به نام CP-67 آغازگر تولید دسته جدیدی از سیستمهای عامل شرکت IBM به حساب میآید که تمرکز آن روی مفهوم ماشینهای مجازی (Virtual Machine) قرار داشته است. سایر سیستم عاملهایی که برای سری S/360 کامپیوترهای Mainframe شرکت IBM مورد استفاده قرار میگرفتند شامل موارد زیر میشوند که آنها هم توسط شرکت IBM ساخته شدهاند:
- DOS/360 (سیستم عامل دیسکی | Disk Operating System)
- TSS/360 (سیستم اشتراک زمانی | Time Sharing System)
- TOS/360 (سیستم عامل روبانی یا نواری | Tape Operating System)
- BOS/360 (سیستم عامل پایه | Basic Operating System)
- ACP (برنامه کنترل خطوط هوایی | Airline Control Program)
همچنین تعدادی سیستم عامل که توسط IBM ساخته نشده بودند هم در سری S/360 کامپیوترهای Mainframe این شرکت مورد استفاده قرار میگرفتند:
- MTS (سیستم پایانگر میشیگان | Michigan Terminal System)
- MUSIC (سیستم چندکاربره برای محاسبات تعاملی | Multi-User System for Interactive Computing)
- ORVYL (سیستم اشتراک زمانی استنفورد | Stanford Timesharing System)
تاریخچه سیستم عامل های Mainframe در دهه 60 میلادی
سیستم عامل MUSIC
شرکت کنترل دیتا (Control Data Corporation) سیستم عامل SCOPE را برای پردازش دستهای در دهه ۶۰ میلادی (دهه ۴۰ خورشیدی) توسعه داده است. با همکاری دانشگاه مینهسوتا، سیستم عامل Kronos و بعدها هم سیستم عامل NOS در طول دهه ۷۰ میلادی (۵۰ خورشیدی) توسعه داده شدند. این سیستم عامل NOS از پردازش دستهای و اشتراک زمانی پشتیبانی میکرد. درست مثل بسیاری از سیستمهای اشتراک زمانی تجاری، رابط NOS نیز برگرفته از سیستمعاملهای Dartmouth BASIC بود.
سیستمعاملهای Dartmouth BASIC یکی از تلاشهای پیشگامانه در اشتراک زمانی و زبانهای برنامه نویسی به حساب میآید. در اواخر دهه ۷۰ میلادی، شرکت Control Data و دانشگاه ایلینویز سیستمعاملی را به نام PLATO توسعه دادند که در آن از صفحه نمایشهایی با پنل پلاسما و شبکههای اشتراک زمانی با فاصله زیاد استفاده میشد. سیستم عامل Plato برای زمان خودش بسیار خلاقانه بود و در آن قابلیتهایی برای گفتگوی آنلاین و بازیهای گرافیکی چندکاربره ارائه شده بودند.
سیستم عامل MCP برای کامپیوتر B5000
در سال ۱۹۶۱ شرکت Burroughs محصول B5000 را معرفی کرد که دارای سیستم عاملی به نام MCP (برنامه ارشد کنترل | Master Control Program) بود. B5000 یک ماشین پشتهای بود که بهطور خاص برای پشتیبانی از زبانهای برنامه نویسی سطح بالای بدون اسمبلر طراحی شده بود. در واقع MCP اولین سیستم عاملی بود که بهطور ویژه با یک زبان برنامه نویسی سطح بالا (یعنی ESPOL که گونهای از ALGOL به حساب میآید) توسعه داده شده است.
علاوه بر این، بسیاری از سایر نوآوریهای پیشگامانه دیگر نیز به واسطه سیستم عامل MCP معرفی شدهاند. از جمله این نوآوریها میتوان به اولین پیادهسازی تجاری از «حافظه مجازی» (Virtual Memory) اشاره کرد. در حین توسعه AS/400، شرکت IBM با شرکت Burroughs برای دریافت مجوز جهت اجرای MCP روی سختافزار AS/400 وارد مذاکره شد. مدیریت شرکت Burroughs این پیشنهاد را نپذیرفت تا از تولید سخت افزار فعلی خود محافظت کند. امروزه در تولید کامپیوترهای رده MCP/ClearPath شرکت یونیسیس همچنان از سیستم عامل MCP استفاده میشود.
تاریخچه سیستم عامل های Mainframe در دهه ۷۰ میلادی
اولین تولید کننده کامپیوترهای تجاری یعنی شرکت UNIVAC، مجموعهای از سیستمعاملهای EXEC را تولید کرده است. درست مثل تمام سیستمهای MainFrame اولیه، در این سیستم مبتنی بر پردازش دستهای نیز امکان مدیریت حافظههای طبلهای مغناطیسی (Magnetic Drum)، دیسکها، کارتخوانها و پرینترهای خطی (Line Printer) وجود داشت. در دهه ۷۰ میلادی، UNIVAC «سیستم بلادرنگ پایه» (Real-Time Basic | RTB) را برای پشتیبانی از اشتراک زمانی در سطح وسیع ارائه کرد که در ساخت این سیستم هم از Dartmouth BC الگو گرفته شده بود.
در این دوران شرکت جنرال الکتریک هم سیستم عاملی به نام «ناظر عملیات همهجانبه جنرال الکتریک» (General Electric Comprehensive Operating Supervisor) را توسعه داد که به اختصار GECOS خطاب میشود. این سیستم عامل در درجه اول از پردازش دستهای پشتیبانی میکند. پس از تصاحب آن توسط شرکت Honeywell، نام این سیستم عامل به «سیستم عامل عمومی همهجانبه» (General Comprehensive Operating System) یا به اختصار GCOS تغییر داده شد. شرکتهای Bell Labs، جنرال الکتریک و MIT «سرویس چندبرابری اطلاعات و محاسبات» (Multiplexed Information and Computing Service) یا به اختصار Multics را توسعه دادند که مفهوم «سطوح امتیاز امنیتی حلقهای» به واسطه آن معرفی شده است.
سیستم عامل عمومی همه جانبه
«شرکت تجهیزات دیجیتال» (Digital Equipment Corporation) سیستمعاملهای بسیاری را برای خطهای تولید کامپیوترهای مختلف خود توسعه داده است که از جمله میتوان به TOPS-20 ،TOPS-10 و سیستمهای اشتراک زمانی برای سیستمهای رده PDP-10 شانزده بیتی اشاره کرد. پیش از استفاده گسترده از یونیکس (UNIX)، سیستم عامل TOPS-10 در دانشگاهها و جامعه اولیه آرپانت (ARPANET) بسیار پراستفاده و محبوب بود. RT-11 سیستمعاملی تککاربری و بلادرنگ برای رده مینیکامپیوتر PDP-11 به حساب میآمد و RSX-11 نیز سیستم عامل چندکاربرده متناظر آن محسوب میشود.
از اواخر دهه ۶۰ میلادی تا اواخر دهه ۷۰، قابلیتهای سختافزاری زیادی بوجود آمدند که اجازه میدادند نرم افزارهای یکسان یا انتقال یافته روی بیش از یک سیستم اجرا شوند. سیستمهای اولیه از «ریزبرنامهنویسی» (Microprogramming) برای پیادهسازی قابلیتهای خاصی روی سیستمهای خود استفاده میکردند تا این امکان بهوجود بیاید که معماریهای اساسی کامپیوتری دقیقاً شبیه به سایرین در یک سری ظاهر شوند.
در واقع اکثر سریهای 360 بعد از 360/40 (به غیر از 360/44، 360/75، 360/95 و 360/195) پیادهسازیهایی از نوع ریزبرنامهنویسی شده به حساب میآمدند. سرمایهگذاریهای متعددی که در زمینه نرم افزار برای این سیستمها از دهه ۶۰ میلادی صورت گرفت، باعث شد تولیدکنندگان به توسعه سیستمعاملهای سازگار به همراه سختافزارهای خود ادامه دهند.
روند پیشرفت سیستم عامل برای میکرو کامپیوترها
اولین میکروکامپیوترها (ریزکامپیوترها) ظرفیت یا نیاز به سیستمعاملهای پیشرفتهای را که برای کامپیوترهای Mainframe و مینیکامپیوترها توسعه داده شده بودند را نداشتند. سیستمعاملهای مینیمالیستی که توسعه داده شده بودند اغلب از ROM بارگذاری میشدند و به عنوان «ناظر» (Monitor) شناخته میشدند.
یکی از سیستمعاملهای دیسکی اولیه قابل توجه، CP/M نام دارد که در بسیاری از میکروکامپیوترهای اولیه پشتیبانی میشد و در ساخت آن به میزان زیادی از سیستم عامل MS-DOS مایکروسافت تقلید شده بود؛ این سیستم عامل به عنوان سیستم انتخاب شده برای IBM PC به میزان زیادی محبوبیت پیدا کرده بود (نسخه IBM آن IBM DOS یا PC DOS خطاب میشد).
PC DOS یکی از اولین سیستمعاملهای کامپیوترهای شخصی بود که واسط خط فرمان داشت.
شروع پیدایش سیستم عامل های مطرح کنونی
در دهه ۸۰ میلادی شرکت اپل کامپیوتر (که اکنون به آن شرکت اپل میگویند)، سریهای محبوب میکروکامپیوترهای Apple II خود را برای معرفی کامپیوتر مکینتاش اپل کنار گذاشتند. مکینتاش دارای رابط کاربری گرافیکی نوآورانهای بود.
معرفی چیپ پردازنده اینتل 80386 در مهرماه ۱۳۶۴ خورشیدی (اکتبر 1985) با معماری ۳۲ بیتی و امکان مدیریت حافظه صفحهبندی شده (Paging)، قابلیت اجرای سیستمعاملهای دارای امکان چندوظیفگی شبیه به مینیکامپیوترها و Mainframeها را برای کامپیوترهای شخصی فراهم کرده است. شرکت مایکروسافت با استخدام «دیوید کاتلر» (Dave Cutler) به این پیشرفت واکنش نشان داد. آقای کاتلر سیستم عامل VMS را برای شرکت تجهیزات دیجیتال توسعه داده بود. کاتلر توسعه ویندوز NT را رهبری میکند، که به عنوان پایه و اساس خط تولید تمام سیستمعاملهای شرکت مایکروسافت به حساب میآید.
منشا سیستم عامل macOS
استیو جابز همبنیاینگذار شرکت اپل، شرکت کامپیوتری NeXT را بنیانگذاری کرد. این شرکت سیستم عاملی به نام NEXTSTEP را توسعه داده است. سیستم عامل NEXTSTEP بعدها توسط شرکت اپل تصاحب شد و به همراه کدهای FreeBSD به عنوان هسته مک OS X (که بعدها نامش به macOS تغییر داده شد) مورد استفاده قرار گرفت.
پیدایش سیستم عامل لینوکس
پروژه GNU (گنو) به وسیله «ریچارد استالمن» (Richard Stallman) برنامه نویس و فعال حوزه کامپیوتر با هدف ایجاد نرمافزاری جایگزین و کاملاً رایگان برای سیستم عامل اختصاصی یونیکس آغاز شد. با وجود اینکه این پروژه به میزان زیادی در ۲ برابر کردن قابلیتهای عملکردی بخشهای مختلف یونیکس موفقیتآمیز بود، ثابت شد که توسعه «گنو هرد» (GNU Hurd) بیحاصل و غیرمولد بوده است. در سال ۱۹۹۱ میلادی (۱۳۷۰ خورشیدی)، دانشجوی فنلاندی علوم کامپیوتر به نام «لینوس توروالدز» (Linus Torvalds) با همکاری داوطلبانی که از طریق اینترنت همکاری میکردند، اولین نسخه «هسته لینوکس» (Linux Kernel) را منتشر کرد.
پس از چندی هسته لینوکس با اجزای فضای کاربری و نرمافزار سیستم گنو ترکیب شد تا در نهایت سیستمعاملی کامل شکل بگیرد. از آن زمان، ترکیب این دو بخش اصلی معمولاً توسط صنعت نرم افزار به سادگی همان «لینوکس» (Linux) خطاب میشود. البته توافق بر سر این نام چیزی است که استالمن و بنیاد نرم افزار آزاد همچنان با آن مخالف هستند و نام «GNU/Linux» را ترجیح میدهند.
سیستم عامل BSD
توزیع نرمافزاری برکلی (Berkeley Software Distribution) که با سرنام BSD شناخته میشود، مشتق شده از یونیکس به حساب میآید که توسط دانشگاه کالیفرنیا، برکلی در اوایل دهه ۷۰ میلادی توزیع شده است. این سیستم عامل بهطور رایگان در بسیاری از مینیکامپیوترها توزیع شد و پس از آن هم برای استفاده در کامپیوتریهای شخصی (PCها) با نامهای NetBSD، FreeBSD و OpenBSD به کار گرفته شد.
نمونه هایی از سیستم عامل های مختلف
در این بخش رایجترین و محبوبترین سیستمعاملهای موجود معرفی شدهاند.
سیستم عامل یونیکس و یونیکس مانند
سیستم عامل یونیکس در اصل به زبان اسمبلی نوشته شده است. «کِن تامسون» (Ken Thompson) زبان B را براساس تجربهاش در پروژه MULTICS نوشته که در اصل مبتنیبر زبان BCPL است. سپس زبان B با زبان برنامه نویسی C جایگزین و پس از آن هم یونیکس به زبان C بازنویسی شد. این بازنویسی یونیکس را به خانوادهای بزرگ و پیچیده از سیستم عاملهایی بدل کرد تاثیر عمیقی در توسعه هر یک از سیستمعاملهای امروزی داشته است.
خانواده سیستمعاملهای «یونیکسمانند» (UNIX-like) گروهی متنوع از سیستمهای عامل به حساب میآید که دارای زیرمجموعههای اصلی بسیاری است که از جمله آنها میتوان به BSD ،System V و لینوکس اشاره کرد. نام «یونیکس» (UNIX) علامت تجاری «The Open Group» (گروه آزاد) به حساب میآید. این گروه گواهینامه یونیکس را برای استفاده با هر سیستم عاملی ارائه میدهد که ثابت شده است با تعاریف آنها مطابقت دارد. اصطلاح «UNIX-like» (یونیکسمانند) بهطور رایجی برای اشاره به مجموعه بزرگی از سیستمعاملهایی به کار میرود که شبیه به یونیکس اصلی هستند.
سیستمهای یونیکسمانند روی طیف وسیعی از انواع معماریهای مختلف کامپیوتری قابل اجرا هستند. از آنها به میزان گستردهای برای سرورها در کسب و کارهای مختلف استفاده میشود و همچنین آنها را در ایستگاههای کاری (Workstation) محیطهای آکادمیک و مهندسی بهطور گستردهای بهکار میگیرند. گونههای رایگان یونیکس مثل لینوکس و BSD در این حوزهها بسیار محبوب هستند.
یونیکسی بودن ۵ سیستم عامل به وسیله گروه آزاد (دارنده نشان تجاری یونیکس) تایید و گواهی شده است. سیستم عامل HP-UX متعلق به شرکت HP و سیستم عامل AIX مربوط به شرکت IBM هر دو از نسل سیستم اصلی V Unix هستند و تنها با این هدف طراحی شدهاند که روی سختافزار تولید شده توسط شرکت سازندهشان اجرا شوند. برخلاف آن، سیستم عامل ساخته شده توسط شرکت سان مایکروسیستمز به نام سولاریس (Solaris) میتواند روی چندین نوع از سیستمها اجرا شود که از جمله آنها میتوان به کامپیوترهای x86، سرورهای اسپارک و PCها اشاره کرد.
مک OS شرکت اپل که جایگزینی برای سیستمعاملهای اولیه غیر لینوکسی اپل به حساب میآید گونهای ترکیبی مبتنیبر هسته از سیستم عامل BSD به حساب میآید که از Mach ،NEXTSTEP و FreeBSD مشتق شده است. کارکردپذیری مشترک یونیکس با ایجاد استاندارد POSIX دنبال شد. استاندارد POSIX را به هنر نو سیستم عاملی اعمال کرد، اگرچه این سیستم عامل در اصل برای گونههای مختلف سیستم عامل یونیکس ایجاد شده است.
سیستم عامل BSD و نسل های مختلف آن
خانواده «توزیع نرمافزاری برکلی» (Berkeley Software Distribution) یا همان BSD زیرمجموعهای از خانواده یونیکس به حساب میآید که شامل نسخههای زیر میشود:
سیستمعاملهای فوق معمولاً بهطور رایج در وب سرورها یافت میشوند. اگرچه همچنان میتوان از آنها به عنوان سیستم عامل مخصوص کامپیوترهای شخصی هم استفاده کرد. پیدایش اینترنت به میزان زیادی وابسته به BSD است، چرا که بسیاری از پروتکلهایی که امروزه به وسیله کامپیوترها برای متصل شدن استفاده میشوند، دادهها را از طریق شبکهای ارسال و دریافت میکنند که بهطور گستردهای در BSD پیادهسازی و بهینهسازی شده است. علاوه بر این، تارنمای جهانگستر (World Wide Web | WWW) نیز ابتدا روی تعدادی از کامپیوترهایی تشریح شده است که مبتنی بر BSD بودهاند و سیستم عامل مورد استفاده در آنها NEXTSTEP نام داشته است.
اولین وبسرور برای WWW روی سیستم عامل NeXTSTEP اجرا شد که مبتنی بر BSD بود.
در سال ۱۳۵۳ خورشیدی (۱۹۷۴ میلادی) در دانشگاه کالیفرنیا، برکلی اولین سیستم یونیکسی راهاندازی شد و در طول زمان دانشجویان و کارکنان بخش علوم کامپیوتر آنجا شروع به افزودن برنامههای جدید کردند تا فرایندها را سادهتر کنند و مثلاً ویرایشگرهای متن را ساختند. زمانی که برکلی کامپیوترهای جدید VAX را در سال ۱۹۷۸ به همراه یونیکس نصب شده روی آنها دریافت کرد، دانشجویان مقطع کارشناسی در این دانشگاه بیش از پیش این بار تغییراتی را روی یونیکس به وجود آوردند تا بتوانند از قابلیتهای سخت افزاری این کامپیوترها نهایت بهره را ببرند. آژانس پروژههای پژوهشی پیشرفتهٔ دفاعی (دارپا) در وزارت دفاع به این موضوع علاقه نشان داد و تصمیم به سرمایهگذاری روی این پروژه گرفت.
بسیاری از مدارس، شرکتهای تجاری و سازمانهای دولتی نیز به این ابداعات توجه نشان دادند و به جای نسخه رسمی توزیع شده توسط AT&T، شروع به استفاده از نسخه یونیکس تغییر داده شده توسط برکلی کردند. استیو جابز پس از ترک شرکت اپل در سال ۱۹۸۵ شرکت NeXT را تاسیس کرد، شرکتی که کامپیوترهای سطح بالا تولید میکرد. روی این کامپیوترها گونه خاصی از BSD به نام NeXTSTEP اجرا میشد. یکی از این کامپیوترها بهوسیله تیم برنرز لی (Tim Berners-Lee) به عنوان اولین وبسرور برای خلق تارنمای جهانگستر به کار گرفته شد.
توسعه دهندگانی مثل «کیث باستیک» (Keith Bostic) از پروژهای پشتیبانی کردند که در آن تمام کدهای غیر رایگانی جایگزین شوند که از آزمایشگاههای Bell سرچشمه میگرفتند. پس از انجام این کار، شرکت AT&T شکایت کرد. پس از ۲ سال دعوای حقوقی، چندین نسخه مشتق شده با استفاده از پروژه BSD ایجاد شدند که از جمله آنها میتوان به NetBSD و FreeBSD هر دو در سال ۱۹۹۳ و OpenBSD (مشتق شده از NetBSD) اشاره کرد.
سهم سیستم عامل های مختلف از بازار به چه ترتیب است؟
«مایکروسافت ویندوز» (Microsoft Windows) سیستم عامل غالب و فراگیر همهمنظورهای به حساب میآید که سهم بازار آن در حدود ۷۶٫۴۵ درصد تخمین زده میشود. سیستم عامل مک (مک او اس | macOS) که توسط شرکت اپل ساخته شده است، با سهم ۱۷٫۷۲ درصدی در جایگاه دوم قرار دارد. گونههای مختلف سیستم عامل لینوکس نیز در رتبه سوم قرار میگیرند و دارای سهمی معادل ۱٫۷۳ درصد هستند.
سهم سیستم عامل های مختلف در بازار دستگاه های همراه چگونه است؟
در بخش دستگاههای همراه یا همان موبایل که گوشیهای موبایل و تبلتها را شامل میشوند، سیستم عامل اندروید با سهم بازار ۷۲ درصدی در سال ۱۴۰۰ رتبه اول را به خود اختصاص داده است. براساس دادههای مربوط به سال ۲۰۱۶، سهم گوشیهای هوشمند اندرویدی ۸۷٫۵ درصد بوده و ۱۰٫۳ درصد در سال رشد داشته است. این در حالی است که سیستم عامل iOS شرکت اپل دارای سهم ۱۲٫۱ از بازار سیستمعاملهای موبایل بوده و این سهم سالانه ۵.۲ درصد کاهش داشته است. سایر سیستمهای عامل موبایلی هم تنها سهمی در حدود ۰.۳ درصد داشتهاند.
سهم بازار سیستم عامل های مخصوص سرور ها و سوپر کامپیوترها در اختیار کدام سیستم عامل است؟
در حوزه سرورها و ابَرکامپیوترها، توزیعهای مختلف سیستمعاملهای لینوکسی بر سایر سیستمعاملها غالب و چیره هستند. سیستمعاملهای مایکروسافت ویندوز سرور، اوبونتو سرور، CentOS Server و Red Hat Enterprise از جمله بهترینها برای راهاندازی و مدیریت سرور به حساب میآیند.
کم ترین سهم بازار سیستم عامل به چه نوع سیستم هایی تعلق دارد؟
سایر انواع سیستمعاملهای تخصصی (سیستمهای عامل با مقاصد خاص) مثل «سیستمهای تعبیهشده» (Embedded Systems) و «سیستمهای بلادرنگ» (Real-Time Systems) نیز برای بسیاری از کاربردهای مختلف موجود هستند. همچنین سیستمهای عامل متمرکز بر امنیت نیز وجود دارند. برخی از سیستمهای عامل دارای نیازمندیهای سیستمی کمی هستند؛ از جمله این نوع از سیستمعاملها میتوان توزیعهای کم حجم لینوکس را مثال زد. سایر سیستمعاملها هم ممکن است ملزومات سیستمی بیشتری داشته باشند.
جمعبندی
سیستمعامل (OS) یک نرمافزار است که به عنوان واسط بین کاربر و سختافزار کامپیوتر عمل میکند. دستهبندیهای مختلفی برای سیستم عامل وجود دارد که بر اساس نوع سختافزار مورد استفاده و شرکت سازنده تقسیمبندی میشود. سیستمهای عامل در کامپیوترهای شخصی ابتدا برای اهداف دیگری نظیر مدیریت نوارهای مغناطیسی ارائه شد و بعدها با توسعه علم دیجیتال، برای مدیریت فایلهای دیجیتال در سختافزارها مورد استفاده قرار گرفت.
هر سیستمعامل از دو بخش اصلی هسته و پوسته تشکیل یافته است که عملکرد اصلی و مدیریت منابع در هسته یا کرنل صورت میگیرد. سیستمهای عامل به چهار دسته اصلی تقسیمبندی میشوند که عبارتند از: سیستم عامل کامپیوتر، موبایل، سختافزار شبکه و OS های صنعتی؛ اما دستهبندیهای دیگری نظیر سیستم عامل دستهای یا Batch، سیستم عامل اشتراک زمانی یا سیستم عامل چندمنظوره نیز معرفی شدهاند که همگی به نوعی زیرمجموعه چهار دستهبندی اصلی محسوب میشوند.
در نهایت این سوال وجود دارد که وظایف اصلی یک سیستم عامل چیست؟ پردازش، مدیریت فایل، مدیریت تجهیزات ورودی و خروجی، مدیریت حافظه، اجرای برنامهها، ذخیرهسازی سطح ثانویه و تأمین امنیت از وظایف اصلی سیستم عامل است. در مجموع فواید استفاده از OS بسیار زیاد بوده و عملکرد سختافزارهای کامپیوتری تا حدی به وجود سیستم عامل وابسته است. میتوان گفت که امروزه هیچ سختافزاری وجود ندارد که بدون سیستم عامل بتواند به اجرای دستورات و برنامههای مختلف بپردازد.