Новини високих технологій
» » Функції та структура ОС Windows і Linux

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

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

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

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


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


Види

Існуюча ОС і структура систем дозволяє прикладним програмам користувача взаємодіяти з системним обладнанням. Оскільки операційна система є складною структурою, її слід створювати з максимальною обережністю, щоб можна було легко використовувати і модифікувати. Простий спосіб зробити це - створити її по частинах. Кожна з цих частин повинна бути чітко визначена з уточненими входами, виходами і функціями. Існує безліч операційних систем, які мають досить просту структуру. Вони починалися як невеликі системи і швидко розширювалися набагато далі їхніх первісних задумів. Загальним прикладом цього є 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 для додаткових сервісів. Інші функціональні можливості ОС надають сервіси додатків і динамічно завантажувані модулі (розширення ядра): IOS операційна система була розроблена Apple для iPhone і IPADS. Вона працює з меншим споживанням пам'яті і обчислювальною потужністю, ніж Max OS X, і підтримує сенсорний інтерфейс і графіку для невеликих екранів. 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. Кожен з цих носіїв має свої власні властивості, такі як швидкість, ємність, швидкість передачі даних та методи доступу до даних. Файлова система зазвичай організована в каталоги для зручної навігації та використання. Ці каталоги можуть містити файли та інші напрямки. Основні види діяльності операційної системи щодо управління файлами: Читає або записує файл. Дає дозвіл програмі на роботу з файлом, який залежить від читання, запису, відмови. Надає користувачеві інтерфейс для створення/видалення файлів. Надає інтерфейс для створення резервної копії файлової системи. У випадку розподілених систем, які являють собою набір процесорів і не використовують пам'ять, периферійні пристрої або годинник, операційна система управляє зв'язком між всіма процесами. Кілька процесів взаємодіють один з одним через лінії зв'язку в структурі мережевої ОС, обробляють стратегії маршрутизації і з'єднання, а також проблеми конкуренції та безпеки. Основні види діяльності ОС щодо комунікації: Два процеси часто вимагають передачі даних між ними. Обидва процеси можуть бути на одному комп'ютері або на різних комп'ютерах, але підключені через комп'ютерну мережу. Комунікація може бути реалізована двома способами: або за допомогою загальної пам'яті, або шляхом передачі повідомлень.

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

Це найвідоміша і найбільш використовувана система з відкритим вихідним кодом. Багато програмісти використовують термін Linux для позначення ядра Linux, а також набору програм, інструментів і сервісів, які зазвичай поставляються разом з ядром Linux. Деякі користувачі ставляться до цієї колекції GNU, оскільки багато інструменти включають компоненти GNU. Хоча і не всі установки Linux використовують компоненти GNU як частина системи. Android, наприклад, використовує структуру ядра ОС Linux і дуже мало покладається на інструменти GNU. Linux відрізняється від інших систем: Відкритим вихідним кодом. ОС є безкоштовною і доступною для громадського перегляду, редагування користувачами, що мають відповідні навички. Існує безліч дистрибутивів 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 для UNIX AIX. 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.

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

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