Огляд типів ядер
Монолітне. Одне велике ядро для
всіх завдань - в цьому полягає ідея моноліту. Таке ядро відповідає за
управління пам'яттю і процесами, за комунікацію між процесами, а також пропонує
функції для підтримки драйверів і устаткування. Саме до цієї категорії
відносяться Windows, Linux і Mac OS X.
Мікро. Помилка в ядрі може
вивести з ладу всю операційну систему. Тому мікроядро відрізняється гранично
малими розмірами - щоб звести помилки і збої до мінімуму. Але оскільки ядро має
підтримувати широкий набір функцій, воно поділяється на кілька модулів, з яких
тільки один працює в режимі ядра. Класичним прикладом є Mach - компонент Mac OS
X. Так чи інакше, до цих пір жодна операційна система з мікроядром не завоювала
популярності серед домашніх користувачів.
Гібрид. Гібридне ядро являє
собою щось середнє між монолітним і мікроядром. Саме ядро робиться полегшеним,
а для додаткових завдань існують динамічні модулі. У Linux і OS X теж можна
довантажувати частини ядра, але не в таких масштабах, щоб віднести їх ядра до
гібридних.
Windows: працює на будь-якому
обладнанні
Починаючи
з NT, в архітектурі Windows виділяється два режими: призначений для користувача
і привілейований, або режим ядра. Це відноситься і до Vista. У режимі
користувача працює практично все, що бачить користувач, тобто додатки на зразок
Word або Photoshop. У цьому режимі програми не мають прямого доступу до
обладнання або оперативної пам'яті. Таким чином, для користувача режим надійно
ізольований, а всі звернення до глибин системи прямують через спеціальні
інтерфейси, такі як Win32 API з системними бібліотеками DLL (Dynamic Link
Libraries).
Такий
режим ядра - фоновий і практично непомітний для користувача. Все добре до тих
пір, поки не виникне якась проблема - наприклад, драйвер режиму ядра (див. схему
ядра Windows) не зруйнує всю систему, і погляду користувача постане синій
екран. Центральне значення тут має файл ntoskrnl.exe. За аналогією з режимом
ядра і призначеним для користувача режимом його завдання також діляться на дві
групи - шар ядра і виконавча система. Головне завдання шару ядра - планувати
завантаження центрального процесора, тобто розподіляти процесорний час між
окремими програмами. Виконавча система відповідає за віртуальну пам'ять,
процеси введення-виводу і інші завдання.
Найглибше
в системі розташовується рівень апаратних абстракцій (Hardware Abstraction
Layer, HAL). Він надає іншим верствам ОС служби для роботи з вбудованим
устаткуванням. Так, шар ядра може розподіляти процесорний час між програмами
незалежно від того, який процесор використовується в комп'ютері - двоядерний
AMD чи чотирьохядерний Intel. Якщо б не HAL, Microsoft довелося б розробляти
окрему Windows для кожного комп'ютера.
|