Процес завантаження Linux

  Оновл. 10 Лис 2022  | 

 2660

Ви коли-небудь цікавилися етапами завантаження операційної системи? Що відбувається, коли ви вмикаєте свій комп’ютер?

Етапи процесу завантаження Linux можна умовно поділити на:

   Завантаження BIOS (POST).

   Перший етап завантаження (MBR або GPT).

   Другий етап завантаження (GRUB2).

   Ініціалізація ядра.

   Ініціалізація головного процесу (init або systemd).

   Рівні виконання (runlevels).

Зараз ми це все розглянемо.

Завантаження BIOS (POST)

BIOS (скор. від Basic Input/Output System”) — це низькорівневе програмне забезпечення (прошивка), що зберігається на невеликому чіпі пам’яті материнської плати комп’ютера. Воно полегшує процес запуску, а також керує потоком даних між комп’ютером та іншими підключеними до нього пристроями, такими як: мишка, принтер, монітор тощо. Коли ви натискаєте кнопку живлення, першим ініціалізується BIOS, який починає пошук завантажувального пристрою для запуску операційної системи.

Якщо процес ініціалізації BIOS та пошук завантажувального пристрою завершуються успішно, комп’ютер видає один звуковий сигнал, а потім ще один, коли система готова до завантаження операційної системи. Цей етап має назву POST (скор. від Power-On Self-Test” — самотестування при включенні). POST перевіряє працездатність системного обладнання та знаходить завантажувальний сектор, який містить програмне забезпечення, необхідне для продовження процесу завантаження. POST виконується програмами, що входять до BIOS.

Ви можете використовувати функціональні клавіші (F1-F12) у режимі BIOS, щоб встановити пріоритет завантаження пристроїв, налаштувати параметри апаратного забезпечення комп’ютера або відновити за замовчуванням значення параметрів комп’ютера. У меню BIOS ви знайдете номер версії BIOS, найменування постачальника BIOS, тип вашого процесора та іншу інформацію про систему.

Меню завантаження в BIOS (Boot Manager) — це список, в якому ви можете вибрати операційну систему для завантаження. Якщо на вашому комп’ютері встановлено кілька дистрибутивів Linux або інших операційних систем, ви можете додати їх до меню завантаження. Остання встановлена ОС буде показана у верхній частині Boot Manager.

На наступному скріні можна побачити, що на комп’ютері встановлені Ubuntu і Windows. Можна вибрати будь-яку операційну систему (з доступних) для завантаження.

Перший етап завантаження (MBR або GPT)


До завантажувачів першого етапу відносяться MBR (скор. від Master Boot Record”) та GPT (скор. від Guided Partition Table”). MBR містить таблицю розділів диска і знаходиться в першому секторі завантажувального диска, зазвичай це /dev/hda або /dev/sda залежно від вашого обладнання. Основне завдання MBR — це “перехід” у розділ диска, з якого необхідно виконати подальший код завантаження операційної системи.

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

Примітка: Варто відзначити, що зараз все частіше використовується технологія GPT, замість MBR.

Другий етап завантаження (GRUB2)

Завдання завантажувача другого етапу полягає в тому, щоб знайти ядро системи та завантажити його в пам’ять.

Більшість дистрибутивів Linux використовують в якості завантажувача GRUB (скор. від GRand Unified Bootloader”) або GRUB2 (більш сучасний). Оскільки GRUB2 є новішою версією GRUB, то саме цю версію ви побачите (здебільшого) під час завантаження комп’ютера. У цьому завантажувачі є просте меню, в якому ви можете вибрати опції завантаження. Якщо у вас встановлено кілька різних ядер, ви можете використовувати клавіатуру, щоб вибрати саме те ядро, з яким хочете завантажити свою систему:

Конфігураційними файлами завантажувача GRUB є файли /boot/grub/grub.conf або /etc/grub.conf. Як тільки завантажувач знаходить ядро, то завантажує його в оперативну пам’ять і передає йому подальше управління.

Примітка: Раніше в дистрибутивах Linux переважно використовувався завантажувач LILO (скор. від LInux LOader”), але сьогодні його повністю витіснив більш сучасний GRUB.

Ініціалізація ядра


Більшість нових користувачів Linux вважають, що Linux це операційна система. Але насправді Linux це ядро. Ядро часто називають серцем операційної системи. Воно відіграє важливу роль у процесі завантаження Linux. Ядро Linux знаходиться в каталозі /boot і відповідає за взаємодію між основними компонентами комп’ютера та операційною системою.

Оскільки для економії місця на жорсткому диску ядро знаходиться в стислому вигляді, перше, що воно зробить, як тільки отримає контроль — це виконає “саморозпакування”. Потім виконає монтування образу кореневої файлової системи, вказаної у файлі grub.cfg, та запустить процес ініціалізації системи.

Файли ядра Linux

Ініціалізація головного процесу (init або systemd)

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

Примітка: В системі ініціалізації SysV головним процесом є процес init, а в системі ініціалізації systemd — (однойменний) процес systemd.

Рівні виконання (runlevels)


Рівень виконання (runlevel) — це безпосередній стан операційної системи (наприклад, коли Linux завершив процес завантаження і готовий до використання), в якому можна керувати параметрами живлення, режимом користувача і всім оточенням. Коли система переходить на відповідний рівень виконання, на екрані й далі будуть виводитися повідомлення головного процесу ініціалізації. Стандартне ядро Linux підтримує сім різних рівнів виконання:

   Runlevel 0 — завершує роботу системи.

   Runlevel 1 — однокористувацький режим роботи. Найчастіше використовується з метою обслуговування та виконання інших адміністративних завдань. Цей рівень також може називатися Runlevel S (від англ. Single-user”). Якщо вам коли-небудь доводилося скидати пароль на Linux, то ви, ймовірно, вже користувалися цим режимом.

   Runlevel 2 — багатокористувацький режим роботи (англ. “multi-user”) без підтримки мережевих служб.

   Runlevel 3 — багатокористувацький режим з підтримкою мережі, але без графічного інтерфейсу. Найчастіше серверні версії Linux працюють саме на цьому рівні виконання.

   Runlevel 4 — не використовується. Користувач може налаштувати цей рівень, враховуючи свої цілі.

   Runlevel 5 — схожий на режим 3, але тут запускається графічний інтерфейс. У цьому режимі працюють десктопні версії Linux.

   Runlevel 6 — перезавантажує систему.

Примітка: У системах сімейства Debian рівні виконання побудовані трохи інакше. Наприклад, Ubuntu у режимі командого рядка запускається з рівнем виконання 5.

У процесі завантаження Linux стан рівня виконання представлений буквено-цифровим кодом. Якщо ви подивитеся на скріншот, наведений нижче, то побачите, що мій поточний рівень виконання становить N 5; це означає, що мій комп’ютер вже завершив процес завантаження, і працює в багатокористувацькому режимі з графічним інтерфейсом.

Дізнатися поточний режим рівня виконання можна за допомогою наступної команди:

sudo runlevel

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

sudo telinit [номер_рівня]

Висновки

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

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (13 оцінок, середня: 5,00 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *