انواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربرانReviewed by mjs on Nov 13Rating: 4.5انواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربرانانواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربرانانواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربران

 

انواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربران

انواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربران

 

 

انواع سیستم عامل های وسایل هوشمند و امکانات آنها برای کاربران

سیستم های عامل
قرار دادن سیستم عامل .svg
درباره این تصویر
ویژگی های مشترک
مدیریت فرآیند وقفه مدیریت حافظه سیستم فایل سیستم عامل درایور شبکه امنیت I / O
v t e
سیستم عامل (OS) نرم افزار سیستمی است که منابع سخت افزاری و نرم افزاری کامپیوتر را مدیریت می کند و خدمات رایج را برای برنامه های کامپیوتری فراهم می کند. همه برنامه های کامپیوتری، به استثنای سیستم عامل، نیازمند یک سیستم عامل برای عملکرد هستند.


رزرو هتل در مشهد - اقامت در مشهد

وظایف سیستم عامل های به اشتراک گذاری زمان برای استفاده کارآمد از سیستم و همچنین ممکن است شامل نرم افزار حسابداری برای تخصیص هزینه پردازشگر، ذخیره سازی انبوه، چاپ و سایر منابع باشد.

برای عملکردهای سخت افزاری مانند ورودی و خروجی و تخصیص حافظه، سیستم عامل به عنوان واسطه بین برنامه ها و سخت افزار کامپیوتر عمل می کند [1] [2] اگر چه کد برنامه معمولا توسط سخت افزار اجرا می شود و اغلب باعث می شود تماس های سیستم به یک عملکرد سیستم عامل یا توسط آن قطع شده است. سیستم های عامل در بسیاری از دستگاه هایی که حاوی یک کامپیوتر هستند – از تلفن های همراه و کنسول های بازی های ویدئویی به سرورهای وب و ابر رایانه ها پیدا می شود.

سیستم عامل دسکتاپ غالب ویندوز مایکروسافت با سهم بازار حدود 83.3٪ است. MacOS توسط Apple Inc. در رتبه دوم قرار دارد (11.2٪)، و انواع لینوکس به طور جمعی در جایگاه سوم (1.55٪) هستند. [3] در بخش تلفن همراه (تلفن هوشمند و قرص ترکیبی)، طبق آمار سه ماهه سال 2016، گوگل گوگل با 87.5 درصد رشد و سرعت رشد 10.3 درصد در سال، پس از iOS در iOS با 12.1 درصد و در سال کاهش در بازار سهم 5.2 درصدی، در حالی که سایر سیستم عامل ها فقط 0.3 درصد را تشکیل می دهند. [4] توزیع های لینوکس در بخش های سرور و سوپر کامپکت غالب هستند. دیگر کلاس های تخصصی سیستم عامل مانند سیستم های جاسازی شده و در زمان واقعی برای بسیاری از برنامه های کاربردی وجود دارد.

تک و چند tasking
یک سیستم تک تک کار می تواند تنها یک برنامه را در یک زمان اجرا، در حالی که یک سیستم عامل چند کاره اجازه می دهد بیش از یک برنامه در حال اجرا در همزمان شدن. این به اشتراک گذاری زمان به دست می آید، تقسیم زمان پردازنده موجود بین فرآیندهای چندگانه که هر بار به صورت متناوب در برش های زمان توسط زیر سیستم سیستم عامل کاری انجام می شود. چند tasking ممکن است در انواع preemptive و همکاری تعریف شود. در چند وظیفه پیشگیرانه، سیستم عامل زمان CPU را برش می دهد و یک اسلات را به هر یک از برنامه ها اختصاص می دهد. سیستم عامل های یونیکس مانند، Solaris، لینوکس، و همچنین AmigaOS پشتیبانی از چندظرفی پیشگیرانه. Multitasking تعاونی با تکیه بر هر فرآیند به ارائه زمان به فرآیندهای دیگر به نحوی تعریف شده است. نسخه های 16 بیتی مایکروسافت از چندین وظیفه همکاری استفاده می کنند. نسخه های 32 بیتی هر دو ویندوز NT و Win9x، چند tasking preemptive را استفاده می کنند.

تک و چند کاربر
سیستم عامل های تک کاربره امکانات خاصی برای تشخیص کاربران ندارند، اما ممکن است برنامه های چندگانه را به صورت یکپارچه اجرا کنند. [5] یک سیستم عامل چند کاربره، مفهوم پایه ای چند کاره را با امکاناتی تشخیص می دهد که فرآیندها و منابع را شناسایی می کنند، مانند فضای دیسک، متعلق به چندین کاربر، و سیستم اجازه می دهد چندین کاربر همزمان با یک سیستم ارتباط برقرار کنند. وظایف برنامه های زمانبندی سیستم عامل برای استفاده کارآمد از سیستم و همچنین ممکن است شامل نرم افزار حسابداری برای تخصیص هزینه زمان پردازنده، ذخیره سازی انبوه، چاپ و سایر منابع به چند کاربر باشد.

توزیع شده
یک سیستم عامل توزیع شده، گروهی از رایانه های متمایز را مدیریت می کند و به نظر می رسد که آنها یک کامپیوتر واحد هستند. توسعه رایانه های شبکه ای که می توانند ارتباط برقرار کنند و با یکدیگر ارتباط برقرار کنند، باعث افزایش محاسبات توزیع شده می شود. محاسبات توزیع شده در بیش از یک ماشین انجام می شود. هنگامی که رایانه های گروه در همکاری کار می کنند، سیستم توزیع را تشکیل می دهند. [6]

قالب
در سیستم عامل، محاسبات توزیع شده و محاسبات، الگو به ایجاد یک تصویر ماشین مجازی به عنوان یک سیستم عامل مهمان اشاره دارد و سپس آن را به عنوان یک ابزار برای چندین ماشین مجازی اجرا می کند. این تکنیک در مجازی سازی و مدیریت محاسبات ابری استفاده می شود و در انبارهای سرور بزرگ رایج است. [7]

جاسازی شده
سیستم عامل جاسازی شده طراحی شده است که در سیستم های کامپیوتری جاسازی شده مورد استفاده قرار گیرد. آنها طراحی شده اند که بر روی دستگاه های کوچک مانند PDA ها با کمترین استقلال کار کنند. آنها قادر به کار با تعداد محدودی از منابع هستند. آنها طراحی بسیار جمع و جور و بسیار کارآمد هستند. ویندوز CE و Minix 3 نمونه هایی از سیستم عامل های جاسازی شده اند.

بهنگام
یک سیستم عامل زمان واقعی یک سیستم عامل است که تضمین می کند که رویدادها یا داده ها را با یک لحظه خاص در زمان پردازش کند. یک سیستم عامل زمان واقعی ممکن است تک و یا چند tasking، اما هنگامی که چند وظیفه ای، از الگوریتم های برنامه ریزی تخصصی استفاده می کند به طوری که طبیعت قطعی از رفتار به دست آمده است. یک سیستم مبتنی بر رویداد بین وظایف بر اساس اولویت های خود یا حوادث خارجی سوئیچ می کند، در حالی که سیستم عامل های به اشتراک گذاری زمان، وظایف را براساس قطع های ساعت

کتابخانه
یک سیستم عامل کتابخانه یکی است که خدماتی است که یک سیستم عامل معمول از آن فراهم می کند، مانند شبکه، به صورت کتابخانه ها ارائه می شود و با کد برنامه و کد پیکربندی برای ساخت یک یونیکل ارائه می شود: یک فضای اختصاصی، یکپارچه، تصویر دستگاه که می تواند به ابر یا محیط جاسازی شده مستقر شود.

تاریخ
مقاله اصلی: تاریخ سیستم عامل
همچنین نگاه کنید به: مانیتور ساکن
رایانه های اولیه برای انجام یک سری از وظایف تک، مانند یک ماشین حساب ساخته شده بود. ویژگی های اساسی سیستم عامل در دهه 1950 توسعه یافت، مانند توابع مانیتور ساکن که می تواند به طور خودکار برنامه های مختلف را به صورت متوالی اجرا کند تا سرعت پردازش را افزایش دهد. سیستم های عامل تا اوایل دهه 1960 در قالب های مدرن و پیچیده خود وجود نداشت [8] ویژگی های سخت افزاری اضافه شده است که از کتابخانه های در حال اجرا، وقفه ها و پردازش موازی استفاده می کنند. هنگامی که رایانه های شخصی در دهه 1980 محبوب شدند، سیستم عامل ها برای مفهوم مشابه با آنهایی که در رایانه های بزرگ استفاده می شدند، ساخته شده بودند.

در دهه 1940، اولین سیستم های دیجیتال الکترونیکی دارای سیستم عامل نبودند. سیستم های الکترونیکی این بار بر روی ردیف سوئیچ های مکانیکی یا سیم های برقی در تخته های پلاستیکی برنامه ریزی شده بودند. اینها نظامهای خاصی بودند که برای مثال، جداول بالستیک را برای ارتش تولید کردند و یا کنترل چک های حقوق و دستمزد را از داده های کارت های کاغذ پانچ کنترل می کردند. پس از اختراع کامپیوترهای قابل برنامه ریزی، اختراع شد، زبان ماشین (شامل رشته های عددی دودویی 0 و 1 در نوار کاغذ متخلخل) معرفی شد که فرآیند برنامه ریزی را افزایش داد (استرن، 1981).

 

