Яка класифікація операційних систем

Розуміння різноманітності всіх ОС

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

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

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

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

  • Windows: популярна серед настільних користувачів, пропонує широкий набір додатків та ігор.
  • macOS: оптимізована для пристроїв Apple, забезпечує стабільність і високу продуктивність.
  • Linux: відкрита система, краща для серверів і розробників. Відома своєю гнучкістю і кастомізацією.
  • Android: призначена для мобільних пристроїв, використовується в більшості смартфонів. Забезпечує розмаїття додатків і широкі можливості налаштування (курси з освоєння Android доступні на освітній платформі компанії FoxmindED).

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

🌐 Пройшовши один з наших Start Course , ти опануєш основи програмування і будеш готовий розвиватися самостійно або продовжити навчання на наших менторських курсах .

🚀 Обери свій напрямок та розпочни подорож у світ IT!

Основна класифікація

Найпоширенішою класифікацією ОС є поділ на такі категорії:

Приклади: Microsoft Windows, macOS

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

Приклади: Windows Server, Linux (Ubuntu Server, CentOS)

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

Опис: адаптовані для смартфонів і планшетів. Основна увага приділяється сенсорним інтерфейсам, мобільним додаткам, енергоефективності та мобільному зв’язку.

Приклади: FreeRTOS, VxWorks

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

Де зберігається?

Де зберігається операційна система?

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

Жорсткі диски є більш доступними, але вони менш продуктивні та довговічні, ніж SSD, які забезпечують вищу швидкість читання і запису, що може поліпшити продуктивність системи.

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

Зберігання ОС у хмарі має низку переваг:

  • Зручність – користувачеві не потрібно турбуватися про те, де зберігати.
  • Безпека – ОС зберігається в захищеному центрі обробки даних.
  • Ефективність – ОС може бути завантажена в пам’ять комп’ютера всього за кілька секунд.

Вибір способу зберігання залежить від конкретних потреб користувача.

Якщо для користувача важлива швидкість і продуктивність, то він може вибрати SSD. Якщо для користувача важлива зручність і безпека, то він може вибрати зберігання в хмарі.

Структура

Яка структура операційної системи? Зазвичай вона складається з трьох основних компонентів: ядра, системних викликів і користувацького інтерфейсу.

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

Дозволяє виконувати завдання, такі як запуск програм і зміна параметрів системи.

Наведемо приклади структури операційних систем:

Системні виклики: Бібліотека функцій

UI: Графічний інтерфейс користувача (GUI) і командний рядок (CLI).

Розглянемо ключові частини того, як влаштована операційна система.

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

FoxmindEd – це навчальний центр, що має велику різноманітність напрямків курсів для новачків та програмістів з досвідом!

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

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

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

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

Вибір ОС для різних потреб

Під час вибору ОС слід враховувати такі чинники:

  1. Для яких цілей буде використовуватися комп’ютер? Якщо для ігор або роботи з графікою, то знадобиться потужна ОС з хорошою підтримкою відповідних додатків.
  2. Сумісність із програмним і апаратним забезпеченням – переконайтеся, що обрана вами операційка сумісна з вашим комп’ютером і програмним забезпеченням, яке ви плануєте використовувати.

Залежно від потреб, рекомендуємо вибирати ОС так:

📢 Підпишись на наш Ютуб-канал! 💡Корисні відео для програмістів вже чекають на тебе!

🔍 Обери свій курс програмування! 🚀 Шлях до кар’єри програміста починається тут!

Вступ

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

Особливості алгоритмів керування ресурсами

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

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

  • Однокористувацькі (MS-DOS, Windows 3.x, ранні версії OS / 2);
  • Багатокористувацькі (UNIX, Windows NT).

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

  • Невитесняющая багатозадачність (NetWare, Windows 3.x);
  • Витісняє багатозадачність (Windows NT, OS / 2, UNIX).

