> Странно, что никто не говорит о том, что неразумное (а оно неразумное)
> усложнение одной из ключевых подсистем неизвежно увеличивает и вероятность появления уязвимостей. В чём усложнение, если не секрет ?
В том, что в поставке сразу 69 бинарников ?
Т.е. если эти 69 бинарников поставлять в виде отдельных пакетов, то будет проще ?
Не уж-то вы думаете, что каждый из бинарников в отдельности такой уж сложный ?
Вы заглядывали в исходники ? Там исходники каждого бинарника хранится в своей папке. Что там сложного ?
> А если учесть, что определенных целей у проекта просто нет (принципов KISS он не придерживается), то появление уязвимостей в systemd практически неизбежно.
Если бы целей не было, то не было бы и данного проекта.
Я думаю, что основная цель - это унификация и плюс наведение порядка в системе - любые настройки можно описать в юнитах, единый стандарт, именно поэтому systemd управляет не только демонами, но и устройствами и ещё много чего задевает. Например, чтобы при подключении устройства мог запуститься демон, а при его отключении - запуститься другой и всё это описывается в юнитах. Так же можно примонтировать том по событию или отмонтировать и т.д. Любое действие в системе настраивается по одному стандарту. И юнит написать намного проще скрипта, разобраться в чужом юните также проще, чем в чужом скрипте. Допустить ошибку в скрипте проще, чем в юните. юнит будет быстрее выполняться и занимать меньше места. В скриптах часто дублируется код. Но если для настройки юнита не достаточно, то всегда можно написать скрипт на любом языке.
Вы думаете, что systemd включает в себя много лишнего и добавляет в себя всё подряд, а на самом деле systemd - это не один бинарник, а множество. systemd - это множество утилит.
Например вы можете сказать, зачем в систему инициализации добавили поддержку QR-кодов, действительно глупо добавлять в систему инициализации такую поддержку. Но на самом деле система инициализации в systemd - это малая часть из всех её бинарников(модулей) и поддержка QR-кодов в неё не входит, а реализована в виде дополнительной утилиты, которая не обязательна, которую можно удалить или заменить, а зачем её добавили ? Да может быть затем, что автор захотел добавить возможность шифрования логов, ключ к шифру которых может изменяться со временем и чтобы его не запоминать администратору он сделал вывод его на экран в виде QR-кода, который можно просто сфотографировать, а потом показать эту фотографию.
Поэтому systemd - это не система инициализации, а это базовый набор компонентов, который призван сделать систему полностью работоспособной(это и есть цель) и этот набор включает в себя в том числе и систему инициализации. Количество утилит может увеличиваться, но каждая из них несёт какой-то смысл и для чего-то нужна. И не обязательно их все использовать и устанавливать. Также большинство из них можно заменять на свои, кроме базового минимума.