Що таке ядро Linux?
Для звичайних користувачів і менш завзятих шанувальників, Linux є операційною системою. Пуристам, однак, титул Linux зарезервовано для ядра, що забезпечує живлення операційної системи.
Режими
Перш ніж пояснити, що таке ядро, важливо зрозуміти терміни режим користувача і режим ядра. Режим користувача — це коли виконання коду не має можливості безпосереднього доступу до апаратного забезпечення або довідкової пам'яті. Щоб отримати доступ до апаратного забезпечення та пам’яті, код, що виконується в режимі користувача, повинен делегувати інструкції системним інтерфейсам програмного забезпечення. Режим ядра — це коли виконання коду має необмежений доступ до всього обладнання — він зарезервований для найбільш надійних функцій операційної системи.

Що таке ядро?
Кожна операційна система має ядро. вікна, macOS, iOS, Android, ОС Chrome, та Linux мають систему низького рівня, яка відповідає за взаємодію всіх програм із фізичним обладнанням комп’ютера. Без ядра жодна з ваших програм не могла б використовувати фізичний комп'ютер; такі програми, як Firefox, Chrome, LibreOffice або Outlook, не працюватимуть. Ядро також відповідає за те, щоб процеси обмінялися інформацією, використовуючи так звану міжпроцесну комунікацію.
Існує (загалом) три типи ядер:
- Монолітні ядра: Ці ядра охоплюють ЦП, пам'ять, IPC, драйвери пристроїв, керування файловою системою та виклики системного сервера. Він також відповідає за передачу вільної системної пам'яті програмам. Ці типи ядер зазвичай краще підтримують доступ до обладнання та багатозадачність.
- Мікроядра: Мікроядра використовують мінімалістичний підхід і керують лише ЦП, пам'яттю та IPC.
- Гібридні ядра: гібридні ядра мають можливість вирішувати, що вони хочуть запускати в режимі користувача або в режимі ядра. Хоча це забезпечує найкраще з обох світів, це вимагає набагато більше від виробників обладнання, щоб створити драйвери, які служать для інтерфейсу між запущеним кодом та обладнанням.
Linux використовує монолітне ядро з відкритим кодом, тоді як macOS і Windows використовують гібридні ядра. Ядро Linux було задумано в 1991 році Лінусом Торвальдсом. До сьогодні Торвальдс продовжує залишатися провідним розробником ядра Linux, тоді як розробники з усього світу роблять внесок у ядро Linux. Фактично, підраховано, що майже 10 000 розробників з більш ніж 1 000 компаній зробили внесок у ядро Linux з початку відстеження в 2005 році.
Де ядро?
Якщо ви відкриєте вікно терміналу та введете команду ls /boot, ви побачите файл під назвою vmlinuz-VERSION(Де VERSION – назва або номер випуску). Файл vmlinuz є фактичним завантажуваним ядром Linux, а файл z вказує, що ядро стиснуте, тому замість vmlinux ми маємо vmlinuz.

У цьому каталозі /boot знаходяться інші важливі файли ядра, такі як initrd.img-VERSION, system.map-VERSION і config-VERSION (де VERSION - це ім'я або номер випуску). Ці інші файли призначені для наступних цілей:
- initrd: Використовується як невеликий RAM-диск, який витягує та виконує фактичний файл ядра.
- system.map: Використовується для керування пам'яттю перед завантаженням ядра.
- конфіг: Вказує ядру, які параметри та модулі завантажувати.
Модулі
Без модулів ядро було б не дуже корисним. Модулі ефективно вмикають драйвери, необхідні для зв’язку з обладнанням, не споживаючи всю вашу системну пам’ять. Модулі також додають до ядра функціональні можливості, такі як зв’язок з периферійними пристроями, керування файловими системами, безпека тощо. Список, додавання та видалення модулів у ядрі за допомогою таких команд:
- lsmod перелічує всі поточні завантажені модулі ядра.
- insmod завантажує модуль ядра в запущене ядро.
- rmmod вивантажує модуль із запущеного ядра.
За допомогою деяких простих команд ядро Linux може бути досить гнучким.
Поточне ядро

Ядро Linux часто оновлюється, але не всі дистрибутиви Linux будуть включати останню версію ядра.
Ви можете вільно завантажувати різні версії ядра Linux kernel.org і зібрати його самостійно. Компіляція ядра Linux - це завдання, яке краще залишити тим, хто дійсно знає, що робить. Неправильно зібране ядро може зробити систему незавантаженою. Отже, якщо ви не готові зануритися в складне завдання компіляції коду на цьому рівні, використовуйте ядро за замовчуванням, яке постачає та оновлює ваш дистрибутив.
FAQ
-
Які функції гіпервізора вбудовані в ядро Linux?
Віртуальна машина на основі ядра (KVM) — це вбудована частина Linux, яка перетворює Linux на програмне забезпечення гіпервізора, яке створює та запускає віртуальні машини. KVM — це технологія віртуалізації з відкритим вихідним кодом, яка дозволяє основному хосту Linux запускати віртуальні машини, які є віртуальними середовищами, також відомими як гості.
-
Якою мовою написано ядро Linux?
Ядро Linux написано мовою програмування C. C використовується для багатьох потреб загального програмування. C поділяє програму на різні модулі, і кожен модуль може бути написаний окремо або разом.
-
Як перевірити версію ядра Linux?
Щоб дізнатися, яку версію ядра Linux ви використовуєте, введіть hostnamectl в командний рядок. Буде прочитаний передостанній рядок Ядро: Linux і числовий рядок. Перше число - це основна версія ядра, друге число - версія основного випуску, а третє число - рівень другорядної версії.