9.1. Введение

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

9.1.1. System V

System V это классический процесс загрузки, который использовался в Unix и Unix-подобных системах, таких как Linux с 1983 года. Он состоит из небольшой программы init, которая настраивает базовые программы, такие как login (через getty) и запускает скрипт. Этот скрипт, обычно именуемый rc управляет выполнением дополнительных сценариев, необходимых для инициализации системы.

Программа init управляется файлом /etc/inittab и разделена по уровням выполнения, которые могут быть выбраны пользователем. В LFS используются следующие уровни:

0 — выключение
1 — Однопользовательский режим
2 — Определяемый пользователем
3 — Полный многопользовательский режим
4 — Определяемый пользователем
5 — Полный многопользовательский режим с дисплей-менеджером
6 — перезагрузка

Уровень выполнения по умолчанию равен 3 или 5.

Преимущества

  • Устоявшаяся, хорошо отлаженная система.

  • Легко настраивается.

Недостатки

  • Может загружаться медленнее. Загрузка базовой системы LFS в среднем занимает 8-12 секунд, при этом время загрузки измеряется от первого сообщения ядра до запроса на вход в систему. Подключение к сети обычно устанавливается примерно через 2 секунды после запроса на вход в систему.

  • Последовательная обработка задач загрузки. Это связано с предыдущим пунктом. Задержка в работе любого процесса, например, проверка файловой системы, приведет к задержке всего процесса загрузки.

  • Напрямую не поддерживает дополнительные функции, такие как контрольные группы (cgroups) и диспетчер системных ресурсов для каждого пользователя.

  • Добавление init-скриптов требует ручных однотипных действий.