OS / 360 در اکثر رایانه های رایانه ای IBM در سال 1966، از جمله رایانه های مورد استفاده توسط برنامه Apollo استفاده شد.
در اوایل دهه 1950، یک رایانه می تواند تنها یک برنامه را در یک زمان اجرا کند. هر کاربر تنها برای مدت زمان محدودی از کامپیوتر استفاده می کرد و با برنامه و داده های مربوط به کارت های کاغذی مشت و یا نوار پانچ به زمان برنامه ریزی می رسید. این برنامه می تواند به دستگاه بارگذاری شود و دستگاه تا زمانی که برنامه کامل شود یا سقوط کند، تنظیم می شود. با استفاده از سوئیچ های سوئیچ و چراغ های پانل، برنامه ها به طور کلی می توانند با استفاده از پانل جلویی اشکال زدایی شوند. گفته شده است که آلن تورینگ استاد این در ماشین اولیه منچستر مارک 1 بود، و او در حال حاضر درک اولیه از سیستم عامل را از اصول دستگاه تورینگ جهانی است. [8]

بعدها ماشین ها با کتابخانه های برنامه آمدند که با برنامه ی کاربر مرتبط می شوند تا بتوانند در عملیات مانند ورودی و خروجی و تولید کد کامپیوتر از کد نمادین قابل خواندن انسان استفاده کنند. این پیدایش سیستم عامل مدرن بود. با این حال، ماشین ها در یک زمان تنها یک کار را انجام می دهند. در دانشگاه کمبریج انگلستان، یک بار خط شستشو (خط لباس) که از نوارها با لباس های رنگی مختلف آویزان شد، برای نشان دادن اولویت شغلی بود. [نیازمند منبع]

پیشرفت، ناظر اطریش با “منچستر اطلس” که در سال 1962 راه اندازی شد، معرفی شد که “بسیاری از آنها به عنوان اولین سیستم عامل مدرن قابل تشخیص است” [9] برینچ هانسن آن را “مهمترین پیشرفت در تاریخ سیستم عامل” توصیف کرد. [10]

رایانه های بزرگ
مقاله اصلی: تاریخچه سیستم عامل های IBM mainframe
از دهه 1950، بسیاری از ویژگی های اصلی در زمینه سیستم های عامل بر روی کامپیوترهای اصلی، از جمله پردازش دسته ای، وقفه ورودی / خروجی، بافر، چند وظیفه، اسپولینگ، کتابخانه های زمانبندی، پیوند بارگذاری و برنامه هایی برای مرتب سازی پرونده ها در فایل ها پیشگام بودند. این ویژگیها در گزینه برنامهنویسان کاربردی در نرم افزار کاربردی و یا در سیستم عامل جداگانه مورد استفاده توسط تمام برنامه های کاربردی قرار گرفته است. در سال 1959، سیستم عامل SHARE به عنوان ابزار یکپارچه برای IBM 704، و بعدا در فریم های 709 و 7090 منتشر شد، هرچند که توسط IBSYS / IBJOB در 709، 7090 و 7094 به سرعت جایگزین شد.

در طی دهه 1960، OS / 360 IBM مفهوم یک سیستم عامل را دربر گرفت که تمام خط تولید را در بر داشت، که برای موفقیت دستگاه های سیستم / 360 حیاتی بود. سیستم عامل های اصلی سیستم عامل لینوکس نسل دور از این سیستم اصلی است و برنامه های کاربردی نوشته شده برای OS / 360 هنوز هم می تواند بر روی ماشین های مدرن اجرا شود. [نیازمند منبع]

سیستم عامل / 360 همچنین پیشگویی کرد که سیستم عامل تمام منابع سیستمی که مورد استفاده قرار می گیرند، از جمله برنامه ها و تخصیص فضای داده ها در حافظه اصلی و فضای فایل در ذخیره سازی ثانویه، و قفل فایل در هنگام به روز رسانی، پیگیری می شود. هنگامی که روند به هر دلیلی پایان می یابد، تمام این منابع توسط سیستم عامل مجددا ادعا می شوند.

سیستم جایگزین CP-67 برای S / 360-67 کل سیستم عامل های IBM را متمرکز بر مفهوم ماشین های مجازی آغاز کرد. دیگر سیستم عامل های مورد استفاده در رایانه های سری IBM S / 360 شامل سیستم های توسعه یافته توسط IBM: COS / 360 (سیستم عامل سازگاری)، DOS / 360 (سیستم عامل دیسک)، TSS / 360 (سیستم به اشتراک گذاری زمان)، TOS / 360 سیستم عامل)، BOS / 360 (سیستم عامل پایه)، و ACP (برنامه کنترل خطوط هوایی)، و همچنین چند سیستم غیر IBM: MTS (سیستم ترمینال میشیگان)، MUSIC (سیستم چند کاربره برای محاسبات تعاملی) و ORVYL (سیستم Timesharing استنفورد).

شرکت کنترل داده ها سیستم عامل SCOPE را در دهه 1960 برای پردازش دسته ای توسعه داد. در همکاری با دانشگاه مینه سوتا، سیستم های عامل Kronos و بعد از آن سیستم های عامل NOS در دهه 1970 توسعه یافتند که از زمان استفاده مجدد و هم زمان استفاده می کرد. همانند بسیاری از سیستم های بازاریابی تجاری، رابط کاربری آن، گسترش سیستم عامل های Dartmouth BASIC بود، یکی از پیشگامان تلاش در به اشتراک گذاری و زبان های برنامه نویسی. در اواخر دهه 1970، Control Data و University of Illinois سیستم عامل PLATO را توسعه دادند که از صفحه نمایش پانل پانل و شبکه های به اشتراک گذاری دورانی استفاده می کرد. افلاطون برای آن زمان به طور چشمگیری نوآورانه بود، شامل چت در زمان واقعی و بازی های گرافیکی چند کاربره.

در سال 1961، شرکت Burroughs B5000 را با سیستم عامل MCP (Master Control Program) معرفی کرد. B5000 یک دستگاه پشته طراحی شده بود که به طور انحصاری از زبانهای سطح بالا پشتیبانی می کرد بدون هیچ زبان ماشین یا اسمبلر، و در واقع MCP اولین سیستم عامل بود که به طور انحصاری در یک زبان سطح بالا – ESPOL، یک گویش ALGOL نوشته شده بود. MCP همچنین بسیاری از دیگر نوآوری های نوظهور را معرفی کرد، مانند اولین اجرای تجاری حافظه مجازی. در طول توسعه AS / 400، آی بی ام یک رویکرد به Burroughs برای مجوز MCP برای اجرا بر روی سخت افزار AS / 400 انجام داد. این پیشنهاد توسط مدیریت Burroughs برای حمایت از تولید سخت افزار موجود خود رد شد. MCP هنوز هم در خطوط Unisys ClearPath / MCP در حال استفاده است.

UNIVAC، اولین تولید کننده کامپیوتر تجاری، یک سری از سیستم عامل های EXEC را تولید کرد [نیازمندی ارجاع]. مانند تمام سیستم های قاب اولیه اولیه، این سیستم دسته گرا، درام های مغناطیسی، دیسک، خوانندگان کارت و چاپگرهای خطی را مدیریت کرد. در دهه 1970، UNIVAC سیستم Real-Time Basic (RTB) را برای پشتیبانی از به اشتراک گذاری زمان در مقیاس بزرگ، همچنین پس از سیستم دورتموث BC طراحی شده است.

ژنرال الکتریک و MIT مدیر اجرایی عمیق برق عمومی (GECOS) را توسعه دادند که مفهوم سطح امتیاز امتیاز امنیتی را معرفی کرد. پس از کسب Honeywell آن را به سیستم عامل جامع عمومی (GCOS) تغییر نام داد.

شرکت Digital Equipment Corporation بسیاری از سیستم عامل های مختلف خود را برای خطوط کامپیوتری مختلف، از جمله TOPS-10 و TOPS-20 سیستم های به اشتراک گذاری زمان برای 36 بیت PDP-10 سیستم کلاس های توسعه یافته است. قبل از استفاده گسترده از یونیکس، TOPS-10 سیستم دانشگاهی خاصی بود و در جامعه اولیه ARPANET.

از اواخر دهه 1960 تا اواخر دهه 1970، توانایی های سخت افزاری چندگانه توسعه یافت که به نرم افزار مشابه یا نرم افزاری اجازه می داد تا بیش از یک سیستم را اجرا کند. سیستم های اولیه از برنامه ریزی میکروپرداخت برای پیاده سازی ویژگی ها در سیستم های خود استفاده کرده اند تا اجازه می دهد که معماری های مختلف زیر ساخت های کامپیوتری همانند دیگران در یک مجموعه باشند. در حقیقت، بیشتر 360 ثانیه پس از 360/40 (به جز 360/165 و 360/168) پیاده سازی های ریزپردازنده بود.

سرمایه گذاری عظیم در نرم افزار برای این سیستم ها از دهه 1960 باعث شد بسیاری از سازندگان اصلی کامپیوتر به توسعه سیستم عامل های سازگار با سخت افزار ادامه دهند. سیستم عامل های اصلی پشتیبانی شده مشهور عبارتند از:

میکرو کامپیوتر

PC DOS یک سیستم کامپیوتری اولیه بود که دارای یک رابط خط فرمان بود.

