Дайте визначення операційної системи. Класифікація І основні властивості операційних систем

Вид материалаДокументы

Содержание


Операційна система
Функції операційної системи
Функціональні компоненти ОС
Керування процесами й потоками
Керування пам'яттю
Керування введенням-виведенням
Керування файлами та файлові системи
Мережна підтримка
Безпека даних
Архітектура операційних систем
Механізми і політика
Ядро системи. Привілейований режим і режим користувача
Системне програмне забезпечення
Реалізація архітектури операційних систем
Монолітні системи
Багаторівневі системи
Засоби абстрагування від устаткування, які взаємодіють із апаратним забезпеченням безпосередньо, звільняючи від реалізації такої
Засоби керування ресурсами
Системи з мікроядром
Рисунок 1 - Виконання системного виклику в архітектурі з мікроядром
...
Полное содержание
Подобный материал:
Виконав:

Андріюк Микола


Дайте визначення операційної системи. Класифікація і основні властивості операційних систем. Функціональні компоненти операційних систем, архітектура операційних систем.

Вступ

Перші комп'ютери взагалі не мали ОС. На початку 1960-х вони лише комплектувались набором інструментів для розробки, планування та виконання завдань. Серед інших можна виділити системи від UNIVAC та Control Data Corporation. До кінця 1960-х, проте, було розроблено цілий ряд операційних систем, в котрих були реалізовані всі або більшість з вищеперелічених функцій. До них можна віднести «Atlas» (Манчестерський університет), «CTTS» и «ITSS» (Массачусетський технологічний інститут (МТІ)), «THE» (Ейндховенський технологічний університет), «RS4000» (Університет Орхуса) та інші (на той момент їх налічувалось близько сотні) Найбільш розвинуті ОС того часу, такі як «OS/360» (компанія «IBM»), «SCOPE» (компанія «CDC») та завершений вже в 1970-х роках «MULTICS» (МТІ та компанія «Bell Labs»), передбачали можливість використання багатопроцесорних системи.

Спонтанний характер розробки ОС призвів до наростання кризових явищ, пов'язаних, перш за все, зі складністю та великими розмірами розроблюваних систем. ОС погано масштабувались (простіші не використовували всіх можливостей потужних обчислювальних машин; складніші неоптимально виконувались або взагалі не виконувались на менш потужних системах) і були повністю несумісними між собою.

