3

Я работаю над облегченной версией Linux не по какой-то конкретной причине, кроме как посмотреть, как мало я могу сделать это. Мне было интересно, нужен ли INIT, или я могу выполнить все связанные с INIT задачи (fsck, unmounting и т.д.) С помощью сценариев hand/bash?

Мне не нужна многопользовательская функциональность (или многое в этом отношении). Я начал с установки Gentoo 2.0.2 с ядром 2.6.38.

2 ответа2

6

Прежде всего, вы должны различать две вещи: программу с именем init и процесс init, который linux запускает после загрузки и выполняет базовый запуск - который также называется ядром init .

Первая - это программа, как и любая другая, задача которой - инициировать запуск системы, запуская различные другие программы и управляя их закрытием. Самая популярная программа, подобная этой, это sysvinit. Это самая популярная реализация "родителя всех процессов", встречающаяся в большинстве стандартных дистрибутивов Linux и обычно существующая как /sbin/init .

Вторая - просто команда, которую ядро Linux знает и запускает автоматически при загрузке. Таким образом, вы можете указать ядру запустить любую другую программу вместо init. Например, популярный подход к восстановлению системы - указать linux запустить /bin/bash или апплет /sbin/busybox (см. Комментарии ниже). Это можно сделать, указав имя программы в качестве параметра загрузки (например, init=/bin/bash).

Обратите внимание, что при выходе из процесса init система останавливается и становится практически непригодной для использования.

Помимо bash и busybox, есть несколько замен init, которые могут делать более или менее то, что делает init. Возможно, вы захотите взглянуть на minit, runit, cinit, jinit, upstart или initng. Но если вы стремитесь к абсолютно минимальному решению без параллелизма запуска или расширенных функций, busybox может быть лучшим выбором.

4

Нет, не совсем. Вы можете запустить ядро с параметрами init=/bin/bash для очень минимальной системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .