LINUX.ORG.RU
ФорумTalks

Эссе про systemd, иниты до него и Linux вообще

 , , , ,


3

2

TL;DR здесь: https://blog.darknedgy.net/technology/2020/05/02/0/index.html

Короткое чтиво на пять минут, рекомендую к прочтению и обсуждению.


Бегло вспоминают историю взлёта Linux и филосовские вопросы «cathedral vs. bazaar», идеологический спад из-за корпораций и «облаков».

Далее рассматривается sysvinit и его внутренности, ранние попытки по его инкрементальному улучшению, разница между dependency based и events based.

Далее рассматривается upstart, launchd из macOS и, собственно, systemd. systemd берёт лучшее из обоих и называет это socked based. Объясняют мотивацию появления kdbus.

Далее про внедрение systemd в дистрибутивы, про GNOME. Цитата:

Most pertinently of all, Russ Allbery’s highly influential summary of the Debian init situation in December 2013, in section 3.1. “Ecosystem Reality Check” conceded that the real debate was never systemd-vs-the-alternatives, but how-much-of-systemd:

Дальше критика systemd, до которой я ещё не дошёл. x3

★★★★★

Последнее исправление: commagray (всего исправлений: 1)

Ответ на: комментарий от crypt

Волновать стоит, потому что это качественная историческая справка с техническими подробностями и ссылками на драмы по поводу в рассылках.

commagray ★★★★★
() автор топика
Ответ на: комментарий от abcq

Проект «LINUX.ORG.RU: Русская информация об ОС Linux» был основан в октябре 1998 года. Нашей целью является создание основного информационного ресурса об операционной системе Linux в России

Потому что онтопик?

commagray ★★★★★
() автор топика

Мне казалось, что systemd должен волновать только админов. Что там стартует кеды на десктопе - мне без разницы.

С другой стороны, отсутствие документации как таковой + наркоманские сообщение об ошибках - это очень печально.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Shadow

Там об этом пишут.

Well, systemd is a suite of components that people build OSes from. As such it isn’t really an app you install on top of your OS, it’s more a toolset for distro and device builders. Now, if end users have questions about details how they can uses these devices and distros, then I figure they should always contact the manufacturers of these devices, and the distro developers first.

Or in other words: we are not the final product that people should interface with, we just provide a set of components where other people can build final products out, and by doing so they also need to take the responsibility for providing a first level of help for it.
commagray ★★★★★
() автор топика
Последнее исправление: commagray (всего исправлений: 1)

Дальше критика systemd

Замечу, что критика не собственно концепции systemd, а конкретных деталей реализации. Во многих аспектах с автором сложно не согласиться, хотя мне, с моим 10 летним опытов работы с systemd, с этими вещами на практике и близко сталкиваться не приходилось.

gremlin_the_red ★★★★★
()

поздравляю автора блога и ТС с поздним зажиганием.

crypt ★★★★★
()

О, кстати, вопрос. Когда я админством обмазывался была разница между работой с сервисами напрямую через /etc/init.d/peniservice start и service start peniservice. Заключалась она в том, что утилита service правильно работала с selinux context. Как с этим обстоят дела в systemctl?

DELIRIUM ☆☆☆☆☆
()

Короткое чтиво на пять минут

Дальше критика systemd, до которой я ещё не дошёл. x3

Пяти минут не нашлось?

eternal_sorrow ★★★★★
()

Dark’n’Edgy ещё живы? Давно я туда не влезал.

hateyoufeel ★★★★★
()

Мне 5 минут не хватило, чтоб это чтиво прокрутить.

lenin386 ★★★★
()
Ответ на: комментарий от commagray

не слушай тех кого не волнует, меня волнует, молодец что притащил, я обязательно почитаю.

deep-purple ★★★★★
()

СисьтемДы веха в развитии линукса. Накопилось слишком много дедовского легаси. Как в коде, так и в подходах. Но хипстеры выпилили всё это говно. Теперь будет развитие.

ox55ff ★★★★★
()
Ответ на: комментарий от DELIRIUM

если очень кратко и без нюансов то /етц/инит.д/* просто вообще не пашет а сервице старт алиас к системдику.

deep-purple ★★★★★
()

до которой я ещё не дошёл

Можно сразу переходить к разделам 4.1 и 4.2. Автор считает, что монструозный сверхтяжёлый systemd идёт путём HAL-а, поэтому будет выпилен, когда в ядре доделают BPF и переложат часть функций systemd на модули ядра. Тогда перестанет иметь значение, кто init.

question4 ★★★★★
()

Что обсуждать то? Историю как все развивалось - ну это уже есть, обсуждать нечего. systemd - по факту стандарт, если говорить о промышленной эксплуатации онтопика то тоже обсуждать нечего. На локалхосте может быть что угодно, обсуждать вкусовщину это такое себе занятие.

идеологический спад из-за корпораций и «облаков»

Интересно было бы посмотреть на текущее положение дел в онтопике, если бы в свое время им не заинтересовались корпорации.

micronekodesu ★★★
()

systemd – это одна из лучших вещей, которая случалась с линуксом.

Да, как-то так.

fornlr ★★★★★
()

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

В итоге имеем ситуацию, что тебя что-то затрагивает, ты начинаешь писать патч, сабмитишь и встречаешь тупо пустой взгляд и стену непонимания вида «постой… чувак… а в чём вообще смысл твоего патча? работало так, теперь работает эдак, ну и какая разница». А потом ты тратишь полдня, разжёвывая блин Леннарту, что разница вообще-то есть.


А вообще забавно, что на протяжении всей главы про критику автор, по сути, копается в мелочах (технически важных, да, но в мелочах). Критиковать саму концепцию вменяемого и однообразно устроенного base userspace никто даже не пытается.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Замечу, что критика не собственно концепции systemd, а конкретных деталей реализации. Во многих аспектах с автором сложно не согласиться, хотя мне, с моим 10 летним опытов работы с systemd, с этими вещами на практике и близко сталкиваться не приходилось.

я автора-ноунейма не читал, но сталкивался с идентичной ситуацией на centos7 и на freebsd: при опр. обстоятельствах fsck не может исправить ошибке на томе и система не грузится. угадайте, где проще было разбираться (без доступа в интернет) в скриптах или в бинарниках. вот где-то после этого отношение к systemd стало однозначным.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от crypt

в текстовых скриптах бинарного шелла или в текстовых конфигах бинарного systemd.

Починил. Ставлю на конфиги, в мешанине убогих кривых говноскриптов разобраться нереально.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Починил. Ставлю на конфиги

вообще не понятно, к чему это. ты, кажется, ситуацию даже не понял. в systemd внутри кода exec(fsck).

в мешанине убогих кривых говноскриптов разобраться нереально.

я почему-то разобрался без проблем. видимо, за свои десять+ лет я успел больше.

crypt ★★★★★
()
Ответ на: комментарий от gremlin_the_red

бинарного шелла

Шелл хоть и бинарный, но простой как валенок.
А конфиги системды вообще неочевидные, с тоннами подводных камней, и чтобы с ними разбираться, надо быть штеудфхом 80 уровня.

TheAnonymous ★★★★★
()
Ответ на: комментарий от question4

Пихание Убунты в контейнеры в качестве «промышленного» решения чем-то сродни использованию ручки от вантуза вместо свечей от геморроя.

LittleKawaiiNeko ★★
()
Ответ на: комментарий от question4

Его туда пихают просто потому что туда пихают целиком образ, плюс потому что куча вещей зависит от libsystemd за каким-то чёртом. Но никто в здравом уме не запускает systemd в контейнере, потому что, ещё раз, там не нужны система инициализации. Нечего инициализировать.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

куча вещей зависит от libsystemd за каким-то чёртом

Об этом и речь.

question4 ★★★★★
()
Ответ на: комментарий от LittleKawaiiNeko

Пихание Убунты в контейнеры в качестве «промышленного» решения чем-то сродни использованию ручки от вантуза вместо свечей от геморроя.

Я говорю о сложившихся практиках, а не об их правильности :)

question4 ★★★★★
()

systemd is an event-driven object manager with dependency-like side effects

То есть побочные эффекты похожи на зависимости, но выполнение зависимостей не гарантировано. Указывающим на нерабочие зависимости Поттеринг хамит.

Service starts and restarts can thus be nondeterministic

Результат запуска более 1 службы одновременно в общем случае не детерминирован.

most people have an incorrect ‘folk’ mental model of systemd’s operation, which the developers have not seen fit to actually write a proper specification for, despite it being a decade now and a well-entrenched standard

Большинство пользователей неправильно понимают принципы работы systemd. За 10 лет так и написали документацию, что способствует распространению и укоренению заблуждений.

Devices and targets have no failure state … which made [OnFailure= directives] no-ops!

Мы несколько дней потратили, пока не пришли к выводу, что не следует использовать OnFailure.

Poettering has called JOB_IGNORE_DEPENDENCIES an “awful invention,” “frickin’ ugly” and also a “horrid invention,”

Не понял, почему тогда не заменил на что-то получше.

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 4)
Ответ на: комментарий от question4

Throughout the years, people have either grown accustomed or found interesting ways to make features out of systemd failure conditions, bugs and quirks, which can make attempts to “fix” semantics to be more consistent actually break many use cases that depended on said inconsistency.

Люди успели привыкнуть к странностям systemd и активо их используют. Поэтому если его починят, всё отвалится.

minor enhancements to systemd’s state machine can have disproportionate effects … that core developers cannot foresee … This raises serious doubts about the possibility of systemd being reformed or overhauled

Столько накрутили, что сами не понимают, и чинить страшно.

people avoid getting smacked by the job engine by not using much of it

Большинство пользователей не знакомы с полезными фичами и не пользуются ими. И боятся изучать.

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 2)
Ответ на: комментарий от K50

Я конечно админ всего лишь локалхоста, но мне кажется очень немаловажным, чтобы знания по поводу запуска сервисов не нужно было множить по числу дистрибутивов. А так умеешь в системд, значит умеешь в любом линукс дистре сервисами рулить, а не вспоминать, а что там на 3-ей слева впске и какие команды писать раз в пол года?

Loki13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.