Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Ядро операційної системи



План:


Введення

Цей термін має також інші значення, див Ядро.

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

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

Описана задача може розрізнятися в залежності від типу архітектури ядра і способу її реалізації.


1. Типи архітектур ядер операційних систем

1.1. Монолітне ядро

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

  • Переваги: ​​Швидкість роботи, спрощена розробка модулів [1].
  • Недоліки: Оскільки все ядро працює в одному адресному просторі, збій в одному з компонентів може порушити працездатність всієї системи.

Приклади: Традиційні ядра UNIX (такі як BSD), Linux; ядро MS-DOS, ядро KolibriOS.

Деякі старі монолітні ядра, в особливості систем класу UNIX / Linux, вимагали перекомпіляції при будь-якій зміні складу обладнання. Більшість сучасних ядер дозволяють під час роботи довантажувати модулі, що виконують частину функцій ядра. У цьому випадку компоненти операційної системи є не самостійними модулями, а складовими частинами однієї великої програми, званої монолітним ядром (monolithic kernel), яке являє собою набір процедур, кожна з яких може викликати кожну. Всі процедури працюють в привілейованому режимі.


1.2. Модульне ядро

Модульне ядро - сучасна, вдосконалена модифікація архітектури монолітних ядер операційних систем.

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


1.3. Мікроядро

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

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

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

  • Сервісні процеси (у прийнятій в сімействі UNIX термінології - " демони ") активно використовуються в самих різних ОС для задач типу запуску програм за розкладом (UNIX і Windows NT), ведення журналів подій (UNIX і Windows NT), централізованої перевірки паролів і зберігання пароля поточного інтерактивного користувача в спеціально обмеженій області пам'яті (Windows NT ). Тим не менш, не слід вважати ОС мікроядерної тільки через використань такої архітектури.

Приклади: Symbian OS; Windows CE; OpenVMS; Mach, що використовується в GNU / Hurd і Mac OS X; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS.


1.4. Екзоядро

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

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


1.5. Наноядро

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


1.6. Гібридне ядро

Гібридні ядра - це модифіковані мікроядра, що дозволяють для прискорення роботи запускати "несуттєві" частини в просторі ядра. Приклад: ядра ОС Windows сімейства NT.

2. Комбінація різних підходів

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

Існують варіанти ОС GNU, в яких замість монолітного ядра застосовується ядро Mach (таке ж, як у Hurd), а поверх нього крутяться в користувацькому просторі ті ж самі процеси, які при використанні Linux були б частиною ядра. Іншим прикладом змішаного підходу може служити можливість запуску операційної системи з монолітним ядром під управлінням мікроядра. Так влаштовані 4.4BSD і MkLinux, засновані на мікроядрі Mach. Мікроядро забезпечує управління віртуальною пам'яттю і роботу низькорівневих драйверів. Всі інші функції, в тому числі взаємодія з прикладними програмами, здійснюються монолітним ядром. Даний підхід сформувався в результаті спроб використати переваги мікроядерної архітектури, зберігаючи по можливості добре налагоджений код монолітного ядра.

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

Приклади: Windows NT, DragonFly BSD.


Примітки

  1. 1gb.ru хостинг - перша сторінка - linwin.ru /? p = 53 (Недоступна посилання)

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Оболонка операційної системи
Ядро
Внутрішнє ядро
Ядро Діріхле
Сонячне ядро
Ядро комети
Клітинне ядро
Клітинне ядро
Ядро Землі
© Усі права захищені
написати до нас
Рейтинг@Mail.ru