Основною відмінністю між витісняючим і невитесняющая варіантами багатозадачності є ступінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в операційній системі, а в другому – розподілений між системою і прикладними програмами. При невитискаючої багатозадачності активний процес виконується до тих пір, поки він сам, з власної ініціативи, не віддасть управління операційній системі для того, щоб та вибрала з черги інший готовий до виконання процес. При витісняючої багатозадачності рішення про переключення процесора з одного процесу на інший приймається операційною системою, а не самим активним процесом. Підтримка багатонитковою. Важливою властивістю операційних систем є можливість розпаралелювання обчислень у рамках одного завдання. Багатонитковою ОС розділяє процесорний час не між завданнями, а між їх окремими гілками (нитками). Багатопроцесорна обробка. Іншою важливою властивістю ОС є відсутність або наявність у ній засобів підтримки багатопроцесорної обробки – мультипроцессирования. Мультипроцессирования призводить до ускладнення всіх алгоритмів керування ресурсами. У наші дні стає загальноприйнятим введення в ОС функцій підтримки багатопроцесорної обробки даних. Такі функції є в операційних системах Solaris 2.x фірми Sun, Open Server 3.x компанії Santa Crus Operations, OS / 2 фірми IBM, Windows NT фірми Microsoft і NetWare 4.1 фірми Novell. Багатопроцесорні ОС можуть класифікуватися за способом організації обчислювального процесу в системі з багатопроцесорної архітектурою: асиметричні ОС і симетричні ОС. Асиметрична ОС цілком виконується тільки на одному з процесорів системи, розподіляючи прикладні завдання по іншим процесорам. Симетрична ОС повністю децентралізована і використовує весь пул процесорів, поділяючи їх між системними та прикладними завданнями. Вище були розглянуті характеристики ОС, пов’язані з управлінням тільки одним типом ресурсів – процесором. Важливе вплив на вигляд операційної системи в цілому, на можливості її використання в тій чи іншій області надають особливості та інших підсистем управління локальними ресурсами – підсистем управління пам’яттю, файлами, пристроями введення-виведення. Специфіка ОС виявляється і в тому, яким чином вона реалізує мережеві функції: розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів, передача повідомлень по мережі, виконання віддалених запитів. При реалізації мережевих функцій виникає комплекс завдань, пов’язаних з розподіленим характером зберігання і обробки даних у мережі: ведення довідкової інформації про всі доступні в мережі ресурсах і серверах, адресація взаємодіючих процесів, забезпечення прозорості доступу, тиражування даних, узгодження копій, підтримка безпеки даних.

Особливості апаратних платформ

На властивості операційної системи безпосередній вплив надають апаратні засоби, на які вона орієнтована. За типом апаратури розрізняють операційні системи персональних комп’ютерів, міні-комп’ютерів, кластерів та мереж ЕОМ. Серед перерахованих типів комп’ютерів можуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні. У будь-якому випадку специфіка апаратних засобів, як правило, відбивається на специфіці операційних систем. Очевидно, що ОС великої машини є більш складною і функціональною, ніж ОС персонального комп’ютера. Так в ОС великих машин функції з планування потоку виконуваних завдань, очевидно, реалізуються шляхом використання складних пріоритетних дисциплін і вимагають більшої обчислювальної потужності, ніж в ОС персональних комп’ютерів. Аналогічно йде справа і з іншими функціями. Мережева ОС має у своєму складі засоби передачі повідомлень між комп’ютерами по лініях зв’язку, які абсолютно не потрібні в автономній ОС. На основі цих повідомлень мережева ОС підтримує розподіл ресурсів комп’ютера між віддаленими користувачами, підключеними до мережі. Для підтримки функцій передачі повідомлень мережеві ОС містять спеціальні програмні компоненти, що реалізують популярні комунікаційні протоколи, такі як IP, IPX, Ethernet і інші. Багатопроцесорні системи вимагають від операційної системи особливої ​​організації, за допомогою якої сама операційна система, а також підтримувані нею програми могли б виконуватися паралельно окремими процесорами системи. Паралельна робота окремих частин ОС створює додаткові проблеми для розробників ОС, так як в цьому випадку набагато складніше забезпечити узгоджений доступ окремих процесів до загальних системних таблиць, виключити ефект гонок і інші небажані наслідки асинхронного виконання робіт. Поряд з ОС, орієнтованими на певний тип апаратної платформи, існують операційні системи, спеціально розроблені таким чином, щоб вони могли бути легко перенесені з комп’ютера одного типу на комп’ютер іншого типу, так звані мобільні ОС. Найбільш яскравим прикладом такої ОС є популярна система UNIX. У цих системах апаратно-залежні місця ретельно локалізовані, так що при переносі системи на нову платформу переписуються тільки вони. Засобом, що полегшує перенесення іншої частини ОС, є написання її на машинно-незалежній мові, наприклад, на С, який і був розроблений для програмування операційних систем.

Особливості областей використання