سیستم عامل Mac توسط Apple Computer اولین سیستم عامل گسترده ای بود که دارای یک رابط کاربری گرافیکی بود. بسیاری از ویژگی های آن مانند ویندوز و آیکون ها بعدها در رابط کاربری گرافیکی عادی می شوند.
اولین میکرو رایانه ظرفیت یا نیاز به سیستم عامل های پیچیده که برای سیستم های اصلی و مینی توسعه یافته بود ندارد. سیستم عامل های مینیمالیک توسعه یافته است، که اغلب از ROM خوانده می شود و به عنوان مانیتور شناخته می شود. یکی از مهمترین سیستم عامل های اولیه دیسک، CP / M بود که در بسیاری از میکرو رایانه های اولیه پشتیبانی می شد و از MS-DOS مایکروسافت تقلید می شد که به عنوان سیستم عامل انتخاب شده برای IBM PC بسیار محبوب بود (نسخه آی بی ام آن IBM DOS نامیده شد) یا PC DOS). در دهه 1980 Apple Computer Inc. (در حال حاضر شرکت اپل) دومین سری از میکرو رایانه های اپل را ترک کرد تا کامپیوتر Macintosh اپل را با یک رابط کاربری گرافیکی نوین (GUI) به سیستم عامل مک معرفی کند.

معرفی پردازنده تراشه Intel 80386 در اکتبر 1985، [11] با قابلیت های 32 بیتی معماری و صفحه بندی، رایانه های شخصی را با توانایی اجرای سیستم عامل های چند وظیفه ای مانند رایانه های کوچک و رایانه های رومیزی ارائه داد. مایکروسافت در پاسخ به این پیشرفت با استخدام دیو کتلر، که سیستم عامل VMS را برای شرکت Digital Equipment تولید کرده بود، پاسخ داد. او توسعه سیستم عامل ویندوز NT را، که همچنان به عنوان پایه ای برای خطوط سیستم عامل های مایکروسافت ادامه می دهد، هدایت می کند. استیو جابز، یکی از بنیانگذاران شرکت اپل، شرکت NeXT Computer Inc. را آغاز کرد که سیستم عامل NEXTSTEP را توسعه داد. NEXTSTEP بعدا توسط شرکت اپل به دست می آید و همراه با کد از FreeBSD به عنوان هسته Mac OS X (macOS پس از تغییر نام جدید) استفاده می شود.

پروژه GNU توسط ریچارد استالمن فعال و برنامه نویس آغاز شده و هدف آن ایجاد جایگزینی کامل نرم افزار رایگان به سیستم عامل اختصاصی یونیکس است. در حالی که این پروژه در تکثیر بخش های مختلف یونیکس بسیار موفق بود، توسعه ی هسته ی GNU Hurd غیرممکن بود. در سال 1991، لینوس توروالدز، دانشجوی فنلاندی فنلاند فنلاند، با همکاری داوطلبان مشارکتی در اینترنت، اولین نسخه از هسته لینوکس را منتشر کرد. به زودی با اجزای فضای کاربری گنو و سیستم نرم افزاری سیستم به یک سیستم عامل کامل تبدیل شد. از آن زمان، ترکیبی از دو جزء اصلی معمولا توسط صنعت نرم افزاری به نام «لینوکس» نامیده می شود، که قرارداد نامگذاری است که Stallman و بنیاد نرمافزار آزاد همچنان مخالف GNU / Linux هستند. توزیع نرم افزار Berkeley، که BSD نامیده می شود، مشتق یونیکس است که توسط دانشگاه کالیفرنیا برکلی در دهه 1970 منتشر شده است. به طور رایگان برای بسیاری از مینی کامپیوترها توزیع شده و منتقل شد، در نهایت نیز برای استفاده در رایانه های شخصی، به ویژه FreeBSD، NetBSD و OpenBSD، مورد استفاده قرار گرفت.

سیستم عامل های یونیکس و یونیکس
مقاله اصلی: یونیکس

تکامل سیستم های یونیکس
یونیکس در اصل در زبان مونتاژ نوشته شد [12] کن تامسون B، عمدتا مبتنی بر BCPL، بر اساس تجربه خود در پروژه MULTICS نوشت. B توسط C جایگزین شده و یونیکس، در C بازنویسی شده، به یک خانواده بزرگ و پیچیده از سیستم عامل های مرتبط مرتبط تبدیل شده است که در هر سیستم عامل مدرن تاثیر گذار است (نگاه کنید به تاریخچه).

خانواده یونیکس یک گروه گوناگون از سیستم عامل است که دارای چندین زیر مجموعه عمده شامل سیستم V، BSD و لینوکس هستند. نام “UNIX” علامت تجاری گروه باز است که آن را مجاز به استفاده با هر سیستم عامل است که نشان داده شده است به مطابقت با تعاریف خود. “UNIX-like” معمولا برای اشاره به مجموعه ای بزرگ از سیستم عامل های مشابه یونیکس اصلی استفاده می شود.

سیستم های یونیکس بر روی انواع مختلفی از معماری کامپیوتر اجرا می شود. آنها به شدت برای سرورهای تجاری و همچنین ایستگاه های کاری در محیط های علمی و مهندسی مورد استفاده قرار می گیرند. انواع یونیکس رایگان مانند لینوکس و BSD در این زمینه محبوب هستند.

چهار سیستم عامل توسط گروه باز (دارنده علامت تجاری یونیکس) به عنوان یونیکس گواهی شده است. نوت HP-UX و IBM AIX هر دو از نسل اصلی Unix سیستم V هستند و طراحی شده اند تا تنها بر روی سخت افزار فروشندگان خود کار کنند. در مقابل، Solaris مایکروسافت سان می تواند بر روی انواع مختلف سخت افزار، از جمله سرورهای x86 و Sparc و رایانه های شخصی، اجرا شود. MacOS اپل، جایگزینی برای Mac OS پیشین (غیر Unix) اپل، یک نوع BSD مبتنی بر هسته Hybrid است که از NeXTSTEP، Mach و FreeBSD گرفته شده است.

سازگاری یونیکس با ایجاد استاندارد POSIX مورد جستجو قرار گرفت. استاندارد POSIX را می توان به هر سیستم عامل اعمال کرد، هر چند که در اصل برای انواع مختلف یونیکس ایجاد شد.

BSD و فرزندانش
مقاله اصلی: توزیع نرم افزار Berkeley

اولین سرور برای وب جهانی در NeXTSTEP بر اساس BSD اجرا شد.
یک زیرگفت خانواده یونیک، خانواده توزیع نرم افزار Berkeley است که شامل FreeBSD، NetBSD و OpenBSD است. این سیستم عامل اغلب در وب سرورها یافت می شود، هرچند که آنها همچنین می توانند به عنوان سیستم عامل شخصی عمل کنند. اینترنت بسیاری از وجود خود را به BSD اعطا می کند، زیرا بسیاری از پروتکل هایی که معمولا توسط رایانه ها برای اتصال، ارسال و دریافت داده ها از طریق شبکه استفاده می شوند و در BSD به طور گسترده ای مورد استفاده قرار می گیرند. شبکه جهانی وب نیز برای اولین بار در تعدادی از رایانه های مبتنی بر سیستم عامل مبتنی بر BSD به نام NeXTSTEP نشان داده شد.

در سال 1974، دانشگاه کالیفرنیا، برکلی اولین سیستم Unix خود را نصب کرد. با گذشت زمان دانشجویان و کارکنان بخش علوم رایانه شروع به اضافه کردن برنامه های جدید برای ایجاد کارهای ساده تر کردند، مانند ویراستاران متن. هنگامی که برکلی کامپیوترهای جدید VAX را در سال 1978 با یونیکس نصب کرد، مدرسان مقطع کارشناسی ارشد یونیکس را حتی بیشتر به منظور استفاده از امکانات سخت افزاری کامپیوتر تغییر دادند. آژانس پروژه های تحقیقاتی پیشرفته دفاع وزارت دفاع ایالات متحده علاقه مند شد و تصمیم گرفت که این پروژه را تامین کند. بسیاری از مدارس، شرکت ها، و سازمان های دولتی متوجه شدند و از نسخه برکلی یونیکس به جای رسمی که توسط AT & T توزیع شده است استفاده می شود.

استیو جابز، پس از ترک شرکت اپل در سال 1985، شرکت NeXT را تشکیل داد، شرکتی است که رایانه های پیشرفته ای را در حال اجرا بر روی انواع BSD با نام NeXTSTEP تولید می کنند. یکی از این رایانه ها توسط تیم برنرز لی به عنوان اولین وب سرور برای ایجاد وب جهان استفاده شد.

توسعه دهندگان مانند کیت بستیک، پروژه را برای جایگزینی هر کد غیر آزاد که با آزمایشگاه های Bell آغاز شد، تشویق کردند. با این حال، AT & T شکایت کرد. پس از دو سال اختلافات قانونی، پروژه BSD تعدادی از مشتقات آزاد مانند NetBSD و FreeBSD (هر دو در سال 1993) و OpenBSD (از NetBSD در سال 1995) ایجاد کرد.

سیستم عامل مک
مقاله اصلی: macOS
macOS (قبلا “Mac OS X” و بعدا “OS X”) یک سری از سیستم عامل های گرافیکی هسته ای توسعه یافته، به بازار عرضه شده و توسط شرکت اپل فروخته می شود، آخرین نسخه آن در تمام رایانه های مکینتاش در حال حاضر بارگیری شده است. macOS جانشین اصلی سیستم عامل کلاسیک Mac است که از سال 1984 سیستم عامل اصلی اپل بوده است. بر خلاف سلف خود، macOS یک سیستم عامل یونیکس است که براساس تکنولوژی ساخته شده در NeXT از نیمه دوم دهه 1980 تا زمانی که اپل این شرکت را در اوایل سال 1997 خریداری کرد. سیستم عامل ابتدا در سال 1999 به عنوان Mac OS X Server 1.0 منتشر شد و در مارس 2001 توسط نسخه مشتری (Mac OS X v10.0 “Cheetah”) به بازار عرضه شد. از آن زمان، شش نسخه مجزا “مشتری” و “سرور” از macOS منتشر شده است، تا زمانی که دو در OS X 10.7 “Lion” ادغام شدند.

