[devel] Разделение миров systemd и sysv

Leonid Krivoshein klark.devel на gmail.com
Чт Мар 25 21:33:07 MSK 2021


25.03.2021 20:28, Alexey Shabalin пишет:
> чт, 18 мар. 2021 г. в 01:43, Dmitry V. Levin <ldv на altlinux.org>:
>> On Wed, Mar 17, 2021 at 11:00:08PM +0300, Alexey Shabalin wrote:
>> [...]
>>> 2) предлагаю под systemd перейти на dracut вместо make-initrd.
>> А зачем?
>>
>> Дело в том, что make-initrd был сделан в ALT и для ALT, мы умеем его
>> готовить.  Что даст замена make-initrd на dracut, помимо утраты
>> компетенции в этой области?
> А куда денется компетенция в этой области? Она просто так не испарится.
> Из плюсов в dracut (в сравнении с make-initrd):
> - Используется во многих дистрибутивах: fedora, RHEL, openSUSE, Void.
> - Не используется по-умолчанию, но может использоваться и присутствует
> в репо у Gentoo, Debian, OpenMandriva, Magea, Arch
> См. - https://en.wikipedia.org/wiki/Dracut_(software)
> - разобраться в работе dracut не сложнее, чем в make-initrd
> - понятная документация. (по документации make-initrd не всегда
> получается ожидаемый результат. например чтобы получить shell в
> initrd, прочитать документацию по make-initrd недостаточно, пришлось
> еще залезть в код и смотреть как он работает.)
> - многие апстримы сразу поддерживают dracut (plymouth, ignition). Для
> make-initrd нужно реализовывать этот функционал самостоятельно.
> - dracut может также использоваться на системах с sysv, но я не
> предлагаю вам этого делать :)
> - внутри initrd используется systemd, такой же как и в системе, как
> следствие более понятная и единообразная загрузка системы. Более
> плавная что ли :) не знаю какое определение подобрать :)
> - больше различных модулей. например systemd-networkd. Ожидать его
> поддержки в make-initrd просто не реально.
>
> Минусы make-initrd
> - используется только в одном дистрибутиве
> - проект одного человека
> - Компетенции поддерживать предыдущие стабильные версии без основного
> разработчика у нас также нет. А его по понятным причинам не интересуют
> стабильные бранчи. Поэтому в p9 пришлось переходить на make-initrd2.
> - как в любом открытом проекте, необходимую фичу придется
> разрабатывать самостоятельно. тут нет никакой разницы с dracut.
>
> PS: to legion@ я ценю и уважаю проделанную тобой работу. Ни в коем
> случае не хочу как-то принизить твои заслуги.

Во многом согласен и добавлю:

- На текущий момент более 300 разработчиков, более года назад смотрел -- 
их было 60.
   Многие из них так же пилят systemd, который event-driven на Си, а не 
скриптах.
- Значительно более широкая поддержка всего, с чего можно загрузиться.
   К примеру, не хватившей у нас на днях DASD на Power9:
https://git.kernel.org/pub/scm/boot/dracut/dracut.git/tree/modules.d/95dasd
- Более простая и ясная для меня реализация этой поддержки -- shell, а 
не make.

Тем не менее, очень мало случаев, где именно systemd может понадобиться 
в rescue/live/install в stage0. И потому выбор средства создания 
initrams должен быть за выпускающим меинтейнером, а подтягивание в 
make-initrd нужных фич даже из того же dracut -- не делом одного 
разработчика. От возможности выбора (в репозитории) и честной 
конкуренции уж точно хуже не будет.


Отдельно отмечу: мы начали на практике осваивать фичу pipeline и она 
реально впечатляет. Очень хочется избавиться от propagator хотя бы к 
p10. Это даст возможность грузиться с шифрованных томов LUKS1, LUKS2, 
токенов, это обеспечит запрашиваемый иногда аналог liveroot из Ubuntu, 
избавит нас от старого хлама. legion@ проделал большую работу для этого.


-- 
Best regards,
Leonid Krivoshein.



Подробная информация о списке рассылки Devel