Багатозадачні ОС поділяються на три типи відповідно до використаними при їх розробці критеріями ефективності:

  • Системи пакетної обробки (наприклад, OC EC),
  • Системи поділу часу (UNIX, VMS),
  • Системи реального часу (QNX, RT/11).

Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, які не потребують швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність, тобто рішення максимального числа задач в одиницю часу. Для досягнення цієї мети в системах пакетної обробки використовуються наступна схема функціонування: на початку роботи формується пакет завдань, кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань формується мультипрограмна суміш, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред’являють відрізняються вимоги до ресурсів, так, щоб забезпечувалася збалансована завантаження всіх пристроїв обчислювальної машини; так, наприклад, у мультипрограмній суміші бажано одночасна присутність обчислювальних задач і задач з інтенсивним введенням-виводом. Таким чином, вибір нового завдання з пакета завдань залежить від внутрішньої ситуації, що складається в системі, тобто вибирається “вигідне” завдання. Отже, у таких ОС неможливо гарантувати виконання того чи іншого завдання протягом певного періоду часу. У системах пакетної обробки переключення процесора з виконання одного завдання на виконання іншої відбувається тільки у випадку, якщо активна задача сама відмовляється від процесора, наприклад, через необхідність виконати операцію вводу-виводу. Тому одна задача може надовго зайняти процесор, що робить неможливим виконання інтерактивних завдань. Таким чином, взаємодія користувача з обчислювальною машиною, на якій установлена ​​система пакетної обробки, зводиться до того, що він приносить завдання, віддає його диспетчеру-оператору, а наприкінці дня після виконання всього пакета завдань отримує результат. Очевидно, що такий порядок знижує ефективність роботи користувача. Системи розділення часу покликані виправити основний недолік систем пакетної обробки – ізоляцію користувача-програміста від процесу виконання його завдань. Кожному користувачу системи поділу часу надається термінал, з якого він може вести діалог зі своєю програмою. Так як в системах поділу часу кожній задачі виділяється тільки квант процесорного часу, жодна задача не займає процесор надовго, і час відповіді виявляється прийнятним. Якщо квант обраний досить невеликим, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожен з них одноосібно використовує машину. Ясно, що системи поділу часу володіють меншою пропускною здатністю, ніж системи пакетної обробки, тому що на виконання приймається кожна запущена користувачем задача, а не та, яка “вигідна” системі, і, крім того, є накладні витрати обчислювальної потужності на більш часте переключення процесора з задачі на задачу. Критерієм ефективності систем поділу часу є не максимальна пропускна здатність, а зручність і ефективність роботи користувача. Системи реального часу застосовуються для керування різними технічними об’єктами, такими, наприклад, як верстат, супутник, наукова експериментальна установка або технологічними процесами, такими, як гальванічна лінія, доменний процес і т.п. У всіх цих випадках існує гранично припустимий час, протягом якого повинна бути виконана та чи інша програма, що керує об’єктом, у противному випадку може відбутися аварія: супутник вийде з зони видимості, експериментальні дані, що надходять з датчиків, будуть втрачені, товщина гальванічного покриття не буде відповідати нормі. Таким чином, критерієм ефективності для систем реального часу є їхня здатність витримувати заздалегідь задані інтервали часу між запуском програми й одержанням результату керуючого впливу). Цей час називається часом реакції системи, а відповідне властивість системи – реактивністю. Для цих систем мультипрограмна суміш являє собою фіксований набір заздалегідь розроблених програм, а вибір програми на виконання здійснюється виходячи з поточного стану об’єкта або відповідно до розкладу планових робіт. Деякі операційні системи можуть поєднувати в собі властивості систем різних типів, наприклад, частина задач може виконуватися в режимі пакетної обробки, а частина – у режимі реального часу або в режимі поділу часу. У таких випадках режим пакетної обробки часто називають фоновим режимом.

Особливості методів побудови

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

  • Способи побудови ядра системи – монолітне ядро ​​або мікроядерний підхід. Більшість ОС використовує монолітне ядро, яке компонується як одна програма, що працює в привілейованому режимі і використовує швидкі переходи з однієї процедури на іншу, не потребують переключення з привілейованого режиму в призначений для користувача і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також у привілейованому режимі і виконує тільки мінімум функцій з управління апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС – сервери, що працюють в режимі користувача. При такій побудові ОС працює більш повільно, тому що часто виконуються переходи між привілейованим режимом і призначеним для користувача, зате система виходить більш гнучкої – її функції можна нарощувати, модифіковані або звужувати, додаючи, модифікуючи або виключаючи сервери режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси.
  • Побудова ОС на базі об’єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, що добре зарекомендували себе на рівні додатків, всередині ОС, а саме: акумуляцію вдалих рішень у формі стандартних об’єктів, можливість створення нових об’єктів на базі наявних за допомогою механізму успадкування, гарний захист даних за рахунок їх інкапсуляції у внутрішні структури об’єкта, що робить дані недоступними для несанкціонованого використання ззовні, структурізованность системи, що складається з набору добре визначених об’єктів. Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасні операційні системи підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS / 2 або хоча б деякої підмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільше просто реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частина яких реалізують прикладну середовище тієї або іншої операційної системи.
  • Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорного комп’ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитковою обробки, що дозволяє распараллелівать обчислення в рамках однієї задачі і виконувати це завдання відразу на декількох комп’ютерах мережі, а також наявність інших розподілених служб.