قبل از ادغام آن با macOS، نسخه سرور – macOS Server – به طور معماری مشابه با همتای دسکتاپ آن بود و معمولا روی خط اپل از سختافزار سرور Macintosh اجرا میشد. MacOS Server شامل ابزار مدیریت گروهی و مدیریت نرم افزار است که دسترسی ساده به سرویس های کلیدی شبکه، از جمله عامل انتقال ایمیل، سرور Samba، سرور LDAP، سرور نام دامنه و دیگران را فراهم می کند. با Mac OS X v10.7 شیر، تمام جنبه های سرور سیستم عامل Mac OS X به نسخه مشتری متصل شده اند و محصول دوباره به نام “OS X” (حذف نام “مک” از نام) است. ابزار سرور در حال حاضر به عنوان یک برنامه ارائه می شود. [13]

لینوکس
مقالات اصلی: هسته لینوکس و لینوکس

اوبونتو، توزیع لینوکس دسک تاپ
هسته لینوکس در سال 1991 به عنوان یک پروژه لینوس توروالدز، در حالی که یک دانشجوی دانشگاه در فنلاند بود، آغاز شد. وی اطلاعاتی در مورد پروژه خود را در یک گروه خبری برای دانش آموزان کامپیوتر و برنامه نویسان قرار داد و از داوطلبان که موفق به ایجاد یک هسته کامل و کاربردی شده بودند، حمایت و کمک می کردند.

لینوکس مانند یونیکس است، اما بدون کد یونیکس، بر خلاف BSD و انواع آن، توسعه یافت. به دلیل مدل مجوز باز، کد هسته لینوکس برای مطالعه و اصلاح در دسترس است، که منجر به استفاده از آن در طیف گسترده ای از ماشین آلات محاسباتی از سوپر کامپیوترها به ساعت های هوشمند می شود. اگر چه برآوردها نشان می دهد که لینوکس تنها در 1.82٪ از تمام کامپیوترهای رایانه (یا لپ تاپ) استفاده می شود، [14] به طور گسترده ای برای استفاده در سرورها [15] و سیستم های جاسازی شده [16] مانند تلفن های همراه استفاده شده است. لینوکس بر روی بسیاری از سیستم عاملها یونیکس را جایگزین کرده است و در بیشتر ابر رایانهها از جمله 385 صفحه استفاده میشود. [17] بسیاری از رایانه های مشابه نیز در Green500 (اما در جهت متفاوت) هستند و لینوکس در بالای 10 قرار دارد. لینوکس نیز معمولا در رایانه های کوچک انرژی کارآمد مانند گوشی های هوشمند و smartwatch ها استفاده می شود. کرنل لینوکس در برخی از توزیع های محبوب مانند Red Hat، Debian، Ubuntu، Linux Mint و Android، Chrome OS و Chromium OS استفاده می شود.

ویندوز مایکروسافت
مقاله اصلی: مایکروسافت ویندوز
مایکروسافت ویندوز یک خانواده از سیستم عامل های اختصاصی طراحی شده توسط شرکت مایکروسافت است و عمدتا به کامپیوترهای Intel مبتنی بر معماری مبتنی بر معماری مبتنی بر معماری مبتنی بر معماری مبتنی بر معماری مبتنی بر معماری مبتنی بر معماری Intel می پردازد. آخرین نسخه ویندوز 10 است.

در سال 2011، ویندوز 7 به عنوان رایج ترین نسخه در استفاده از ویندوز XP را شکست. [21] [22] [23]

مایکروسافت ویندوز برای اولین بار در سال 1985 به عنوان یک محیط عملیاتی در بالای MS-DOS منتشر شد که سیستم عامل استاندارد بر روی اکثر کامپیوترهای شخصی Intel در آن زمان حمل می شد. در سال 1995، ویندوز 95 منتشر شد که فقط MS-DOS را به عنوان بوت استرپ استفاده کرد. برای سازگاری با عقب، Win9x می تواند حالت های MS-DOS [24] [25] و 16 بیتی ویندوز 3.x [26] را اجرا کند. ویندوز ME، که در سال 2000 منتشر شد، آخرین نسخه در خانواده Win9x بود. نسخه های بعدی همه بر پایه هسته ویندوز NT است. نسخه های فعلی مشتری ویندوز در IA-32، x86-64 و ریزپردازنده ARM 32 بیتی اجرا می شوند. [27] علاوه بر این، Itanium هنوز هم در نسخه سرور قدیمی Windows Server 2008 R2 پشتیبانی می شود. در گذشته، ویندوز NT از معماری های اضافی پشتیبانی می کرد.

نسخه های سرور ویندوز به طور گسترده استفاده می شود. در سال های اخیر، مایکروسافت سرمایه قابل توجهی را صرف استفاده از ویندوز به عنوان یک سیستم عامل سرور کرده است. با این حال، استفاده از ویندوز در سرورها به اندازه رایانههای شخصی رایج نیست، زیرا ویندوز در برابر لینوکس و BSD برای سهم بازار سرور رقابت میکند. [28] [29]

ReactOS یک سیستم عامل جایگزین ویندوز است که بر اساس اصول ویندوز توسعه یافته است – بدون استفاده از کد مایکروسافت.

دیگر
بسیاری از سیستم عامل های موجود در آن روزها قابل توجه بودند اما دیگر چنین نیست، مانند AmigaOS؛ OS / 2 از IBM و مایکروسافت؛ Mac OS کلاسیک، پیشوندهای غیر یونیکس به macOS اپل؛ BeOS؛ XTS-300؛ OS RISC؛ MorphOS؛ هیکو؛ BareMetal و FreeMint. بعضی از آنها همچنان در بازارهای طاقت فرسا استفاده می شوند و همچنان به عنوان سیستم عامل های اقلیت برای جوامع مهاجر و برنامه های کاربردی خاص طراحی می شوند. OpenVMS، که قبلا از DEC بود، توسط Hewlett-Packard هنوز تحت توسعه فعال است. با این حال، سیستم عامل های دیگر تقریبا به طور انحصاری در دانشگاه ها، برای آموزش سیستم عامل و یا تحقیق در مورد مفاهیم سیستم عامل استفاده می شود. نمونه ای از یک سیستم که هر دو نقش را برآورده می کند MINIX است، در حالی که برای مثال Singularity صرفا برای تحقیق استفاده می شود.

سایر سیستم عامل ها موفق به کسب سهم قابل توجه سهم بازار شده اند، اما نوآوری هایی را که بر سیستم عامل اصلی تأثیر می گذارند، به ویژه در برنامه 9 Labs Bell نشان داده اند.

اجزاء
اجزای یک سیستم عامل برای ایجاد بخش های مختلف یک کامپیوتر با یکدیگر هماهنگ هستند. تمام نرم افزارهای کاربر باید از طریق سیستم عامل به منظور استفاده از هر یک از سخت افزار، آن را به عنوان ساده به عنوان یک ماوس یا صفحه کلید و یا پیچیده به عنوان یک جزء اینترنتی است.

هسته
مقاله اصلی: هسته (محاسبات)

یک هسته نرم افزار کاربردی را به سخت افزار کامپیوتر متصل می کند.
با استفاده از درایور های سیستم عامل و دستگاه، هسته اصلی ترین سطح کنترل را بر روی تمام دستگاه های سخت افزاری کامپیوتر فراهم می کند. این مدیریت دسترسی حافظه برای برنامه ها در RAM را مدیریت می کند، تعیین می کند که کدام برنامه ها دسترسی به منابع سخت افزاری را دریافت می کنند، حالت های عامل CPU را برای عملیات بهینه در تمام زمان ها تنظیم می کند و یا تنظیم مجدد می کند و داده ها را برای ذخیره سازی طولانی مدت ذخیره نمی کند با سیستم های فایل در رسانه های مانند دیسک، نوار، حافظه فلش، و غیره

اجرای برنامه
مقاله اصلی: پردازش (محاسبات)
سیستم عامل رابط کاربری بین برنامه کاربردی و سخت افزار کامپیوتر را فراهم می کند، به طوری که یک برنامه کاربردی می تواند با سخت افزار تنها با احراز قوانین و رویه های برنامه ریزی شده در سیستم عامل ارتباط برقرار کند. سیستم عامل همچنین مجموعه ای از خدمات است که ساده سازی و اجرای برنامه های کاربردی را ساده می کند. اجرای یک برنامه کاربردی شامل ایجاد یک فرآیند توسط هسته سیستم عامل است که فضای حافظه و سایر منابع را اختصاص می دهد، اولویت را برای فرایند در سیستم های چند tasking ایجاد می کند، برنامه های برنامه باینری برنامه را در حافظه بارگذاری می کند و اجرای برنامه برنامه را آغاز می کند سپس با کاربر و با دستگاه های سخت افزاری ارتباط برقرار می کند.

قطع می شود
مقاله اصلی: وقفه
وقفه ها برای سیستم عامل های اصلی متمرکز می باشند، زیرا آنها یک راه کار مؤثر برای سیستم عامل برای ارتباط برقرار کردن و واکنش به محیط آن هستند. جایگزینی – داشتن سیستم عامل “تماشا” منابع مختلف ورودی برای رویدادها (نظرسنجی) که نیاز به عمل دارند – می توان در سیستم های قدیمی با پشته های بسیار کوچک (50 یا 60 بایت) یافت، اما در سیستم های مدرن با پشته های بزرگ غیر معمول است. برنامه نویسی مبتنی بر وقفه مستقیما توسط اکثر پردازنده های مدرن پشتیبانی می شود. وقفه ها یک رایانه را با راه ذخیره خودکار زمینه های ثبت نام محلی و اجرای کد خاص در پاسخ به رویدادها فراهم می کند. حتی رایانه های بسیار پایه از وقفه های سخت افزاری پشتیبانی می کنند و اجازه می دهد برنامه نویسان کد مشخصی را که ممکن است هنگام وقوع این رویداد اجرا شوند مشخص کند.

