Как происходит процесс загрузки 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 определяет загрузочное устройство, управление передаётся
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
