Что делает init в Ubuntu?

13

Я уже знаю, что initэто волшебная программа, необходимая для загрузки вашего компьютера и управления уровнями выполнения, но какова ее реальная цель?

Зачем нам вообще нужно initв первую очередь? Почему загрузчик не может сказать Upstart, какие программы запускать и не запускать?

Этот вопрос в (позднем) ответе на мой вопрос " Что будет, если initего удалить"? вопрос.

Каз Вулф
источник
initэто мать всех процессов.
Ctrl-Alt-Delor
Проще написать функциональность initпользовательского процесса, чем записать его в ядро. Если это написано в ядре, то кто-то добавит процесс, starterкоторый будет выполняться в пользовательском пространстве, который будет более гибким. Таким образом дублируется функционал. Поэтому лучше держать часть ядра максимально простой.
Ctrl-Alt-Delor
man init > "What does init on Ubuntu do"и прочитайте его в домашней папке
αғsнιη

Ответы:

6

См. Руководство initпо Unix-системам .

Это сообщение из записи в Википедииinit :

В компьютерных операционных системах на основе Unix init (сокращение от инициализации) - это первый процесс, запускаемый во время загрузки компьютерной системы. Init - это процесс-демон, который продолжается до тех пор, пока система не будет закрыта. Он является прямым или косвенным предком всех других процессов и автоматически принимает все потерянные процессы. Init запускается ядром с использованием жестко закодированного имени файла, и если ядро ​​не может его запустить, возникает паника ядра. Init обычно назначается идентификатор процесса 1.

Конструкция init отличается в Unix-системах, таких как System III и System V, от функциональности, предоставляемой init в Research Unix и его производных BSD. Использование в большинстве дистрибутивов Linux в некоторой степени совместимо с System V, но некоторые дистрибутивы, такие как Slackware, используют стиль BSD, а другие, такие как Gentoo, имеют свою собственную настроенную версию.

Несколько реализаций инициализации замены были написаны с попыткой устранить ограничения дизайна в стандартных версиях. К ним относятся launchd, Service Management Facility, systemd и Upstart, последний используется Ubuntu и некоторыми другими дистрибутивами Linux.

Надеюсь, это поможет вам объяснить это; это много читать.

Марк Кирби
источник
3

upstartи systemdявляются initсистемами. По соглашению (и , возможно , других ограничений), программа по - прежнему называется init, независимо от того , systemdили upstartили что - то еще в игре. Не позволяйте названию процесса обмануть вас. PID1 больше не является SysV init. Это не было в течение достаточно долгого времени на Ubuntu.

Мур
источник