Почему процесс init первого уровня помещается в / sbin? - PullRequest
0 голосов
/ 14 апреля 2020

В Linux необходимые исполняемые файлы, которые должны быть доступны в однопользовательском режиме, должны быть помещены в / bin. Однако 'init' помещается в / sbin. Это правильно?

1 Ответ

0 голосов
/ 14 апреля 2020

Почему инициализация процесса первого уровня помещается в / sbin?

Стандарт иерархии файловой системы (FHS) и fhs-3.0 говорит, что:

Утилиты, используемые для системного администрирования (и другие root -только команды), хранятся в / sbin, / usr / sbin и / usr / local / sbin. / sbin содержит двоичные файлы, необходимые для загрузки, восстановления, восстановления и / или восстановления системы в дополнение к двоичным файлам в / bin.

Поскольку процесс init является двоичным файлом, необходимым для загрузки системы, естественно поместить его в каталог /sbin (если следовать стандарту).

В Linux необходимые исполняемые файлы, которые должны быть доступны в однопользовательском режиме, должны быть помещены в /bin.

Да, стандарт говорит об этом. Тем не менее, нет необходимости, нет принуждения. Да, большинство дистрибутивов помещают необходимые исполняемые файлы в каталог /bin, так как это то, что стандарт говорит, что они должны быть там размещены, поэтому естественно размещать их там. Вы можете делать с вашей системой все, что хотите, и иметь собственную структуру каталогов, которую вы желаете.

Однако 'init' помещается в / sbin. Это правильно?

Как правило, как соглашение, да. Тем не менее, вы можете передать init= параметр командной строки ядра и в основном init=/place/your/init/binary/anywhere/you/want. Первое место, которое ядро ​​ищет для процесса запуска, - /sbin/init.

И да, /sbin имеет двоичные файлы, необходимые для загрузки системы, необязательно для администрирование системы, когда файловая система не смонтирована.

Может ли init (systemd) не работать в однопользовательском режиме?

Вкл. система без systemd никогда не работает.

...