Функції та структура ОС Windows і Linux

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

Принцип роботи системи

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


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

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

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

Види

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

Існує безліч операційних систем, які мають досить просту структуру. Вони починалися як невеликі системи і швидко розширювалися набагато далі їх початкових задумів. Загальним прикладом цього є MS-DOS.

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


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

Дизайн архітектури ОС

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

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

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

Сучасні монолітні конструкції

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

CP/M і DOS є простими прикладами монолітних операційних систем. Це системи, які спільно використовують програми з одним адресним простором. У CP/M 16-розрядний адресний простір починається з системних змінних і області програми і закінчується трьома частинами:

  • CCP - консольний командний процесор;
  • BDOS - базова ОС;
  • BIOS - базовий ввід/вивід System.

У DOS 20-розрядний адресний простір починається з масиву векторів переривань і системних змінних, за якими слідує резидентна частина і область додатків, а закінчується блоком пам 'яті, використовуваним відеокартою і BIOS. Більшість сучасних систем, включаючи Linux і структуру ОС Windows, також вважаються монолітними, хоча вони, безумовно, значно відрізняються від простих прикладів CP/M і DOS.


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

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

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

Конструкція мікроядра

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

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

MACH є яскравим прикладом мікроядра, який використовувався в сучасних системах, включаючи системи NextStep і OpenStep і, зокрема, OS X. Більшість дослідницьких систем також кваліфікуються як ОС з мікроядрами.


Віртуальні гіпервізори

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

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

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

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

Гібридні операційні системи

Більшість ОС сьогодні не суворо дотримуються однієї архітектури, а є гібридами кількох.


Архітектура Max OSX спирається на мікроядро Mach для базових служб управління системою і ядро BSD для додаткових сервісів. Інші функціональні можливості ОС надають сервіси програм і динамічно завантажувані модулі (розширення ядра):

  1. IOS операційна система була розроблена Apple для iPhone і IPADS. Вона працює з меншим споживанням пам 'яті і обчислювальною потужністю, ніж Max OS X, і підтримує сенсорний інтерфейс і графіку для невеликих екранів.
  2. Android OS була розроблена для Android-смартфонів і планшетів Open Handset Alliance, в першу чергу Google. Android - це ОС з відкритим вихідним кодом, на відміну від iOS, що призвело до її популярності. Android має структуру ОС Linux і віртуальну машину Java, оптимізовані для невеликих платформ. Програми для Android розроблені з використанням спеціального середовища розробки для Java-for-Android.

Мікроядра і модулі

Основна ідея мікроядер полягає в тому, щоб видалити всі несуттєві сервіси з ядра і замість цього реалізувати їх як системні додатки, тим самим роблячи ядро настільки малим і ефективним, наскільки це можливо. Mach був першим і найвідомішим мікроядром, і тепер він є основним компонентом Mac OSX. Windows NT спочатку являла собою мікроядро, але вона страждала від проблем з продуктивністю (порівняно з Windows 95). Удосконалена продуктивність NT 4.0 за рахунок переміщення більшої кількості сервісів в ядро повернула XP до більш монолітного. Іншим прикладом мікроядра є QNX, ОС реального часу для вбудованих систем.

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

Маніпуляції з файловою системою

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

Основні види діяльності операційної системи щодо управління файлами:


  1. Читає або записує файл.
  2. Дозволяє програмі працювати з файлом, що залежить від читання, запису, відмови.
  3. Надає користувачеві інтерфейс для створення/видалення файлів.
  4. Надає інтерфейс для створення резервної копії файлової системи.

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

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

Основні види діяльності ОЗ щодо комунікації:

  1. Два процеси часто вимагають передачі даних між ними.
  2. Обидва процеси можуть бути на одному комп 'ютері або на різних комп' ютерах, але підключені через комп 'ютерну мережу.
  3. Комунікація може бути реалізована двома способами: або за допомогою загальної пам 'яті, або шляхом передачі повідомлень.

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

Це найвідоміша і найбільш використовувана система з відкритим вихідним кодом. Багато програмістів використовують термін Linux для позначення ядра Linux, а також набору програм, інструментів і сервісів, які зазвичай поставляються разом з ядром Linux. Деякі користувачі належать до цієї збірки GNU, оскільки багато інструментів включають компоненти GNU. Хоча і не всі установки Linux використовують компоненти GNU як частину системи. Android, наприклад, використовує структуру ядра ОС Linux і дуже мало покладається на інструменти GNU.

Linux відрізняється від інших систем:

  1. Відкритим вихідним кодом. ОЗ є безкоштовною і доступною для громадського перегляду, редагування користувачами, які мають відповідні навички.
  2. Існує багато дистрибутивів Linux, які включають різні варіанти програмного забезпечення.

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

Протягом багатьох років було створено кілька різних систем, які намагалися бути unix-like або unix-compatible, але Linux був найуспішнішим, набагато перевершуючим попередників у популярності.

Велика частина ядра Linux написана мовою програмування C з невеликою кількістю збірок з інших мов. Кожен дистрибутив містить сотні або тисячі програм, які можуть бути розподілені разом з ним і для кожної з цих програм.

Типи файлових систем Linux

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

Прогресивна версія Extended Filesystem (ext), яка в першу чергу була розроблена для MINIX. Друга розширена версія (Ext2) була поліпшеною версією. Ext3 додав поліпшення продуктивності, Ext4 забезпечив ще більше додаткових можливостей.

Journaled File System (JFS) була розроблена IBM для AIX UNIX. JFS є альтернативою Ext4 в даний час і застосовується там, де потрібна стабільна робота при використанні дуже небагатьох ресурсів. JFS підходить для випадків, коли потужність процесора обмежена.

ReiserFS був представлений як альтернатива Ext3 з поліпшеною продуктивністю і розширеними функціями. Був час, коли файл формату SuSE Linux за замовчуванням був ReiserFS, але пізніше "Рейзер" "вийшов з бізнесу, і у SuSe не було іншого варіанту, крім як повернутися до Ext3. ReiserFS динамічно підтримує розширення файлів, що є відносно розширеною функцією, системі не вистачало певної області продуктивності.

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

B-Tree File System (Btrfs) фокусується на відмовостійкості, управлінні розвагами, ремонті системи, великий конфігурації сховища і все ще знаходиться в розробці. Btrfs не рекомендується для виробництва.

Існує багато форматів файлів, недоступних у Linux, але використовуваних при роботі з іншими ОС: VIS, NTFS от Microsoft, HFS от Apple. Однак можна виконувати роботу з файловою структурою ОС в Linux за допомогою певних інструментів, таких як ntfs-3g, для монтування файлової системи NTFS, не привілейованих під Linux.

Процесор. Спільне використання

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

Призначення ОС, структури ОС пов 'язані з мультипрограмуванням:

  1. Система одночасно зберігає кілька завдань у пам 'яті.
  2. Цей набір є підмножиною завдань, що зберігаються в пулі.
  3. Система вибирає і починає виконувати одне із завдань у пам 'яті.
  4. Багатопрограмні операційні системи контролюють стан всіх активних програм і ресурсів з використанням програм управління пам 'яттю, щоб гарантувати, що ЦБ ніколи не буде працювати, якщо немає робочих процесів для обробки.

Така схема роботи допомагає ефективно використовувати ЦП.