4. Процесс загрузки: Ядро

Как только загрузчик загрузил ядро в память и передал необходимые параметры, управление системой переходит к ядру. Давайте рассмотрим, что происходит дальше.

Инициализация ядра и Initramfs

Классическая проблема при загрузке заключается в том, что ядру нужны драйверы для доступа к аппаратным устройствам, но эти драйверы часто находятся на устройстве хранения данных, к которому ядро пока не может получить доступ. Для решения этой проблемы в Linux используется временная корневая файловая система.

В старых системах для этого использовался initrd (initial RAM disk — начальный RAM-диск). Ядро загружало этот образ диска, находило необходимые драйверы, а затем переключалось на реальную корневую файловую систему. Современные системы, включая дистрибутивы вроде Ubuntu, используют initramfs (initial RAM filesystem — начальная RAM-файловая система). В отличие от initrd, initramfs представляет собой архив cpio, который распаковывается непосредственно в памяти во временную файловую систему. Этот подход более эффективен, поскольку позволяет избежать накладных расходов на создание и монтирование блочного устройства. initramfs содержит только основные модули, необходимые ядру для доступа к фактическому загрузочному разделу (boot partition) и другому оборудованию.

Монтирование корневой загрузочной файловой системы

Загрузив драйверы из initramfs, ядро может найти и смонтировать основную корневую загрузочную (boot root) файловую систему. Расположение этой файловой системы обычно передается как параметр загрузчиком, который можно настроить в таких файлах, как /etc/default/grub.

Сначала ядро монтирует корневой загрузочный раздел в режиме "только для чтения". Это мера предосторожности, которая позволяет утилите fsck (проверка файловой системы) запуститься и проверить целостность файловой системы без риска повреждения данных. После успешного завершения проверки ядро повторно монтирует файловую систему в режиме чтения-записи.

Наконец, когда корневая файловая система становится полностью доступной, ядро запускает самую первую программу пользовательского пространства: init. Эта программа отвечает за запуск остальной части системы.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Вот практическая лабораторная работа для закрепления понимания процесса загрузки Linux:

  • Настройка меню загрузки GRUB2 в Linux — Узнайте, как изменять меню загрузки GRUB2, включая изменение таймаута и записи по умолчанию, а также применение этих изменений. Эта лабораторная работа поможет вам понять, как можно настроить загрузчик.

Эта лабораторная работа поможет вам применить концепции в реальном сценарии и повысить уверенность в настройке загрузки Linux.

Тест

What is used in modern systems to load a temporary root filesystem? Please answer in English, using only lowercase letters.