هنگامی که یک وقفه دریافت می شود، سخت افزار کامپیوتر به طور خودکار هر برنامه ای را که در حال اجرا است، به حالت تعلیق درآورد، وضعیت آن را ذخیره می کند و رایانه های رایانه ای که قبلا با وقفه مرتبط است، اجرا می شود. این همانند قرار دادن یک نشانه در یک کتاب در پاسخ به یک تماس تلفنی است. در سیستم عامل های مدرن، وقفه ها توسط هسته سیستم عامل انجام می شود. وقفه ممکن است از سخت افزار کامپیوتر یا برنامه در حال اجرا باشد.

هنگامی که یک دستگاه سخت افزاری باعث وقفه می شود، هسته سیستم عامل تصمیم می گیرد چگونه با این رویداد مقابله کند، به طور کلی با اجرای برخی از کد پردازش. مقدار کد اجرا شده بستگی به اولویت وقفه دارد (مثلا: یک فرد معمولا قبل از پاسخ دادن به تلفن به یک هشدار دود میگوید). پردازش وقفه های سخت افزاری یک کار است که معمولا به نرم افزار به نام درایور دستگاه منتقل می شود که ممکن است بخشی از هسته سیستم عامل، بخشی از یک برنامه دیگر یا هر دو باشد. درایور دستگاه ممکن است پس از انتقال اطلاعات به یک برنامه در حال اجرا با روش های مختلف.

یک برنامه همچنین ممکن است باعث وقفه در سیستم عامل شود. برای مثال، اگر یک برنامه میخواهد به سختافزار دسترسی داشته باشد، ممکن است kernel سیستم عامل را قطع کند، که باعث می شود کنترل به هسته منتقل شود. سپس کرنل درخواست را پردازش می کند. اگر یک برنامه خواسته منابع اضافی (یا مایل به ریختن منابع) مانند حافظه باشد، باعث می شود که وقفه برای دریافت توجه کرنل انجام شود.

حالت ها
مقالات اصلی: حالت کاربر و حالت سرپرست

محدوده Privilege برای معماری ریز پردازنده x86 موجود در حالت محافظت شده. سیستم عامل تعیین می کند که فرآیند در هر حالت اجرا شود.
ریزپردازنده های مدرن (CPU یا MPU) از حالت های مختلف عملیات پشتیبانی می کنند. پردازنده های با این قابلیت حداقل دو حالت ارائه می دهند: حالت کاربر و حالت سرپرست. به طور کلی، عمل حالت سرپرست اجازه دسترسی نامحدود به تمام منابع دستگاه، از جمله تمام دستورالعمل MPU را می دهد. عملیات حالت کاربر مجموعه ای از محدودیت ها در استفاده از دستورالعمل ها را فراهم می کند و به طور معمول اجازه دسترسی مستقیم به منابع دستگاه را نمی دهد. پردازنده ها ممکن است حالت های دیگر شبیه به حالت کاربر نیز داشته باشند، مانند حالت های مجازی برای تقلید از انواع پردازنده های قدیمی، مانند پردازنده های 16 بیتی در یک 32 بیتی یا پردازنده های 32 بیتی در یک 64 بیتی.

در حالت روشن یا خاموش، سیستم از حالت سرپرست شروع می شود. هنگامی که یک هسته سیستم عامل بارگذاری و شروع می شود، مرز بین حالت کاربر و حالت سرپرست (همچنین به عنوان حالت هسته شناخته می شود) می تواند ایجاد شود.

حالت سرپرست توسط هسته برای وظایف سطح پایین مورد نیاز است که نیاز به دسترسی نامحدود به سخت افزار، مانند کنترل دسترسی به حافظه و ارتباط با دستگاه هایی مانند درایو های دیسک و دستگاه های نمایش ویدئو استفاده می شود. در مقابل، حالت کاربر برای تقریبا هر چیز دیگری مورد استفاده قرار می گیرد. برنامه های کاربردی، مانند پردازنده های کلمه و مدیران پایگاه داده، در حالت کاربر کار می کنند و می توانند با کنترل کردن بر روی هسته، تنها روند دسترسی به منابع دستگاه را به دست بیاورند، که موجب سوئیچ شدن به حالت سرپرست می شود. به طور معمول، انتقال کنترل به هسته با اجرای دستورالعمل وقفه نرم افزاری، مانند دستورالعمل موتور 68000 TRAP، به دست می آید. وقفه نرم افزاری باعث می شود که ریزپردازنده از حالت کاربر به حالت سرپرست سوئیچ کند و شروع به اجرای کد کند که اجازه می دهد که کرنل کنترل را بگیرد.

در حالت کاربر، برنامه ها معمولا به یک مجموعه محدود از دستورالعمل های ریزپردازنده دسترسی دارند و عموما نمی توانند دستورالعمل هایی را اجرا کنند که به طور بالقوه باعث اختلال در عملکرد سیستم شود. در حالت سرپرست، محدودیت اجرایی دستورالعمل به طور معمول حذف می شود، اجازه می دهد که کرنل دسترسی نامحدود به تمام منابع دستگاه داشته باشد.

اصطلاح “حالت حالت کاربر” به طور کلی به یک یا چند رکورد CPU اشاره دارد که حاوی اطلاعاتی است که برنامه در حال اجرا مجاز به تغییر آن نیست. تلاش برای تغییر این منابع به طور کلی موجب سوئیچ شدن به حالت سرپرستی می شود، جایی که سیستم عامل می تواند با عملیات غیرقانونی برنامه ای که تلاش می کند، به واسطۀ اجباری شدن (“قتل”) برنامه، مقابله کند.

مدیریت حافظه
مقاله اصلی: مدیریت حافظه
در میان چیزهای دیگر، یک هسته سیستم عامل چند برنامه ریزی باید مسئول مدیریت تمام حافظه سیستم است که در حال حاضر توسط برنامه استفاده می شود. این تضمین می کند که برنامه با حافظه ای که در حال استفاده در برنامه دیگری است، دخالت نمی کند. از آنجا که برنامه ها به اشتراک گذاری زمان، هر برنامه باید دسترسی مستقل به حافظه داشته باشد.

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

حفاظت از حافظه را قادر می سازد که هسته را محدود به یک فرآیند دسترسی به حافظه کامپیوتر. انواع مختلفی از حفاظت از حافظه وجود دارد، از جمله تقسیم بندی حافظه و صفحه بندی. تمام روش ها نیاز به برخی از سطح پشتیبانی سخت افزاری (مانند MMU 80286) دارند که در همه رایانه ها وجود ندارد.

در هر دو بخش بندی و پیگیری، برخی از ثبت های حالت حفاظت شده به پردازنده چه نوع آدرس حافظه آن را باید اجازه می دهد یک برنامه در حال اجرا به دسترسی. تلاش برای دسترسی به آدرس های دیگر موجب وقفه می شود که باعث می شود CPU دوباره وارد حالت سرپرست شود و کرنل را به اتهام قرار دهد. این یک نقض تقسیم بندی یا Seg-V برای مدت کوتاهی نامیده می شود و از آنجایی که هر دشوار است که یک نتیجه معنی دار را برای چنین عملیاتی اختصاص دهد و به این دلیل که معمولا یک نشانه از یک برنامه نادرست است، هسته به طور کلی از پایان دادن به برنامه مجرمانه ، و گزارش خطا.

نسخه های ویندوز 3.1 از طریق ME دارای برخی از سطح حفاظت از حافظه است، اما برنامه ها به راحتی می توانند از نیاز به استفاده از آن جلوگیری کنند. یک خطای حفاظت عمومی تولید می شود که نشان می دهد نقض تقسیم بندی رخ داده است؛ با این حال، سیستم اغلب سقوط به هر حال.

حافظه مجازی
مقاله اصلی: حافظه مجازی
اطلاعات بیشتر: گسل صفحه

بسیاری از سیستم عامل ها می توانند برنامه ها را به استفاده از حافظه پراکنده شده در اطراف هارد دیسک و حافظه رم تبدیل کنند، به شرط اینکه این یک حافظه مستقل از حافظه است.
استفاده از آدرس دهی حافظه مجازی (مانند صفحه بندی یا تقسیم بندی) به این معنی است که هسته می تواند هر حافظه ای که هر برنامه می تواند در هر زمان خاص استفاده کند را انتخاب می کند، اجازه می دهد سیستم عامل از مکان های حافظه مشابه برای کارهای مختلف استفاده کند.

اگر یک برنامه تلاش می کند تا به حافظه دسترسی پیدا کند که در محدوده فعلی آن حافظه قابل دسترس نیست، اما با این حال به آن اختصاص داده شده است، هسته به همان شیوه ای متوقف می شود که اگر برنامه از حافظه اختصاص یافته خود فراتر رود. (در بخش مدیریت حافظه مشاهده کنید.) در یونیکس این نوع وقفه به عنوان یک گسل صفحه نامیده می شود.

وقتی که هسته یک خطای صفحه را تشخیص می دهد، عموما محدوده حافظه مجازی برنامه را فعال می کند که آن را به وجود می آورد و اجازه دسترسی به حافظه درخواست شده را می دهد. این باعث می شود تا اختیارات هسته بر روی محل ذخیره سازی حافظه برنامه مشخص شود یا حتی این که آیا هنوز اختصاص یافته است یا خیر.

در سیستم عامل های مدرن، حافظه ای که کمتر استفاده می شود، می تواند به صورت موقت بر روی دیسک یا رسانه های دیگر ذخیره شود تا فضای موجود برای استفاده از برنامه های دیگر را در دسترس قرار دهد. این مبادله نامیده می شود، به عنوان یک منطقه از حافظه می تواند توسط چند برنامه استفاده می شود، و آنچه که حافظه حاوی آن می تواند مبادله و یا مبادله بر روی تقاضا.

“حافظه مجازی” برنامهنویس یا کاربر را با درک اینکه مقدار رایانه در رایانه بسیار بزرگتر از آن چیزی است که واقعا وجود دارد، فراهم می کند. [30]

چند وظیفه ای
مقالات اصلی: چند وظیفهی کامپیوتری و مدیریت فرایند (محاسبات)
اطلاعات بیشتر: سوئیچ زمینه، چند وظیفه پیشگیرانه و چند وظیفه تعاونی
Multitasking اشاره به اجرای چندین برنامه کامپیوتری مستقل در یک کامپیوتر است؛ ارائه ظاهر آن است که آن را انجام وظایف در همان زمان. از آنجایی که اکثر رایانه ها می توانند حداکثر یک یا دو مورد را در یک زمان انجام دهند، این به طور کلی از طریق به اشتراک گذاری زمان انجام می شود، به این معنی که هر برنامه از سهم زمان رایانه برای اجرای استفاده می کند.

کرنل عامل سیستم حاوی یک برنامه زمان بندی است که تعیین می کند که چه مقدار زمان برای هر فرایند اجرا می شود و کدام دستور اجرای کنترل باید به برنامه ها منتقل شود. کنترل توسط هسته به یک فرآیند منتقل می شود، که به برنامه امکان دسترسی به CPU و حافظه را میدهد. بعدها، کنترل از طریق برخی از مکانیزم به هسته بازگردانده می شود، بنابراین برنامه دیگری ممکن است مجاز به استفاده از CPU باشد. این انتقال به اصطلاح منتقل بین هسته و برنامه های کاربردی، یک کلید زمینه است.

یک مدل اولیه که به تخصیص زمان به برنامه ها تعلق داشت، تعامل چند وظیفه ای بود. در این مدل، زمانی که کنترل توسط یک هسته به یک برنامه منتقل می شود، تا زمانی که می خواهد قبل از اینکه به صراحت کنترل را به هسته بازگرداند، ممکن است اجرا شود. این بدان معنی است که یک برنامه مخرب یا ناکارآمد نمی تواند از برنامه های دیگر استفاده از CPU جلوگیری کند، اما اگر سیستم وارد یک حلقه بی نهایت شود کل سیستم را قطع می کند.

سیستم عامل های مدرن مفاهیم پیش فرض نرم افزار را به رانندگان دستگاه و کد هسته گسترش می دهند، به طوری که سیستم عامل دارای کنترل پیشگیرانه بر زمان های داخلی نیز می باشد.

فلسفه اداری چند وظیفه پیشگیرانه این است که اطمینان حاصل شود که تمام برنامه ها به طور منظم در پردازنده قرار می گیرند. این بدان معنی است که تمام برنامه ها باید در مدت زمانی که مجاز به مصرف CPU بدون وقفه باشند، محدود باشند. برای انجام این کار، کرنل سیستم عامل مدرن از وقفه زمانی استفاده می کند. تایمر حالت محافظت شده توسط هسته تنظیم شده است که باعث می شود حالت بازگشت به حالت سرپرست پس از زمان مشخص شده سپری شده باشد. (بخش های بالا در مورد وقفه ها و عملیات دوگانه را ببینید.)

در بسیاری از سیستم عاملهای تک کاربره چند وظیفهی تعاملی کاملا مناسب است، زیرا کامپیوترهای خانگی معمولا تعداد کمی از برنامههای آزمایش شده را اجرا میکنند. AmigaOS یک استثنا است که دارای چند وظیفه پیشگیرانه از اولین نسخه اولیه خود است. ویندوز NT اولین نسخه مایکروسافت ویندوز بود که اجرای چند وظیفه پیشگیرانه را اجرا کرد، اما تا زمانی که ویندوز XP (از آنجا که ویندوز NT به حرفه ای ها هدف قرار گرفت) به بازار کاربر خانه دسترسی نداشت.

دسترسی به دیسک و سیستم فایل
مقاله اصلی: سیستم فایل مجازی

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

سیستم عامل های اولیه عموما یک نوع دیسک درایو و تنها یک نوع سیستم فایل را پشتیبانی می کنند. سیستم فایل اولیه در ظرفیت، سرعت و انواع نام فایل ها و ساختارهای پوشه ای که می توانستند استفاده شوند محدود شد. این محدودیت ها اغلب محدودیت هایی را در سیستم عامل هایی که برای آنها طراحی شده اند را منعکس می کنند، و برای سیستم عامل برای پشتیبانی از بیش از یک فایل سیستم بسیار مشکل است.

در حالی که بسیاری از سیستم عامل های ساده تر از گزینه های محدودی برای دسترسی به سیستم های ذخیره سازی پشتیبانی می کنند، سیستم عامل های مانند یونیکس و لینوکس از فناوری معروف به سیستم فایل مجازی یا VFS پشتیبانی می کنند. یک سیستم عامل مانند یونیکس از مجموعه وسیعی از دستگاه های ذخیره سازی پشتیبانی می کند، صرف نظر از طراحی آنها یا سیستم های فایل، اجازه می دهد آنها را از طریق یک رابط برنامه نویسی برنامه کاربردی (API) دسترسی پیدا کنید. این امر باعث می شود که برنامه ها هیچ اطلاعاتی در مورد دستگاهی که به آنها دسترسی ندارند ضروری است. یک VFS به سیستم عامل اجازه می دهد تا برنامه هایی را با دسترسی به تعداد نامحدودی از دستگاه ها با انواع مختلفی از فایل های سیستم نصب شده بر روی آنها، از طریق استفاده از درایور های دستگاه خاص و راننده های فایل سیستم، ارائه دهد.

دستگاه ذخیره سازی متصل شده، مانند یک هارد دیسک، از طریق درایور دستگاه قابل دسترسی است. درایور دستگاه زبان خاصی از درایو را درک می کند و قادر به ترجمه آن زبان به یک زبان استاندارد است که توسط سیستم عامل برای دسترسی به همه درایوهای دیسک استفاده می شود. در یونیکس، این زبان دستگاه های بلوک است.

هنگامی که هسته دارای درایور دستگاه مناسب است، می تواند به محتویات درایو دیسک در فرمت خام دسترسی پیدا کند که ممکن است شامل یک یا چند فایل سیستم باشد. یک راننده سیستم فایل استفاده می شود برای ترجمه دستورات استفاده شده برای دسترسی به هر یک از سیستم های فایل خاص به یک مجموعه استاندارد از دستورات که سیستم عامل می تواند برای صحبت با تمام سیستم های فایل استفاده می شود. سپس برنامه ها می توانند با استفاده از این پرونده ها بر مبنای نام فایل ها و پوشه ها و پوشه ها موجود در یک ساختار سلسله مراتبی مقابله کنند. آنها می توانند فایل های خود را ایجاد، حذف، باز کردن و بستن، و همچنین جمع آوری اطلاعات مختلف در مورد آنها، از جمله مجوز دسترسی، اندازه، فضای آزاد، و تاریخ ایجاد و اصلاح.

تفاوت های مختلف بین سیستم های فایل باعث می شود همه سیستم های فایل را دچار مشکل سازند. کاراکترهای مجاز در نامهای فایل، حساسیت به موارد و وجود انواع مختلف صفات فایل، اجرای یک رابط واحد برای هر سیستم فایل یک کار دیوانه کننده است. سیستم های عامل تمایل به استفاده از (و پشتیبانی از بومی) فایل های سیستم به طور خاص برای آنها طراحی شده است. برای مثال NTFS در ویندوز و ext3 و ReiserFS در لینوکس. با این حال، در عمل، رانندگان شخص ثالث معمولا برای پشتیبانی بیشتر از سیستم های مورد استفاده در اکثر سیستم عامل های عمومی استفاده می شود (مثلا NTFS در لینوکس از طریق NTFS-3g در دسترس است و ext2 / 3 و ReiserFS در دسترس هستند در ویندوز از طریق نرم افزار شخص ثالث).

پشتیبانی از سیستم فایلها در میان سیستم عاملهای مدرن بسیار متفاوت است، هرچند چندین سیستم فایل معمول وجود دارد که تقریبا در همه سیستم عاملها شامل پشتیبانی و رانندگان است. سیستم های عامل متفاوت در پشتیبانی سیستم فایل و در فرمت دیسک آنها ممکن است نصب شده است. در ویندوز، هر سیستم فایل معمولا در برنامه خاصی برای رسانه ها محدود می شود؛ برای مثال، سی دی ها باید از ISO 9660 یا UDF استفاده کنند و از ویندوز ویستا، NTFS تنها سیستم فایل است که سیستم عامل را می توان نصب کرد. لینوکس را می توان بر روی انواع مختلف سیستم های فایل نصب کرد. بر خلاف سایر سیستم عامل ها، لینوکس و یونیکس اجازه می دهد هر سیستم فایل بدون در نظر گرفتن رسانه ای که در آن ذخیره می شود، چه در یک هارد دیسک، یک دیسک (CD، DVD …)، درایو فلش USB یا حتی در آن در یک فایل در سیستم فایل دیگری قرار دارد.

درایور دستگاه