У 1969 році співробітники МТІ Кен Томпсон, Деніс Рітчі та Брайан Керніган з колегами розробили та реалізували ОС «Юнікс» («Unix»; первинно «UNICS», на противагу «MULTICS»), котра увібрала в себе багато рис попередниць, але на противагу їм мала цілий ряд переваг:
  • проста метафорика (два ключових поняття — процес та файл);
  • компонентна архітектура (принцип «одна програма — одна функція», або інакше «кожна програма має робити лише одну роботу, але робити її добре» плюс потужні засоби об'єднання цих програм для вирішення конкретних задач);
  • мінімізація ядра та кількості системних викликів;
  • незалежність від апаратної архітектури і реалізація на машинно незалежній мові програмування (для цього була розроблена мова програмування «C»;
  • уніфікація файлів (будь-що у системі є файлом, до котрого можна доступитись по спільних для всіх правилах).

Завдяки зручності перш за все в якості інструментального середовища «Юнікс» дуже тепло зустріли в університетах, а потім і в галузі в цілому і незабаром вона стала прототипом єдиної ОС, котру можна було використовувати у найрізноманітніших обчислювальних системах, і — більше того — швидко та з мінімумом зусиль перенести на іншу апаратну архітектуру.

В кінці 1970-х років співробітники Каліфорнійського університету в Берклі внесли ряд суттєвих вдосконалень у джерельні коди Юнікс, включно з реалізацією стеку мережевих протоколів TCP/IP. Їх розробка стала відомою під іменем BSD (англ. Berkeley Software Distribution).

Через конфлікт з «Bell Labs» Річард Столмен поставив задачу реалізувати повністю незалежну від авторських прав ОС на основі Юнікс, заснувавши проект «GNU» (англ. рекурсивсне скорочення «GNU's Not Unix» — «ГНЮ Не Юнікс»).

Незабаром «Юнікс» стала стандартом де-факто, а потім і юридичним — ISO/IEC 9945. ОС, що дотримувались цього стандарту чи опираються на нього, називають «відкритими» або «стандартними». До них відносяться системи, що базуються на останній версії «Юнікс», випущеної «Bell Labs» («System V»), на розробках

Університету Берклі («FreeBSD», «OpenBSD», «NetBSD»), а також ОС «Linux», розроблена спільнотою на чолі з Лінусом Торвальдсом та в межах проекту «GNU» (основні системні інструменти).

Операційна система — це базовий комплекс програмного забезпечення, що виконує управління апаратним забезпеченням комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організує взаємодію з користувачем. Операційна система звичайно складається з ядра операційної системи та базового набору прикладного программного забезпечення.


Функції операційної системи

Головні функції:
  • Виконання на вимогу программ користувача тих елементарних (низькорівневих) дій, які є спільними для більшості программного забезпечення і часто зустрічаються майже у всіх програмах (ввід і вивід даних, запуск і зупинка інших програм, виділення та вивільнення додаткової пам'яті тощо).
  • Стандартизований доступ до периферійних пристроїв (пристрої введення-виведення).
  • Завантаження програм у оперативну пам'ять і їх виконання.
  • Керування оперативною пам'яттю (розподіл між процесами, організація віртуальної пам'яті).
  • Керування доступом до даних енергозалежних носіїв (твердий диск, оптичні диски тощо), організованим у тій чи іншій файловій системі.
  • Забезпечення користувацького інтерфейсу.
  • Мережеві операції, підтримка стеку мережевих протоколів.

Додаткові функції:
  • Паралельне або псевдопаралельні виконання задач (багатозадачність).
  • Розподіл ресурсів обчислювальної системи між процесами.
  • Організація надійних обчислень (неможливість впливу процесу на перебіг інших), основана на розмежуванні доступу до ресурсів.
  • Взаємодія між процесами: обмін даними, синхронізація.
  • Захист самої системи, а також користувацьких даних і програм від дій користувача або програм.
  • Багатокористувацький режим роботи та розділення прав доступу (автентифікація, авторизація).

Базові відомості

Поняття операційної системи напряму пов'язане з такими поняттями, як:
  • Програма - файл, що містить набір інструкцій для виконання. В якості виконавця інструкцій програми можуть виступати:
  • центральний процесор - якщо програма містить машинний код (звичайно отримують шляхом компіляції вихідного текста програми, написаного однією з компільованих мов);
  • інтерпретатор - інша програма, яка забезпечує розпізнавання і виконання інструкцій (в окремих випадках інтерпретатор також називають віртуальною машиною).
  • Задача - програма в процесі виконання (в термінології операційних систем UNIX використовують термін "процес").
  • Команда - ім'я, яке використовує користувач ОС або інша програма для виконання вказаної програми (може збігатися з іменем файла з програмою) або поіменованої дії (вбудованої команди).
  • Командний інтерпретатор - середовище, яке забезпечує інтерфейс з користувачем і виконання команд.

Відносно свого призначення, операційні системи бувають:
  • універсальні (для загального використання);
  • спеціальні (для розв'язання спеціальних задач);
  • спеціалізовані (виконуються на спеціальному обладнанні);
  • однозадачні (в окремий момент часу можуть виконувати лише одну задачу);
  • багатозадачні (в окремий момент часу здатні виконувати більше однієї задачі);
  • однокористувацькі (в системі відсутні механізми обмеження доступу до файлів та на використання ресурсів системи);
  • багатокористувацькі (система впроваджує поняття "власник файлу" та забезпечує механізми обмеження на використання ресурсів системи (квоти)), всі багатокористувацькі операційні системи також є багатозадачними;
  • реального часу (система підтримує механізми виконання задач реального часу, тобто такі, для яких будь які операції завжди виконуються за наперед передбачуваний і незмінний при наступних виконаннях час).

Відносно способу встановлення (інсталяції) операційної системи, операційні системи бувають:
  • вбудовані (такі, що зберігаються в енергонезалежній пам'яті обчислювальної машини або пристрою без можливості заміни в процесі експлуатації обладнання);
  • невбудовані(?) (такі, що інсталюються на один з пристроїв зберігання інформації обчислювальної машини з можливістю подальшої заміни в процесі експлуатації).

Відносно відповідності стандартам операційні системи бувають:
  • стандартні (відповідають одному з загальноприйнятих відкритих стандартів, найчастіше POSIX);
  • нестандартні (в тому числі такі, що розробляються відповідно до корпоративних стандартів).

Відносно можливостей розширення операційні системи бувають:
  • закриті (не дозволяють розширення функціональності ОС);
  • відкриті (будуються за технологіями, що забезпечують можливості розширення функціональності ОС).

Відносно можливостей внесення змін до вихідного коду операційні системи бувають:
  • відкриті (англ. open source) - з відкритим програмним кодом;
  • власницькі (англ. proprietary) - комерційні з закритим кодом.

Функціональні компоненти ОС

Операційну систему можна розглядати, як сукупність функціональних компонентів, кожен з яких відповідає за реалізацію певної функції системи.

Керування процесами й потоками

Однією з найважливіших функцій ОС є виконання прикладних програм. Код і дані прикладних програм зберігаються в комп'ютерній системі на диску в виконуваних файлах. Після того, як користувач або ОС вирішаться запустити на виконання такий файл, у системі буде створено базову одиницю обчислювальної роботи, що називається процесом.

Інше означення процесу - це програма під час її виконання.

Операційна система розподіляє ресурси між процесами. Одним з таких ресурсів є пам'ять. При розподілі пам'яті з кожним процесом пов'язується його адресний простір - набір адрес пам'яті, до яких йому дозволено доступ. В адресному просторі зберігаються код і дані процесу. При розподілі дискового простору для кожного процесу формується список відкритих файлів, аналогічним чином розподіляють пристрої введення-виведення.

Процеси забезпечують захист ресурсів, якими вони володіють. До адресного простору процесу неможливо безпосередньо звернутися з інших процесів (він є захищеним), а при роботі з файлами може бути задано режим, що забороняє доступ до файла всім процесам, крім поточного.

Розподіл процесорного часу між процесами необхідний через те, що процесор в конкретний момент часу виконує лише один процес, а для користувача процеси мають виглядати як послідовності інструкцій, виконувані паралельно. Щоб домогтися такого ефекту, ОС надає процесор кожному процесу на деякий час, після чого перемикає процесор на інший процес. При цьому виконання процесів відновлюється з того місця, де їх було перервано. У багатопроцесорній системі процеси можуть виконуватися паралельно на різних процесорах.

Сучасні ОС крім багатозадачності можуть підтримувати багатопотоковість яка передбачає в рамках процесу наявність кількох послідовностей інструкцій або потоків які для користувача виконуються паралельно подібно до самих процесів в ОС. На відміну від процесів, потоки не забезпечують захисту ресурсів. Наприклад, вони спільно використовують адресний простір свого процесу.

Керування пам'яттю

Обсяг пам'яті, доступний процесу, може змінюватися в ході виконання, в цьому разі говорять про динамічний розподіл пам'яті.

ОС повинна забезпечувати можливість виконання програм, які окремо або в сукупності перевищують за обсягом доступну основну пам'ять. Для цього в ній має бути реалізована технологія віртуальної пам'яті. Така технологія дає можливість розміщувати в основній пам'яті тільки ті інструкції дані процесу, які потрібні в поточний момент часу, при цьому вміст решти адресного простору зберігається на диску.

Керування введенням-виведенням

Підтримка пристроїв введення-виведення звичайно здійснюється на двох рівнях. До нижчого належать драйвери пристроїв - програмні модулі, які керують пристроями конкретного типу з урахуванням усіх їхніх можливостей. До верхнього рівня належить універсальний інтерфейс введення-виведення, зручний для використання у прикладних програмах.

ОС має реалізувати загальний інтерфейс драйверів введення-виведення, через який вони взаємодіють з іншими компонентами системи. Такий інтерфейс дає змогу спростити додавання в систему драйверів для нових пристроїв.

Керування файлами та файлові системи

Файл - це набір даних у файловій системі, доступ до якого здійснюється за іменем.

Файлова система - це принцип організації даних у вигляді файлів. Іноді цей термін означає конкретний набір даних деякої частини диска, організованих відповідно до такого принципу. У рамках ОС може бути реалізована одночасна підтримка декількох файлових систем.

Файлові системи розглядають на логічному і фізичному рівнях. Логічний рівень визначає зовнішнє подання системи як сукупності файлів та виконання операцій над файлами і каталогами. Фізичний рівень визначає принципи розміщення структур даних файлової системи на диску або іншому пристрої.

Мережна підтримка

Сучасні операційні системи пристосовані до роботи в мережі, їх називають мережними операційними системами. Засоби мережної підтримки дають ОС можливість:
  • надавати локальні ресурси у загальне користування через мережу, тобто функціонувати як сервер;
  • звертатися до ресурсів інших комп'ютерів через мережу, тобто функціонувати як клієнт

Реалізація функціональності сервера і клієнта базується на транспортних засобах, відповідальних за передачу даних між комп'ютерами відповідно до правил, визначених мережними протоколами.

Окрім мережних систем є також розподілені ОС, які дають змогу об'єднати ресурси декількох комп'ютерів у розподілену систему. Вона виглядає для користувача як один комп'ютер з декількома процесорами, що працюють паралельно.

Безпека даних

Під безпекою даних в ОС розуміють забезпечення надійності системи (захисту даних від втрати у разі збоїв) і захист даних від несанкціонованого доступу (випадкового чи навмисного).

Для захисту від несанкціонованого доступу ОС має забезпечувати наявність засобів аутентифікації користувачів (такі засоби дають змогу з'ясувати, чи є користувач тим, за кого себе видає) та їхньої авторизації (дозволяють перевірити права користувача, на виконання певної операції).

Інтерфейс користувача

Розрізняють два типи засобів взаємодії користувача з ОС: командний інтерпретатор і графічний інтерфейс користувача.

Командний інтерпретатор дає змогу користувачам взаємодіяти з ОС, використовуючи спеціальну командну мову.

Графічний інтерфейс користувача надає йому можливість взаємодіяти з ОС, відкриваючи вікна і виконуючи команди за допомогою меню або кнопок.

Архітектура операційних систем

Операційну систему можна розглядати, як сукупність компонентів, кожен з яких відповідає за певні функції. Набір таких компонентів і порядок їхньої взаємодії один з одним та із зовнішнім середовищем визначається архітектурою операційної системи.

Механізми і політика

В ОС необхідно виділити набір функціональних можливостей, які надають її компоненти; ці базові можливості становлять механізм. З іншого боку, необхідно приймати рішення щодо використання зазначених можливостей; такі рішення визначають політику. Отже, механізм показує, що реалізовано компонентом, а політика - як це можна використати.

Коли за реалізацію механізму і політики відповідають різні компоненти (механізм відокремлений від політики), спрощується розробка системи і підвищується її гнучкість. Компонентам, що реалізують механізм, не повинна бути доступна інформація про причини та цілі його застосування; усе, що потрібно від них, - це виконувати призначену їм роботу. Для таких компонентів використовують термін "вільні від політики". Компоненти, відповідальні за політику, мають оперувати вільними від неї компонентами.

Ядро системи. Привілейований режим і режим користувача

Базові компоненти ОС, які відповідають за найважливіші її функції, зазвичай перебувають у пам'яті постійно і виконуються у привілейованому режимі, називають ядром операційної системи.

Основною характерною ознакою ядра є те, що воно виконується у привілейованому режимі.

Для забезпечення ефективного керування ресурсами комп'ютера ОС повинна мати певні привілеї щодо прикладних програм. Треба, щоб прикладні програми не втручалися в роботу ОС, а ОС могла втрутитися в роботу будь-якої програми, наприклад для перемикання задачі або розв'язання конфлікту через ресурси. Для реалізації таких привілеїв потрібна апаратна підтримка: процесор має підтримувати принаймні два режими роботи - привілейований (захищений режим, режим ядра) і режим користувача. У режимі користувача недопустимі команди, які є критичними для роботи системи (перемикання задач, звертання до пам'яті за заданими межами, доступ до пристроїв введення-виведення тощо).

Після завантаження ядро перемикає процесор у привілейований режим і отримує цілковитий контроль над комп'ютером. Кожне застосування запускається і виконується в режимі користувача, де воно не має доступу до ресурсів ядра й інших програм. Коли потрібно виконати дію, реалізовану в ядрі, застосування робить системний виклик (system call). Ядро перехоплює його, перемикає процесор у привілейований режим, виконує дію, перемикає процесор назад у режим користувача і повертає результат застосування.

Системний виклик виконується повільніше за виклик функції, реалізованої в режимі користувача, через те, що процесор двічі перемикається між режимами. Для підвищення продуктивності в деяких ОС частина функціональності реалізована в режимі користувача, тому для доступу до неї системні виклики використовувати не потрібно.

Системне програмне забезпечення

Окрім ядра, важливими складниками роботи ОС є застосування режиму користувача, які виконують системні функції. До такого системного програмного забезпечення належать:
  • системні програми (утиліти), наприклад, командний інтерпретатор, програми резервного копіювання та відновлення даних, засоби діагностики й адміністрування;
  • системні бібліотеки, у яких реалізовані функції, що використовуються у застосуваннях користувача.

Реалізація архітектури операційних систем

Розглянемо декілька підходів до реалізації архітектури операційних систем. У реальних ОС звичайно використовують деяку комбінацію цих підходів.

Монолітні системи

ОС, у яких базові функції сконцентровані в ядрі, називають монолітними системами. У разі монолітного ядра ОС стає продуктивнішою (процесор не перемикається між режимами), але менш надійною (весь її код виконується у привілейованому режимі, і помилка в будь-якому з компонентів є критичною).

Монолітність ядра не означає, що всі його компоненти мають постійно перебувати у пам'яті. Сучасні ОС дають можливість динамічно розміщувати в адресному просторі ядра фрагменти коду (модулі ядра).

Багаторівневі системи

Компоненти багаторівневих ОС утворюють ієрархію рівнів, кожен з яких користується функціями попереднього рівня. Найнижчий рівень безпосередньо взаємодіє з апаратним забезпеченням, на найвищому рівні реалізуються системні виклики.

У традиційних багаторівневих ОС передача керування з верхнього рівня на нижній реалізується як системний виклик. Верхній рівень повинен мати права на виконання цього виклику, перевірка цих прав виконується за підтримки апаратного забезпечення. Прикладом такої системи є ОС Multics, розроблена в 60-ті роки. Практичне використання цього підходу сьогодні обмежене через низьку продуктивність.

Рівні можуть виділятися й у монолітному ядрі: у такому разі вони підтримуються програмно і спричиняють спрощення реалізації системи. У монолітному ядрі визначають такі рівні:
  • Засоби абстрагування від устаткування, які взаємодіють із апаратним забезпеченням безпосередньо, звільняючи від реалізації такої взаємодії інші компоненти системи.
  • Базові засоби ядра, які відповідають за найфундаментальніші, найпростіші дії ядра, такі як запис блоку даних на диск. З допомогою цих засобів виконуються вказівки верхніх рівнів, пов'язані з керуванням ресурсами.
  • Засоби керування ресурсами (або менеджери ресурсів), що реалізують основні функції ОС (керування процесами, пам'яттю, введенням-виведенням тощо).
  • Інтерфейс системних викликів, який служить для реалізації зв'язку із системним і прикладним програмним забезпеченням.

Розмежування базових засобів ядра і менеджерів ресурсів відповідає відокремленню механізмів від політики в архітектурі системи.

Системи з мікроядром

Один з напрямів розвитку сучасних ОС полягає в тому, що у привілейованому режимі реалізована невелика частка функцій ядра, які є мікроядром. Інші функції ОС виконуються процесами режиму користувача (серверними процесами, серверами). Сервери можуть відповідати за підтримку файлової системи, за роботу із процесами, пам'яттю тощо.

Мікроядро здійснює зв'язок між компонентами системи і виконує базовий розподіл ресурсів. Щоб виконати системний виклик, процес звертається до мікроядра. Мікроядро посилає серверу запит, сервер виконує роботу і пересилає відповідь назад, а мікроядро переправляє його клієнтові. Клієнтами можуть бути не лише процеси користувача, а й інші модулі ОС.

Перевагами мікроядрового підходу є:
  • невеликі розміри мікроядра, що спрощує його розробки й налагодження;
  • висока надійність системи, внаслідок того, що сервери працюють у режимі користувача й у них немає прямого доступу до апаратного забезпечення;
  • більша гнучкість і розширюваність системи (непотрібні компоненти не займають місця в пам'яті, розширення функціональності системи зводиться до додавання в неї нового сервера);
  • можливість адаптації до умов мережі (спосіб обміну даними між клієнтом і сервером не залежить від того, зв'язані вони мережею чи перебувають на одному комп'ютері).



Рисунок 1 - Виконання системного виклику в архітектурі з мікроядром

Головним недоліком мікроядерного підходу є зниження продуктивності. Замість двох перемикань режиму процесора у разі системного виклику відбувається чотири (два - під час обміну між клієнтом і мікроядром, два - між сервером та мікроядром).

Зазначений недолік є, швидше теоретичним, на практиці продуктивність і надійність мікроядра залежать насамперед від якості його реалізації. Так в ОС QNX мікроядро займає кілька кілобайтів пам'яті й забезпечує мінімальний набір функцій, при цьому система за продуктивністю відповідає ОС реального часу.

Концепція віртуальних машин

У системах віртуальних машин програмним шляхом створюють копії апаратного забезпечення (відбувається його емуляція). Ці копії (віртуальні машини) працюють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі.

Ядро системи, яке називалося монітором віртуальних машин (VM Monitor, MBM), виконувалося на фізичній машині, безпосередньо взаємодіючи з її апаратним забезпеченням. Монітор реалізовував набір віртуальних машин (ВМ). Кожна ВМ була точною копією апаратного забезпечення, на ній могла бути запущена будь-яка ОС, розроблена для цієї архітектури. На різних ВМ могли одночасно функціонувати різні ОС.

Коли програма, виконувала системний виклик її перехоплювала копія ОС, запущена на відповідній віртуальній машині. Потім ОС виконувала відповідні апаратні інструкції. Ці інструкції перехоплював МВМ і перетворював їх на апаратні інструкції фізичної машини.

Віртуальні машини спільно використовували ресурси реального комп'ютера; наприклад, дисковий простір розподілявся між ними у вигляді віртуальних дисків.

Сьогодні концепція віртуальних машин застосовується в прикладному програмному забезпеченні.

Вимоги до обладнання

Окрема операційна система зазвичай може виконуватись на обмеженому переліку обладнання, яке забезпечує потрібні їй механізми. Сучасні універсальні (і не тільки) операційні системи зазвичай вимагають апаратної підтримки наступних механізмів:
  • підтримка сторінкового поділу оперативної пам'яті з можливістю апаратного захисту сторінок від модифікації даних окремими задачами (процесами);
  • підтримка захищеного режиму виконання процесора (режиму ядра ОС), який передбачає можливість виконання операцій процесора по управлінню обладнанням системи, при цьому спроба виконати подібну операцію в прикладній програмі блокується апаратно. Можуть існувати і інші вимоги.

Сьогодення

Сучасні операційні системи типово мають графічний інтерфейс користувача, котрий на додачу до клавіатури користується також вказівниковим пристроєм — мишею чи тачпадом. Старіші системи, та системи, що не призначені для частої безпосередньої взаємодії з користувачем (як наприклад сервери) типово використовують інтерфейс командного рядка. Обидва підходи так чи інакше реалізують оболонку, котра перетворює команди користувача — текстові з клавіатури, чи рухи мишки — на системні виклики.

При виборі ОС ключовим моментом є архітектура комп'ютера (зокрема центрального процесора), на котрій вона буде запускатись. На персональних комп'ютерах сумісних з ІВМ РС запускаються ОС сімейства «Майкрософт Віндовз», «Лінукс» та «БСД». На мейнфреймах Burroughs MCP — B5000, IBM OS/360 — IBM System/360, UNIVAC EXEC 8 — UNIVAC 1108. Крім того на більшості сучасних мейнфреймів запускаються різні варіанти Лінукс чи Юнікс, а на деяких — версія Datacenter Windows 2003 Server. На вбудованих системах використовується велика кількість вбудованих ОС.Операційна система 8 Юнікс-подібні ОС KDE запущений в Лінукс. До юнікс-подібних ОС відноситься велика кількість операційних систем, котрі можна умовно поділити на три категорії — System V, BSD та Лінукс. Сама назва «Юнікс» є торговою маркою, що належить «The Open Group», котра власне й ліцензує кожну конкретну ОС на предмет того, чи відповідає вона стандарту. Тому через ліцензійні чи інші неузгодження деякі ОС, котрі фактично є Юнікс-подібними, не визнані такими офіційно. Системи Юнікс запускаються на великій кількості процесорних архітектур. Вони широко використовуються як серверні системи у бізнесі, як стільничні системи у академічному та інжененому середовищі. Тут популярні вільні варіанти Юнікс, такі як Лінукс та БСД-системи. Окрім того, деякі з них останнім часом набувають широкого поширення в корпоративному середовищі, особливо це стосується орієнтованих на кінцевого користувача дистрибутивів Лінукс, в першу чергу Ubuntu, Mandriva, Red Hat Enterprise Linux та Suse. Лінукс також є популярною системою на стільницях розробників, системних адміністраторів та інших ІТ-спеціалістів.

Деякі варіанти Юнікс, як наприклад HP-UX компанії Хьюлет Пакард та AIX від IBM запускаються лише на апаратних системах своїх розробників. Інші, як наприклад Solaris, можуть запускатись на багатьох апаратних типах, включаючи сервери на базі x86 та ПК.

Microsoft Windows

Спочатку ОС Microsoft Windows проектувалась як графічна надбудова над старими середовищами DOS. Сучасні версії розроблені на базі нового ядра (англ. NT - New Technology, Нова технологія), яке з'явилось в OS/2, запозичене з VMS. Windows запускається на 32- та 64-бітних процесорах Інтел та AMD; попередні версії також могли запускатись на процесорах DEC Alpha, MIPS, Fairchild (пізніше Intergraph) Clipper та PowerPC. Проводились роботи на портування її на архітектуру SPARC. Станом на 2006 рік Windows утримує монопольне становище (близько 94 %) світового ринку настільних систем, дещо втрачаючи позиції через зростання популярності систем з відкритими джерельними кодами. Вона також використовується на малих та середніх серверах мереж та баз даних. Останнім часом Microsoft проводить ряд маркетингових досліджень, котрі мають на меті показати привабливість родини Windows на ринку корпоративних систем.

Найбільше на сьогоднішній день поширена версія Microsoft Windows XР, випущена 25 жовтня 2001 року. Останній випуск Windows XP Service Pack 2 випущено 6 серпня 2004 року. Станом на 27 червня 2008 року операційні системи сімейства Microsoft Windows займають 91 % долі світового ринку ОС. У листопаді 2006 року, після більш ніж 5 років розробки, корпорація Microsoft випустила ОС Windows Vista, що містить велику кількість нововведень та архітектурних змін в порівнянні з попередніми версіями Windows. Серед інших можна виділити новий інтерфейс користувача, названий Windows Aero, ряд вдосконалень безпеки, як наприклад Контроль реєстраційного запису користувача (User Account Control) та нові програми для мультимедія, як наприклад Windows DVD Maker.

Mac OS X

Mac OS X — це ряд графічних ОС, що розроблюються, реалізуються та підтримуються компанією Apple. Mac OS X — це наступниця оригінальної MacОС, що її розробляла Apple з 1984 року. На відміну від попередниці, Mac OS X є Юнікс-системою, що розроблена на основі NEXTSTEP. Перші випуски Mac OS X були у 1999 році — Mac OS X Server 1.0, та в березні 2001 — Mac OS X 10.0. З того часу було випущено ще 5 версій Mac OS X у варіантах «кінцевий користувач» та «сервер». Остання версія, Mac OS X 10.5, випущена 15 листопада 2007 року. Випуски Mac OS X називаються іменами великих тварин з родини котячих; Остання версія (10.6) носить назву «Сніжний Леопард». Серверна версія Mac OS X Server архітектурно ідентична версії для кінцевого користувача, але запускається на серверах виробництва Apple. Вона містить програми для керування робочими групами та адміністрування ключових мережевих служб, включаючи поштові служби, сервери Samba, LDAP, DNS та ін.

Хмарні операційні системи

Основна ідея такої системи — легкий перехід від одного комп'ютера до іншого. Тут можуть виникнути мимовільні аналогії з акаунтом соціальної мережі, який можна підвантажувати на будь-якому доступному терміналі з доступом до Мережі в незалежності від встановленої ОС. Приблизно така ідея і переслідується

творцями цієї нової революційної операційної системи.