Система инициализации

Материал из Wiki Open book
Перейти к: навигация, поиск

Оглавление | init

Введение

Система инициализации 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.

Оглавление | init

Время не стоит на месте

Как говориться: "Всё течёт, всё меняется". В современных дистрибутивах наблюдается тенденция к использованию отличных от классического init систем. По моему мнению, это связано с распространением Linux на рабочих станциях, где большую роль играет время загрузки.

Не хочу копипастить материалы у себя, просто приведу ссылочку на хороший перевод статьи, посвященной systemd.

Инструменты
    
Личные инструменты