یک درایور دستگاه یک نوع خاص از نرم افزار رایانه ای است که به منظور تعامل با دستگاه های سخت افزاری طراحی شده است. به طور معمول این یک رابط برای برقراری ارتباط با دستگاه است، از طریق زیرسیستم رایانه یا سیستم ارتباطی خاص که سختافزار به آن متصل است، دستورات داده و / یا دریافت داده از دستگاه را فراهم می کند، و از سوی دیگر، رابط های مورد نیاز به عامل سیستم و برنامه های کاربردی نرم افزار. این برنامه کامپیوتری متشکل از سخت افزار خاص است که همچنین سیستم عامل خاص است که برنامه دیگری را، به طور معمول یک سیستم عامل یا بسته نرم افزاری برنامه یا برنامه کامپیوتری تحت هسته سیستم عامل اجرا می کند، برای شفافیت با یک دستگاه سخت افزاری تعامل می کند، و معمولا فراهم می کند لازم است که نیاز به قطع وقفه لازم برای هر گونه وابستگی سخت افزاری وابسته به زمان سخت افزاری باشد.

هدف اصلی طراحی درایورهای دستگاه، انتزاع است. هر مدل سخت افزار (حتی در همان کلاس دستگاه) متفاوت است. مدل های جدیدتر نیز توسط تولید کنندگان ارائه می شوند که عملکرد قابل اطمینان تر و بهتر را ارائه می دهند و این مدل های جدیدتر اغلب به صورت های مختلف کنترل می شوند. نمی توان انتظار داشت که کامپیوترها و سیستم عامل هایشان بدانند چگونه هر دستگاه را کنترل کنند، هم اکنون و هم در آینده. برای حل این مشکل، سیستم عامل اساسا دیکته میکند که چگونه هر نوع دستگاه باید کنترل شود. عملکرد راننده دستگاه سپس این سیستم عامل های سیستم عامل را به تماس های خاص دستگاه ترجمه می کند. در تئوری یک دستگاه جدید، که به شیوه ای جدید کنترل می شود، باید به درستی عمل کند اگر راننده مناسب در دسترس باشد. این درایور جدید تضمین می کند که دستگاه به نظر می رسد به طور معمول از نقطه نظر سیستم عامل عمل می کند.

در نسخه های ویندوز قبل از ویستا و نسخه های لینوکس قبل از 2.6، اجرای تمام راننده همکاری بود، به این معنی که اگر یک راننده وارد یک حلقه بی نهایت شود، سیستم را متوقف می کند. تجدیدنظرهای اخیر این سیستم عامل شامل پیش شرط هسته ای است که در آن کرنل راننده را مجبور به انجام وظایف می کند و سپس خود را از فرآیند جدا می کند تا پاسخی از درایور دستگاه دریافت کند یا کارهای بیشتری را انجام دهد.

شبکه سازی

در حال حاضر اکثر سیستم عامل ها از انواع پروتکل های شبکه، سخت افزار و برنامه های کاربردی برای استفاده از آنها پشتیبانی می کنند. این بدان معنی است که رایانه های عامل سیستم عامل های متفاوتی می توانند در یک شبکه مشترک برای به اشتراک گذاشتن منابع مانند رایانه، فایل ها، چاپگرها و اسکنر ها با استفاده از اتصالات سیمی یا بی سیم شرکت کنند. شبکه ها اساسا اجازه می دهد یک سیستم عامل رایانه برای دسترسی به منابع یک کامپیوتر از راه دور برای پشتیبانی از توابع مشابه همانطور که می تواند اگر آن منابع به طور مستقیم به کامپیوتر محلی متصل شد. این شامل همه چیزهایی است که از ارتباط ساده، استفاده از سیستم فایل های شبکه و یا حتی گرافیک کامپیوتری یا سخت افزار صدا استفاده می کنند. برخی از خدمات شبکه اجازه می دهد تا منابع کامپیوتر به طور شفاف دسترسی پیدا کند، مانند SSH که به کاربران شبکه اجازه دسترسی مستقیم به رابط خط فرمان کامپیوتر را می دهد.

شبکه سرویس دهنده / سرور اجازه می دهد یک برنامه در یک کامپیوتر، به نام یک مشتری، برای اتصال از طریق یک شبکه به یک کامپیوتر دیگر، به نام یک سرور. سرورها (یا میزبان) خدمات مختلف را به دیگر رایانه های شبکه و کاربران ارائه می دهند. این خدمات معمولا از طریق پورت ها و یا نقاط دسترسی شماره به خارج از آدرس IP سرور ارائه می شود. هر شماره پورت معمولا با حداکثر یک برنامه اجرا می شود که مسئول رسیدگی به درخواست های آن پورت می باشد. یک daemon، که یک برنامه کاربر است، می تواند به وسیله ارسال درخواست به هسته سیستم عامل، به منابع سخت افزاری محلی آن رایانه دسترسی پیدا کند.

بسیاری از سیستم عاملها از یک یا چند پروتکل شبکه اختصاصی یا بازاریابی مخصوص به خود استفاده میکنند، مثلا SNA در سیستمهای IBM، DECnet در سیستمهای شرکت Digital Equipment، و پروتکلهای خاص مایکروسافت (SMB) در ویندوز. پروتکل های خاص برای وظایف خاص نیز ممکن است از قبیل NFS برای دسترسی به فایل پشتیبانی شود. پروتکل هایی مانند ESound یا ESD می توانند به آسانی بر روی شبکه برای ارائه صدا از برنامه های محلی، بر روی یک سخت افزار صوتی سیستم از راه دور استفاده شود.

امنیت
مقاله اصلی: امنیت رایانه
یک کامپیوتر امن است که به تعدادی از فن آوری ها به درستی کار می کند. سیستم عامل مدرن دسترسی به تعدادی از منابع را فراهم می کند که برای نرم افزار در حال اجرا بر روی سیستم و به دستگاه های خارجی مانند شبکه ها از طریق هسته دسترسی دارند.

سیستم عامل باید قادر باشد تمایز بین درخواست هایی را که مجاز به پردازش هستند و دیگران که نباید پردازش شوند. در حالی که برخی از سیستم ها ممکن است به سادگی بین “امتیاز” و “غیر ممتاز” تمایز قائل باشند، سیستم معمولا یک فرم هویت درخواست کننده مانند نام کاربری دارد. برای ایجاد هویت ممکن است یک فرآیند احراز هویت باشد. اغلب یک نام کاربری باید نقل قول شود و هر نام کاربری ممکن است یک رمز عبور داشته باشد. دیگر روش های احراز هویت، مانند کارت های مغناطیسی یا داده های بیومتریک، ممکن است به جای آن استفاده شود. در برخی موارد، به خصوص ارتباطات از شبکه، منابع بدون دسترسی به احراز هویت (مانند خواندن فایل ها در یک اشتراک شبکه) امکان پذیر است. همچنین تحت پوشش مفهوم هویت درخواست کننده مجوز است؛ خدمات خاص و منابع قابل دسترسی توسط درخواست کننده هنگامی که وارد سیستم می شوند، به حساب کاربری کاربر درخواست کننده یا گروه های مختلفی از کاربران که به درخواست کننده تعلق دارند، وابسته است.

علاوه بر اجازه دادن یا رد مدل امنیت، سیستم با سطح بالایی از امنیت همچنین گزینه های ممیزی را ارائه می دهد. این اجازه می دهد که ردیابی درخواست ها برای دسترسی به منابع (مانند “کسی که این فایل را خوانده است”) را بررسی کند. امنیت داخلی و یا امنیت از یک برنامه در حال اجرا تنها ممکن است در صورتی که تمام درخواست های احتمالی مضر را باید از طریق وقفه ها به هسته سیستم عامل انجام شود. اگر برنامه ها به طور مستقیم به سخت افزار و منابع دسترسی پیدا کنند، نمی توان آنها را امن کرد.

امنیت خارجی شامل یک درخواست از خارج از کامپیوتر است، مانند ورود به یک کنسول متصل یا نوعی اتصال شبکه. درخواست های خارجی اغلب از طریق درایور های دستگاه به هسته سیستم عامل منتقل می شود، جایی که آنها می توانند به برنامه ها منتقل شوند یا به طور مستقیم انجام می شوند. امنیت سیستم عامل مدتهاست که به دلیل اطلاعات بسیار حساس در رایانه ها، هر دو از ماهیت تجاری و نظامی، نگرانی دارد. وزارت دفاع ایالات متحده (وزارت دفاع امریکا) معیارهای ارزیابی سیستم اعتبارسنجی (TCSEC) را ایجاد کرد که استانداردی است که نیازهای اساسی برای ارزیابی اثربخشی امنیت را تعیین می کند. این به اهمیت حیاتی برای سازندگان سیستم عامل تبدیل شد زیرا TCSEC برای ارزیابی، طبقه بندی و انتخاب سیستم های مورد اعتماد مورد استفاده برای پردازش، ذخیره سازی و بازیابی اطلاعات حساس یا طبقه بندی مورد استفاده قرار گرفت.

خدمات شبکه شامل ارائه هایی مانند به اشتراک گذاری فایل، خدمات چاپ، ایمیل، وب سایت ها و پروتکل های انتقال فایل (FTP) می باشد، که بیشتر آنها می توانند امنیت را به خطر بیندازند. در خط مقدم امنیت، دستگاه های سخت افزاری شناخته شده به عنوان فایروال ها یا سیستم های تشخیص نفوذ / پیشگیری هستند. در سطح سیستم عامل، تعدادی از فایروال های نرم افزاری موجود و همچنین سیستم های تشخیص نفوذ / پیشگیری وجود دارد. اکثر سیستم عامل های مدرن شامل فایروال نرم افزاری هستند که به طور پیش فرض فعال هستند. یک فایروال نرم افزاری را می توان پیکربندی کرد تا اجازه یا رد ترافیک شبکه را از سرویس یا برنامه ای که در سیستم عامل اجرا می شود یا از آن استفاده کند. بنابراین، می توان یک سرویس ناامن مانند Telnet یا FTP را نصب و اجرا کرد و نباید از طریق نقض امنیتی تهدید شود زیرا فایروال تمام ترافیک را که سعی در اتصال به سرویس در آن پورت دارد، انکار می کند.

