logo

Що таке ядро?

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

Операційна система

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

Що таке ядро ​​в операційній системі?

Що таке ядро
  • Як обговорювалося вище, ядро ​​є основною частиною ОС (операційної системи); отже, він має повний контроль над усім у системі. Кожна операція апаратного та програмного забезпечення керується та адмініструється ядром.
  • Він діє як міст між додатками та обробкою даних на апаратному рівні. Це центральний компонент ОС.
  • Це частина ОС, яка завжди знаходиться в пам’яті комп’ютера та забезпечує зв’язок між програмними та апаратними компонентами.
  • Це комп’ютерна програма, яка першою завантажується під час запуску системи (після завантажувача). Після завантаження він керує рештою запусків. Він також керує пам’яттю, периферійними пристроями та запитами введення/виведення від програмного забезпечення. Крім того, він перетворює всі запити вводу-виводу в інструкції з обробки даних для ЦП. Він також керує іншими завданнями як керування пам’яттю, керування завданнями та керування дисками .
  • Ядро зберігається і зазвичай завантажується в окремий простір пам'яті, відомий як захищений простір ядра. Він захищений від доступу прикладних програм або менш важливих частин ОС.
  • Інші прикладні програми, такі як браузер, текстовий процесор, аудіо- та відеоплеєр, використовують окремий простір пам’яті, відомий як простір користувача.
  • Завдяки цим двом окремим просторам дані користувача та дані ядра не заважають одне одному та не спричиняють нестабільності та повільності.

Функції ядра

Ядро ОС відповідає за виконання різних функцій і контролює систему. Деякі основні обов'язки Kernel наведені нижче:

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

Типи ядра

Існує в основному п'ять типів ядра, які наведені нижче:

Що таке ядро

1. Монолітні ядра

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

Що таке ядро

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

матриці в програмуванні на C

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

Виконання процесів також швидше, ніж інші типи ядра, оскільки не використовується окремий простір користувача та ядра.

Приклади монолітних ядер є Unix, Linux, Open VMS, XTS-400 тощо.

Переваги:

  • Виконання процесів також відбувається швидше, оскільки немає окремого простору користувача та простору ядра та менше програмного забезпечення.
  • Оскільки це окрема частина програмного забезпечення, його джерела та скомпільовані форми менші.

Недоліки:

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

2. Мікроядро

Що таке ядро

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

умова java while

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

Ці ядра використовують систему передачі повідомлень для обробки запитів від одного сервера до іншого.

Мікроядра надають лише деякі основні служби, такі як визначення адресних просторів пам’яті, IPC (міжпроцесний зв’язок) і керування процесами. Інші служби, такі як мережеві, не надаються ядром і обробляються програмою простору користувача, відомою як серверів .

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

Приклади мікроядра є L4, AmigaOS, Minix, K42 і т.д.

Переваги

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

Недоліки

  • Існує більше вимог до програмного забезпечення для інтерфейсу, що знижує продуктивність системи.
  • Управління процесом дуже складне.
  • Помилки обміну повідомленнями важко виправити.

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

Що таке ядро

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

Під гібридним ядром можна розуміти розширену версію мікроядра з додатковими властивостями монолітного ядра. Ці ядра широко використовуються в комерційних ОС, таких як різні версії MS Windows.

Він багато в чому схожий на мікроядро, але також містить деякий додатковий код у просторі ядра для підвищення продуктивності системи.

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

Прикладами гібридного ядра є Windows NT, Netware, BeOS тощо.

Переваги:

  • Для тестування не потрібно перезавантажуватись.
  • Технології сторонніх розробників можна швидко інтегрувати.

Недоліки:

як відкрити файл json
  • Існує ймовірність появи більшої кількості помилок із більшою кількістю інтерфейсів, які потрібно пройти.
  • Для деяких адміністраторів це може бути заплутаним завданням підтримувати модулі, особливо коли вони мають справу з такими проблемами, як відмінності символів.

4. Наноядро

Як випливає з назви, у Nanokernel повний код ядра дуже малий, що означає, що код, який виконується в привілейованому режимі апаратного забезпечення, дуже малий . Тут термін нано визначає ядро, яке підтримує наносекундну роздільну здатність.

Приклади наноядра є EROS тощо.

Переваги

  • Він забезпечує апаратні абстракції навіть при дуже малому розмірі.

Недоліки

  • У Nanokernel відсутні системні служби.

5. Екзоядро

Екзоядро все ще розробляється та є експериментальним підходом до розробки ОС.

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

Переваги:

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

Недоліки:

  • Конструкція екзоядра дуже складна.

Що таке Kernel Panics?

Як ми вже обговорювали, це ядро ​​контролює всю комп'ютерну систему; отже, якщо він виходить з ладу, він може вивести з ладу всю систему. У MacOS і Linux така небажана подія відома як ' Паніка ядра. Щоб одужати від паніки ядра, нам потрібно перезавантажити систему.

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

команда windows arp