Автор: Евгений Зобнин
© https://xakep.ru/2017/10/23/linux-boot-explained/
В целом загрузку среднестатистического дистрибутива Linux можно разделить на пять стадий:
- Загрузчик.
- Запуск и первичная инициализация ядра.
- Обнаружение оборудования, загрузка драйверов и подключение файловых систем.
- Запуск системных служб (демонов).
- Старт графической или консольной пользовательской сессии.
Мы пройдемся по всем стадиям и узнаем, что происходит во время загрузки типичного дистрибутива Linux, немного отклонившись в сторону BSD, macOS и Android по пути. Во многих случаях это позволит понять, почему процесс загрузки Linux именно такой, какой есть.
1. Загрузчик
Все начинается с загрузчика, которому во время старта машины BIOS передает управление. В старые времена, когда Linux был не так популярен, в качестве загрузчика использовался LILO (Linux Loader) — простой, очень примитивный и не позволяющий менять конфигурацию загрузки на лету. Фактически конфигурационный файл был вшит в сам загрузчик, и его приходилось переустанавливать после каждой смены настроек: обновил ядро, забыл переустановить, и твой ноутбук больше не грузится.