یک استراتژی جایگزین و تنها استراتژی sandbox موجود در سیستم هایی که نیازهای مجازی سازی پوپک و گلدبرگ را برآورده نمی کند، جایی است که سیستم عامل برنامه های کاربر را به عنوان کد بومی اجرا نمی کند، بلکه به جای آن شبیه سازی یک پردازنده یا میزبان برای یک p کد مبتنی بر سیستم مانند جاوا.

امنیت داخلی به ویژه برای سیستم های چند کاربره اهمیت دارد؛ این اجازه می دهد تا هر کاربر سیستم دارای فایل های خصوصی که دیگر کاربران نمی توانند از آن استفاده کنند یا بخوانند. امنیت داخلی نیز حائز اهمیت است که حسابرسی از هر گونه استفاده باشد، زیرا برنامه می تواند به طور بالقوه سیستم عامل را دور بزند، از جمله دور زدن حسابرسی.

رابط کاربری
مقاله اصلی: رابط کاربری سیستم عامل

یک تصویر از خط فرمان Bash. هر فرمان پس از ‘prompt’ تایپ می شود، و پس از آن خروجی آن به نظر می رسد در زیر، کار راه خود را در پایین صفحه نمایش. خط فرمان فعلی در پایین است.
هر رایانه ای که توسط یک فرد اداره می شود نیاز به یک رابط کاربری دارد. رابط کاربری معمولا به عنوان یک پوسته نامیده می شود و اگر تعامل انسان پشتیبانی شود، ضروری است. رابط کاربر ساختار دایرکتوری را مشاهده می کند و خدمات را از سیستم عامل درخواست می کند که داده ها را از دستگاه های سخت افزاری ورودی مانند یک صفحه کلید، موس یا کارت خوان اعتباری، و درخواست سرویس های سیستم عامل برای نمایش دستورات، پیام های وضعیت و غیره بر روی سخت افزار خروجی دستگاه های مانند محیط

 

اکثر سیستم های کامپیوتری مدرن از رابط کاربری گرافیکی (GUI) پشتیبانی می کنند و اغلب آنها را شامل می شود. در برخی از سیستم های کامپیوتری، مانند اجرای اصلی سیستم عامل کلاسیک، رابط کاربری GUI در هسته یکپارچه شده است.

در حالی که از لحاظ فنی یک رابط کاربری گرافیکی یک سرویس سیستم عامل نیست، پشتیبانی از یکی از آن در هسته سیستم عامل می تواند اجازه دهد که رابط کاربری گرافیکی با کاهش تعداد تغییرات زمینه مورد نیاز برای رابط گرافیکی برای انجام عملیات خروجی خود پاسخگو باشد. دیگر سیستم عامل ها مدولار هستند، بخش زیر سیستم گرافیکی را از هسته و سیستم عامل جدا می کنند. در دهه 1980 UNIX، VMS و بسیاری دیگر سیستم عامل داشتند که به این ترتیب ساخته شد. لینوکس و macOS هم همینطور ساخته شده اند. نسخه های مدرن مایکروسافت ویندوز مانند ویندوز ویستا یک زیرسیستم گرافیکی را اجرا می کند که عمدتا در فضای کاربری است. با این حال، روش های رسم گرافیکی نسخه های بین ویندوز NT 4.0 و ویندوز سرور 2003 عمدتا در فضای هسته ای وجود دارد. ویندوز 9x تمایزی بسیار کمی بین رابط کاربری و هسته داشت.

بسیاری از سیستم عامل های کامپیوتری به کاربر اجازه نصب یا ایجاد هر رابط کاربری را می دهند. سیستم پنجره X در ارتباط با GNOME یا KDE پلاسما 5، معمولا در سیستم های Unix و Unix مانند (BSD، Linux، Solaris) یافت می شود. تعدادی از جایگزین های پوسته ویندوز برای مایکروسافت ویندوز منتشر شده است که جایگزین هایی برای پوسته Windows می باشند اما پوسته خود را از ویندوز جدا نمی کند.

GUI های متعددی مبتنی بر یونیکس در طول زمان وجود داشته، بیشتر از X11 مشتق شده اند. مسابقه بین فروشندگان مختلف یونیکس (HP، IBM، Sun) منجر به تکه تکه شدن شد، هرچند تلاش برای استاندارد سازی در دهه 1990 به COSE و CDE به دلایل مختلف شکست خورد و در نهایت توسط پذیرش گسترده GNOME و K Desktop Environment گرفتار شد . قبل از ابزارهای مبتنی بر نرمافزار آزاد و محیطهای رومیزی، Motif ترکیبی از ابزار / دسکتاپ شایع بود (و پایه و اساس آن CDE بود).

رابط کاربر گرافیکی در طول زمان تکامل پیدا می کند. به عنوان مثال، ویندوز رابط کاربری خود را تقریبا هر بار که نسخه اصلی جدید ویندوز منتشر می شود تغییر داده است و سیستم عامل Mac OS به طور چشمگیری با معرفی Mac OS X در سال 1999 تغییر کرد. [31]

سیستم عامل های زمان واقعی
مقاله اصلی: سیستم عامل در زمان واقعی
یک سیستم عامل در زمان واقعی (RTOS) یک سیستم عامل برای برنامه های کاربردی با مهلت ثابت (محاسبات زمان واقعی) است. چنین برنامه هایی شامل برخی از سیستم های کوچک جاسازی شده، کنترل کننده موتور موتور، روبات های صنعتی، فضاپیمای، کنترل صنعتی و برخی از سیستم های محاسباتی در مقیاس بزرگ می باشند.

یک نمونه اولیه از یک سیستم عامل در زمان واقعی در مقیاس بزرگ، تاسیسات معامله پردازشی بود که توسط American Airlines و IBM برای سیستم رزرو هواپیمایی Sabre توسعه یافته بود.

سیستم های جاسازی شده که دارای مهلت ثابت هستند از یک سیستم عامل در زمان واقعی مانند VxWorks، PikeOS، eCos، QNX، MontaVista Linux و RTLinux استفاده می کنند. ویندوز CE یک سیستم عامل در زمان واقعی است که API های مشابه را به دسکتاپ ویندوز به اشتراک می گذارد، اما هیچ کدام از کد های دسک تاپ ویندوز را به اشتراک نمی گذارد. [نیازمند ارجاع] Symbian OS همچنین دارای یک هسته RTOS (EKA2) با نسخه 8.0b است.

برخی از سیستم های جاسازی شده از سیستم عامل هایی مانند Palm OS، BSD و لینوکس استفاده می کنند، هرچند این سیستم عامل ها از محاسبات زمان واقعی پشتیبانی نمی کند.

توسعه سیستم عامل به عنوان یک سرگرمی
همچنین ببینید: توسعه سیستم عامل hobbyist
توسعه سیستم عامل یکی از پیچیده ترین فعالیت هایی است که در آن یک سرگرمی محاسباتی ممکن است مشغول باشد. [نیازمند منبع] سیستم عامل سرگرمی ممکن است به عنوان یک کد که مستقیما از یک سیستم عامل موجود مشتق شده است، طبقه بندی نشده باشد و کاربر و کاربر فعال داشته باشد توسعه دهندگان. [32]

در برخی موارد، توسعه سرگرمی در حمایت از یک دستگاه محاسباتی “homebrew” است، به عنوان مثال، یک کامپیوتر ساده تنها با یک ریزپردازنده 6502 طراحی شده است. یا، توسعه ممکن است برای یک معماری در حال حاضر در استفاده گسترده است. توسعه سیستم عامل ممکن است از مفاهیم کاملا جدیدی باشد یا ممکن است با مدل سازی سیستم عامل موجود آغاز شود. در هر صورت، علاقه مندان به توسعه دهنده خود و یا ممکن است با یک گروه کوچک و گاهی نا structured از افراد که منافع مشابه دارند ارتباط برقرار کنند.

نمونه هایی از یک سیستم عامل سرگرمی عبارتند از Syllable.

تنوع سیستم عامل و قابلیت حمل
نرم افزار کاربردی به طور کلی برای استفاده در یک سیستم عامل خاص و گاهی اوقات حتی برای سخت افزار خاص نوشته شده است. [نیازمندی های ارجاعی] هنگام بارگذاری برنامه برای اجرای در یک سیستم عامل دیگر، قابلیت های مورد نیاز آن برنامه ممکن است توسط آن سیستم عامل متفاوت (نام از توابع، معنای استدلال، و غیره) که نیاز به نرم افزار را تطبیق داده، تغییر داده یا در غیر این صورت حفظ شود.

یونیکس اولین سیستم عامل بود که در زبان اسمبلی نوشته نشده بود، و آن را بسیار قابل حمل به سیستم های متفاوت از PDP-11 بومی آن بود. [33]

این هزینه در حمایت از تنوع سیستم عامل ها می تواند به جای نوشتن برنامه ها بر علیه سیستم عامل های نرم افزاری مانند Java یا Qt اجتناب شود. این انتزاعات قبلا هزینه سازگاری با سیستم عامل های خاص و کتابخانه های سیستم خود را پرداخت کرده اند.

رویکرد دیگری برای فروشندگان سیستم عامل برای پذیرش استانداردها است. به عنوان مثال، لایه های انتزاعی POSIX و OS، مشترکات را فراهم می کنند که هزینه های حمل و نقل را کاهش می دهد.