Система инициализации
Материал из Wiki Open Book.
[править] Введение
Система инициализации Linux — это набор скриптов, выполняющихся при старте системы. Скрипты написаны на языке shell-script классического Boure Shell (sh).
Исторически сложилось так, что существует две системы инициализации:
- System V
- BSD
Они отличаются друг от друга организацией стартовых скриптов: как они называются, в каких директориях располагаются, последовательность вызова и т.д.
В Linux наибольшее распространение получила система инициализации System V. Ее используют такие дистрибутивы как:
- RedHat Linux
- SuSE Linux
- Mandriva
- Debian Linux
и многие другие.
Система инициализации BSD используется в дистрибутиве Slackware Linux и его производных.
Если говорить о SystemV — это очень строгая система инициализации. где шаг вправо или влево — расстрел на месте. Правда некоторые дистрибутивы (не буду тыкать в них пальцем, хотя это был Red Hat) даже из такой строгой системы могут сделать чёрт те что и сбоку бантик.
В системе инициализации BSD не наблюдается строгих правил, но соблюдаются определенные принципы её построения. Поэтому если рассматривать дистрибутивы и операционные системы использующие ее, можно сказать, что это организованный бардак :). Т.е. нет двух похожих систем в которых совпадало бы именование файлов и их порядок вызова. Но все прекрасно понимают как это работает.
[править] Последовательность действий при старте компьютера
BIOS -> загрузчик -> ядро -> init
При запуске PC совместимого компьютера происходит следующая последовательность действий:
- выполняется BIOS компьютера;
- запускается загрузчик операционной системы – LILO, grub или любой другой;
- загружается ядро Linux.
Ядро стартует и кроме основных действий подключает корневую файловую систему в режиме только для чтения, а так же запускает самую первую программу в системе - init.
То есть, в результате мы имеем:
- подключённую в режиме только для чтения корневую файловую систему;
- работающую программу init
Дальнейшие действия, которые будут выполняться при старте системы, во многом зависят от конфигурации программы init.
Так же хочется обратить ваше внимание на то, что до этого момента ещё не важно какая система инициализации используется. Не зависимо от неё во всех Linux сначала запускается init. А вот какая система инициализации будет использоваться в дальнейшем зависит от того как сконфигурирован init.

