История изменений
Исправление zhuravlik, (текущая версия) :
На данный момент ирония судьбы такова, что можно, наоборот, выкинуть всё, кроме busybox и ядра, а система вполне себе грузится.
Это все понятно.
Но почему-то мне казалось, что systemd позиционируется как замена busybox'у в текущем варианте загрузки.
Без systemd процесс загрузки во многих дистрибутивах идет так:
1) initramfs с минимальным userland, который инициализирует разную ересь, которая может быть нужна для полноценной загрузки (девайсы, сетевые файловые системы и т.п.). Здесь важно, что этот userland должен быть и правда минимальным, поэтому долго использовался klibc, затем многие переползли на busybox во избежание поддержки двух разных libc в одной системе.
2) из этого initramfs руками дергается нормальный /sbin/init
Насколько я понял, systemd (в теории) может решить эту проблему, выполняя оба этих шага в одиночку. Достаточно написать соответствующий код, который будет инициализировать всю эту ересь на первом этапе. А второго этапа в этом случае просто нет, после инициализации нужных запчастей сразу стартуют другие важные для системы сервисы.
По-моему, это и подогрело интерес к systemd со стороны мэйнтейнеров, для которых поддержка оного меньшая PITA, чем двухступенчатая загрузка. Хотя забавно, что при этом initramfs для чего-то все-таки сохраняется. :)
Если я неправ - пишите, в чем. :)
Исходная версия zhuravlik, :
На данный момент ирония судьбы такова, что можно, наоборот, выкинуть всё, кроме busybox и ядра, а система вполне себе грузится.
Это все понятно.
Но почему-то мне казалось, что systemd позиционируется как замена busybox'у.
Без systemd процесс загрузки во многих дистрибутивах идет так:
1) initramfs с минимальным userland, который инициализирует разную ересь, которая может быть нужна для полноценной загрузки (девайсы, сетевые файловые системы и т.п.). Здесь важно, что этот userland должен быть и правда минимальным, поэтому долго использовался klibc, затем многие переползли на busybox во избежание поддержки двух разных libc в одной системе.
2) из этого initramfs руками дергается нормальный /sbin/init
Насколько я понял, systemd (в теории) может решить эту проблему, выполняя оба этих шага в одиночку. Достаточно написать соответствующий код, который будет инициализировать всю эту ересь на первом этапе. А второго этапа в этом случае просто нет, после инициализации нужных запчастей сразу стартуют другие важные для системы сервисы.
Если я неправ - пишите, в чем. :)