Система инициализации Linux — это набор скриптов, выполняющихся при старте системы. Скрипты написаны на языке shell-script классического Boure Shell (sh).
Исторически сложилось так, что существует две системы инициализации:
Они отличаются друг от друга организацией стартовых скриптов: как они называются, в каких директориях располагаются, последовательность вызова и т.д.
В Linux наибольшее распространение получила система инициализации System V. Ее используют такие дистрибутивы как:
и многие другие.
Система инициализации BSD используется в дистрибутиве Slackware Linux и его производных.
Если говорить о SystemV — это очень строгая система инициализации. где шаг вправо или влево — расстрел на месте. Правда некоторые дистрибутивы (не буду тыкать в них пальцем, хотя это был Red Hat) даже из такой строгой системы могут сделать чёрт те что и сбоку бантик.
В системе инициализации BSD не наблюдается строгих правил, но соблюдаются определенные принципы её построения. Поэтому если рассматривать дистрибутивы и операционные системы использующие ее, можно сказать, что это организованный бардак :). Т.е. нет двух похожих систем в которых совпадало бы именование файлов и их порядок вызова. Но все прекрасно понимают как это работает.
BIOS -> загрузчик -> ядро -> init
При запуске PC совместимого компьютера происходит следующая последовательность действий:
Ядро стартует и кроме основных действий подключает корневую файловую систему в режиме только для чтения, а так же запускает самую первую программу в системе - init.
То есть, в результате мы имеем:
Дальнейшие действия, которые будут выполняться при старте системы, во многом зависят от конфигурации программы init.
Так же хочется обратить ваше внимание на то, что до этого момента ещё не важно какая система инициализации используется. Не зависимо от неё во всех Linux сначала запускается init. А вот какая система инициализации будет использоваться в дальнейшем зависит от того как сконфигурирован init.
Как говориться: "Всё течёт, всё меняется". В современных дистрибутивах наблюдается тенденция к использованию отличных от классического init систем. По моему мнению, это связано с распространением Linux на рабочих станциях, где большую роль играет время загрузки.
Не хочу копипастить материалы у себя, просто приведу ссылочку на хороший перевод статьи, посвященной systemd.