Процесс загрузки ОС Linux

Все процессы в Linux логируются. В частности, логируются сообщения ядра, записи делаются в kern.log. При запуске системы в лог пишутся абсолютно все события (уровень логирования info). Анализируя эти записи можно понять каким именно образом запускается операционная система и какие процессы происходят при ее запуске. Можно понять как загружается система — в рамках материала рассмотрим процесс загрузки ОС Linux.

Процесс загрузки ОС linux

В Desktop версиях операционной системы процесс запуска системы по умолчанию на экран не выводится, на серверах в некоторых дистрибутивах информация, которая параллельно записывается в kern.log выводится на экран при старте. При желании вывод данных о загрузке можно включить или выключить.

 

 

Процесс загрузки Linux: этапы

1. BIOS/UEFI инициализирует оборудование и определяем на каких разделах содержат информацию, необходимую для загрузки. Как только информация найдена, BIOS/UEFI инициирует начало работы загрузчика программ.

 

MBR не может загрузить программу единовременно, поэтому предусматривает стадии загрузки, UEFI грузит все за один раз.

Загрузчик почти всегда GRUB (grubed unify boot loader).

 

2. Как только ядро загружен оно устанавливает прерывания (аппаратные и программные элементы, которые позволяют устройствам обращаться к командам ядра).

 

3. Монтируется initramfs в кэш файловой системы.

 

4. Затем стартуют первые программные составляющие системы init/systemd.

 

5. init/systemd загружает модули ядра (появляется возможность работать с логическими томами, рэйдами и т.д.)

 

6. В это же время стартует udev, утсройствами наполняется корневой каталог /dev

 

7. Когда все модули загружены ядро отмонтирует initramfs и монитрует настоящую rootfs (в режиме read only)

 

8. Загружается новая версия системы с новыми конфигурационными файлами (в Ubuntu 14.10 на этом этапе init запускает upstart — в более новых версиях они работают совместно)

 

9. systemd загружает больше модулей, выполняется fsck на rootfs и перемонтируется в режиме r/w

 

10. Далее systemd запускает все оставшиеся сервисы — демоны, серверы, устройства, USB, Интернет и т.д.

 

11. Запускается дисплейный менеджер (в Ubuntu — lightDM).

Процесс загрузки Linux завершен, система запущена, к ней можно подключаться извне по SSH

 

12. lightDM стартует графическую оболочку:
загружает конфигурационные файлы и данные пользователя по умолчанию (последнего входившего в систему), стартуется X-сервер, пользователь авторизуется и входит в систему.

 

Полную информацию по загрузке и возможных ошибках при ней произошедших можно посмотреть в kern.log

Читайте про управление процессами в Linux и основные команды, необходимые для него.