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

Відео: Операційні системи, урок 1: Що таке комп`ютер і операційна система

ядро (Англ. Kernel) - базова компонента операційної системи, який реалізує інтерфейс між прикладними процесами і устаткуванням комп`ютера. Завантажується в оперативну пам`ять комп`ютера і безпосередньо взаємодіє з апаратурою, забезпечуючи керування апаратними засобами (при цьому використовуються драйвери (модулі ядра) підключеного до системи обладнання), підтримку одночасної роботи багатьох користувачів (розрахований на багато користувачів режим), підтримку паралельного виконання багатьох процесів в системі (багатозадачність) .
Ядро UNIX-подібних систем
Як і в будь-який інший операційній системі, що забезпечує захист користувачів один від одного і захист системних даних від будь-якого непривилегированного користувача, в ОС UNIX є захищене ядро, управляє ресурсами комп`ютера і надає користувачам базовий набір послуг.
В результаті, ядро більшості сучасних комерційних варіантів ОС UNIX є не дуже чітко Структурізованний моноліт великого розміру. З цієї причини програмування на рівні ядра ОС UNIX продовжує залишатися мистецтвом (якщо не брати до уваги відпрацьованої і зрозумілою технології розробки драйверів зовнішніх пристроїв). Ця недостатня технологічність організації ядра ОС UNIX багатьох не задовольняє. Звідси прагнення до повного відтворення середовища ОС UNIX при повністю інший організації системи (зокрема, із застосуванням мікроядерного підходу, ми коротко розглянемо в кінці курсу).

Загальна організація традиційного ядра ОС UNIX

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

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


Основні функції

До основних функцій ядра ОС UNIX прийнято відносити наступні:

(A) Ініціалізація системи - функція запуску і розкрутки. Ядро системи забезпечує засіб розкрутки (англ. bootstrap), яке забезпечить регулярне повного ядра в пам`ять комп`ютера і запускає ядро.
(B) Управління процесами і нитками - функція створення, завершення і відстежування існуючих процесів і ниток ( «процесів», які виконуються на загальній віртуальній пам`яті). Оскільки ОС UNIX є мультіпроцесною операційною системою, ядро забезпечує поділ між запущеними процесами часу процесора (або процесорів в мультипроцесорних системах) та інших ресурсів комп`ютера для створення зовнішнього відчуття того, що процеси реально виконуються в паралель.
(C) Управління пам`яттю - функція відображення практично необмеженої віртуальної пам`яті процесів в фізичну оперативну пам`ять комп`ютера, має обмежені розміри. Відповідний компонент ядра забезпечує поділюване використання тих же областей оперативної пам`яті кількома процесами з використанням зовнішньої пам`яті.
(D) Управління файлами - функція, що реалізує абстракцію файлової системи, - ієрархії каталогів і файлів. Файлові системи ОС UNIX підтримують кілька типів файлів. Деякі файли можуть містити дані в форматі ASCII, інші відповідатимуть зовнішнім пристроям. У файлової системи зберігаються об`єктні файли, файли, виконують і т.д. Файли зазвичай зберігаються на пристроях зовнішньої пам`яті, доступ до них забезпечується засобами ядра. У світі UNIX існує кілька типів організації файлових систем. Сучасні варіанти ОС UNIX одночасно підтримують більшість типів файлових систем.
(E) Комунікаційні засоби - функція, що забезпечує можливості обміну даними між процесами, що виконуються всередині одного комп`ютера (англ. IPC - Inter-Process Communications), між процесами, що виконуються в різних вузлах локальної або глобальної мережі передачі даних, а також між процесами і драйверами зовнішніх пристроїв.
(F) Програмний інтерфейс - функція, що забезпечує доступ до можливостей ядра з боку призначених для користувача процесів на основі механізму системних викликів, оформлених у вигляді бібліотеки функцій.



Хочеш придбати комп`ютер або проектор? Свіжі огляди дивись на https://root-master.ru


Поділися в соц. мережах:

Увага, тільки СЬОГОДНІ!
По темі: