Встречается на собеседованиях • сегодня

Как происходит процесс загрузки Linux

Процесс загрузки Linux является многоэтапным и начинается с включения компьютера и завершается загрузкой операционной системы и запуском начального процесса. Вот основные этапы загрузки:

1. BIOS или UEFI
Загрузка начинается с BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface), которые являются фирменными программами на материнской плате. BIOS/UEFI инициализирует аппаратные компоненты и проверяет их на наличие ошибок (POST - Power-On Self Test). После успешного прохождения POST, BIOS/UEFI ищет загрузочное устройство среди дисков, USB-накопителей, сетевых интерфейсов и других доступных устройств в порядке, указанном в настройках BIOS/UEFI.

2. Загрузчик (Bootloader)
После того как BIOS/UEFI определяет загрузочное устройство, управление передаётся

загрузчику. В случае с Linux наиболее распространёнными загрузчиками являются GRUB (GRand Unified Bootloader) или Syslinux. Загрузчик отображает меню выбора ядра (если настроено), где пользователь может выбрать версию ядра или операционной системы для загрузки. Загрузчик загружает в память ядро Linux и initramfs (инициализационную RAM файловую систему).

3. Ядро Linux
Загруженное ядро начинает выполнение, инициализирует аппаратные устройства и драйверы, необходимые для дальнейшей загрузки системы. Ядро затем распаковывает initramfs в виртуальную файловую систему в памяти. Initramfs содержит временную корневую файловую систему и необходимые исполняемые файлы и библиотеки, которые нужны для монтирования настоящей корневой файловой системы.

4. Initramfs и udev
Во время загрузки initramfs запускает udev (демон, управляющий устройствами), который динамически создает устройства в каталоге /dev, обеспечивая их доступность для ядра и процессов. Затем initramfs монтирует настоящую корневую файловую систему.

5. Переключение корневой файловой системы
После монтирования настоящей корневой файловой системы initramfs переключает корневую файловую систему с временной на постоянную. Этот процесс называется переключением корня (switch_root).

6. Init-процесс
После переключения на постоянную корневую файловую систему управление передаётся init-процессу (например, systemd или SysVinit), который является первым процессом, запускаемым в системе (с PID 1). Init-процесс отвечает за запуск всех остальных процессов и сервисов, необходимых для полноценной работы системы.

7. Запуск сервисов
Init-процесс запускает различные скрипты и сервисы на основе уровня запуска или целей (в случае systemd), которые настраивают все аспекты работающей системы: сетевые настройки, графические интерфейсы, серверные службы и т.д.

Эти этапы описывают стандартный процесс загрузки большинства современных дистрибутивов Linux.

April 24, 2024, easyoffer

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы