Операционната система (ОС) е основна част от компютърния системен софтуер, която управлява и координира ресурсите на хардуера и софтуера и обслужва изпълняваните компютърни програми. Приложният софтуер обикновено има нужда от операционна система, за да работи.
ОС разпределя задачите по време, планира ефикасното използване на ресурсите на системата и може да включва специализиран софтуер за изчисление на ресурси: стойност на процесорното време, използвана памет, ресурси за печат и други. При входно-изходните операции и динамично разпределение на паметта ОС действа като посредник между приложния софтуер и хардуера, макар че приложните команди обикновено се изпълняват директно, чрез системни повиквания към функции на ОС. ОС се среща на повечето устройства с компютри – от мобилни телефони през игрални конзоли до уеб сървъри и суперкомпютри.
Примери за популярни съвременни ОС са: AIX, Android, BlackBerry, BSD, Chrome OS, iOS, GNU/Linux, macOS, QNX, Microsoft Windows, SteamOS, Windows Phone и z/OS. Първите девет имат общ произход, свързан с UNIX. Други популярни ОС в реално време са FreeRTOS, Micrium и VxWorks.
Видове операционни системи Видовете ОС са свързани с развитието на понятия като пакетен режим, разделение по време и многозадачност, разделение по пълномощия, реален временен мащаб, работа с файлови системи.
Исторически необходимостта от оптимално използване на скъпите изчислителни ресурси води до появата на концепцията „пакетен режим“ на изпълнение на програмите, който предполага наличието на определен ред, при което ОС може да зарежда програмата в оперативната памет от външни носители на данни, без да изчаква завършването на изпълнението на предходната програма и така се избягва излишен престой на процесора. В развития вариант на пакетния режим времето на процесора се разпределя между изпълнението на няколко програми (понятието за „многозадачност“ или „мултипрограмиране“). Исторически понятието многозадачност възниква през 60-те години, когато входно-изходните устройства са отначало телетипи, а по-късно терминали. Тъй като скоростта на въвеждането на данни от оператор е много по-ниска от скоростта на обработка на същите данни от процесора, използването на компютъра от само един оператор води до прахосване на скъпи изчислителни ресурси. „Разделението по време“ (time sharing) позволява създаването на многопотребителски системи, в които централният процесор и блокът на оперативната памет обслужват много потребители. При това част от задачите (като въвеждане или редактиране на данни) могат да се изпълняват в диалогов режим чрез терминали, а други (като обемните изчисления) – в пакетен режим.
След появата на персоналните компютри и работните станции разделението по време на практика е заменено с многозадачност.
Едно- и многозадачни Еднозадачната ОС изпълнява само една задача в даден момент, докато многозадачната изпълнява няколко задачи едновременно. Това се постига чрез разделение на времето на работа на процесора според инструкциите на специална подсистема (task scheduling subsystem). Тук отново има варианти: а) при разпределена многозадачност (pre-emptive multitasking) ОС отпуска на задачата определено време да ползва процесора. Ако тя не успее да приключи за това време, ОС я форсира да отстъпи процесора на следващата задача, която се нуждае от него. Такива ОС са Unix-базираните като Solaris, Linux, 32-битовите версии на Windows NT и Win9x, както и AmigaOS. б) При кооперативната многозадачност приложението, стартирано от ОС, използва 100% от процесора. В този случай, ако друга програма изиска процесорно време, то или няма да ѝ бъде предоставено, което ще доведе до нарушаване на функциите на това приложение и/или до терминирането му, или ще бъде предоставено след приключване на първото – такива са 16-битовите версии на Microsoft Windows.
Първата ОС с реализирана многозадачност е UNIX. Други такива ОС са GNU/LINUX, Windows NT и по-късно Mac OS, OS/2. Това са и реално първите 32-битови ОС. Разпределената многозадачност е най-използваният тип в практиката. Всички съвременни ОС я поддържат, като спазват приоритети при използването на системните ресурси. По този начин програми с по-висок приоритет могат по-често да използват процесорно време от програми с по-нисък такъв.
Едно- и многопотребителски Еднопотребителските ОС не различават потребителите, но не са непременно еднозадачни, тъй като няколко програми могат да се изпълняват в съчетание.Lorch, Jacob R., and Alan Jay Smith. „Reducing processor power consumption by improving processor time management in a single-user operating system.“ Proceedings of the 2nd annual international conference on Mobile computing and networking. ACM, 1996. Например MS DOS е еднопотребителска еднозадачна ОС.
Многопотребителските ОС разширяват концепцията за многозадачност, като различават потребителите по отношение ползването на процеси и ресурси, като например дисково пространство. Те планират ефикасното използване на ресурсите на системата и могат да съдържат специализиран софтуер за изчисление на процесорното време от много потребители, както и да отчитат използваната памет, ползване на принтер и други използвани ресурси.
Разпределени Разпределената ОС управлява група компютри така, че те изглеждат като един компютър. Развитието на компютърните мрежи, при които отделните машини са свързани и комуникират една с друга прави възможни разпределените изчислителни системи (distributed computing).Mishra, Balmukund, Ninni Singh, and Ravideep Singh. „Master-slave group based model for co-ordinator selection, an improvement of bully algorithm.“ Parallel, Distributed and Grid Computing (PDGC), 2014 International Conference on. IEEE, 2014.
Вградени Вградените ОС са предназначени за вградени компютърни системи. Те са проектирани за работа на малки машини като PDA, които притежават малка автономност и малко ресурси и затова са много компактни и ефикасни по самия си замисъл. Примери за такива ОС са Windows CE и Minix 3.
ОС в реално време Прилагането на компютри за управление на производствени процеси изисква работа в реално време, т.е. синхронизация на изпълнението на софтуера с външни физически процеси. Включването на функции за реално време в ОС позволява да се създават системи, едновременно обслужващи производствените процеси и решаващи други задачи (в пакетен режим и/или в режим на разделение по време). Популярни ОС в реално време (real-time operating systems) са FreeRTOS, Micrium и VxWorks
Специализирани и потребителски В днешно време съществуват много разновидности на тясно специализирани ОС. Такива например са мрежовите ОС като Unix, Solaris, NetWare и др. Операционните системи за суперкомпютрите, които обикновено са собствени разработки или са преработени съществуващи ОС, като Solaris, HP-UX, както и ОС за разпределени и облачни изчисления са също силно специализирани. За разлика от тях Windows, macOS, OpenSolaris, GNU/Linux, BSD (NetBSD, OpenBSD, FreeBSD, PC-BSD, PicoBSD) са предназначени да изпълняват много по-широк кръг от задачи. Те се наричат потребителски операционни системи.
История Предшествениците на първите компютри са създадени да изпълняват единични задачи, например калкулаторът, и нямат ОС. С напредъка на технологиите през 50-те години се създават първите компютри, които са еднозадачни и еднопотребителски, като всеки потребител ги ползва в отреденото му време и зарежда програмата си. Входно-изходните устройства са с перфокарти или перфолента, а дебъгването става посредством челен панел с лампички и превключватели. Постепенно започват да се създават служебни програми за зареждане и мониторинг (напр. resident monitor), така че изпълнението на програмите да стартира автоматично, за да се ускори обработката. Първите концепции за ОС са изведени от Алън Тюринг според принципите на универсалната машина на Тюринг по време на работата му с компютъра Mark 1 в Манчестър. Мнозина считат усъвършенствания през 1962 г. модул Atlas Supervisor на манчестърския компютър Atlas за първата съвременна ОС.
ОС в съвременния им вид се появяват в началото на 1960-те, когато се появяват компютрите със запаметена програма и се въвеждат машинните езици. Добавят се функции за контрол на хардуера, софтуерни библиотеки, прекъсвания и паралелна обработка на информацията. Библиотеките позволяват да се избегне многократното програмиране на едни и същи действия (операции по вход-изход, изчисление на математически функции и т.н.) През 1950-те и 1960-те водеща роля в разработката на ОС играе компанията IBM, лидер на пазара на мейнфрейм компютри. През този период се сформират и реализират основните идеи за необходимите функционалности на ОС като: пакетна обработка (batch processing), входно-изходни прекъсвания, буфериране на данните, многозадачност, spooling, runtime library, свързващ редактор (link-loading) и сортиране на данните, макар че реализацията им не е задължителна част от ОС. При появата на персоналните компютри през 1980-те техните ОС наподобяват концепциите на използваните в големите машини.
Мейнфрейм компютри През 60-те години IBM разработва OS/360 – единна операционна система за цяла серия от различни машини, което обуславя големия им пазарен успех. Днешните ОС в мейнфрейм компютрите на IBM са далечни потомци на тази оригинална система, но приложният софтуер, писан за OS/360, все още е използваем. Тази ОС въвежда и концепцията за контрол на всички системни ресурси, включително разпределението на основната и допълнителната памет, като при терминиране на някой процес независимо по каква причина контролът върху ресурсите се връща на ОС.
CP-67 е алтернативна ОС на IBM, която въвежда концепцията за виртуална машина и също поставя началото на цяла поредица от нови машини. Други операционни системи за серията машини IBM S/360 са: COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System) и ACP (Airline Control Program).
General Electric и MIT разработват General Electric Comprehensive Operating Supervisor (GECOS), в който е въплътена концепцията за приоритетни нива във формата на пръстен. След придобиването ѝ от Honeywell тази ОС е преименувана на General Comprehensive Operating System (GCOS).
Digital Equipment Corporation разработва множество ОС за своите компютри, например TOPS-10 и TOPS-20 системи с разделение по време за 36-битовите системи PDP-10. TOPS-10 е особено популярна сред университетските среди, в частност в ранните години на ARPANET.
Съществуват и други ОС, свързани с различни компании: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing) и ORVYL (Stanford Timesharing System).
С появата на различни производители хардуерът и софтуерът еволюират, така че едни и същи програми да могат да работят на различни машини. Значителните инвестиции в разработката на ОС карат производителите да продължават да ги развиват, така че някои ОС за мейнфрейм компютри се поддържат и до днес: Burroughs MCP – B5000 от 1961 до Unisys Clearpath/MCP днес IBM OS/360 – IBM System/360, от 1966 до IBM z/OS днес IBM CP-67 – IBM System/360, от 1967 до IBM z/VM UNIVAC EXEC 8 – UNIVAC 1108, от 1967 до OS 2200 на Unisys Clearpath Dorado
Микрокомпютри
Първите микрокомпютри нямат нужда от сложните ОС, разработени за мейнфрейм и миникомпютрите; разработени са минималистични ОС, често зареждани от ROM и известни като resident monitor. Една от ранните дискови операционни системи е CP/M, поддържана от много от първите микрокомпютри и значително имитирана в MS-DOS на Microsoft, станала много популярна след като е избрана за операционна система на IBM PC (тази версия се нарича IBM DOS или PC DOS). През 1980-те Apple Computer Inc. (днес Apple Inc.) прекратява своята популярна серия микрокомпютри Apple II и пуска на пазара Apple Macintosh с новаторска ОС с графичен потребителски интерфейс – Mac OS.