LINUX.ORG.RU

Разработчик из команды Gentoo выступил с критикой systemd

 ,


10

4

Большую бурю споров вызвала сегодняшняя запись в блоге одного из участников команды Gentoo Linux Патрика Лойера. В ней он с критикой прошёлся по systemd, её концепции и разработчиках.

Ниже привожу свой перевод его публикации.

Пропагандистам Systemd: это отстой!

Сегодня я получил ссылку на пост Леннарта Поттеринга по итогам обсуждений в листах рассылки Debian ... хм... даже толком не знаю о чем.

Поэтому мне хочется разобрать все по полочкам.

Разработчики ядра хотят, чтобы в юзерспейсе существовала система разрешения конфликтов для CGroups. В системах с systemd этим как раз systemd и является, и вам не удастся лишить ее этой функциональности.

Без понятия, что это значит, наверное они хотели сказать «нам лень».

Я уверен, что ребята из Ubuntu даже близко не понимают сложности этой проблемы.

Забавное косвенное оскорбление, но CGroups *не* сложные. Я убежден, что понимаю их общую концепцию, сегодня днем я уже успел написать начальную поддержку OpenRC.

Разумеется, Control groups лежат в основе того, что требуется от современных серверов.

... что? Нет. Сервер должен служить (и защищать? постойте, не тот девиз). CGroups - просто еще одна технология, которую будут игнорировать сисадмины. В ней нет никакой магии, она не сложнее работы с ulimit.

API, предлагаемый systemd, очень systemd-специфичный.

Не уверен, что смысл тавтологии верен. Недостатка проектирования недостаточно. Может быть, это правильно.

Ясно, что сейчас большая часть экосистемы Linux уже использует API systemd...

Помню эту штуку... возьми, расширь... смысл? Возможно имеет смысл создать стандартные API и использовать их где угодно вместо того, чтобы применять прибитые гвоздями хаки с DSL вследствие плохой архитектуры.

В принципе демон D-Bus уже реализован внутри самой systemd (и в ядре), и логика работы не уже может обходиться без него. Фактически при переходе на systemd логика работы распределится на несколько демонов, которые для активации должны быть описаны в юнит-файлах .busname и .service, а не в старых конфигурационных файлах.

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

Теперь один из самых сложных компонентов - перегруппировка сервисов, преобразование старых dbus1 сообщений в kdbus GVariant, преобразование их обратно в сокет-сервис systemd, и это из sysetmd не вырвать даже с корнями.

Нет, с такого суждения начинать нельзя. Кто-то задастся вопросом: а почему форматы сообщений kdbus и dbus отличаются, когда одна система есть замена другой? И только то, что это часть sysetmd и она никак не документирована, еще не означает, что ее нельзя аккуратно вырезать и заставить работать отдельно или написать с нуля как самостоятельный инструмент. Игнорирование (или непрофессионализм?) в приведении этого утверждения заставило меня вспомнить пользователей windows, которые ругают Linux потому, что в нем нет красивых GUI...

Разумеется, logind - один из тех компонентов systemd, в документации которого мы явно указали, что его никак нельзя убрать.

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

Спустя несколько месяцев после того, как это сделали в Canonical, все снова cломалось, как мы и ожидали: сейчас logind использует новые API для работы с CGroups.

«Когда ломаешь вещи, они ломаются»... Единственная причина того, что ничего не работает это... отсутствие документации и ломающие изменения. И такие нелогичные высказывания сами тому подтверждение.

...связывающий слой в юзерспейсе Linux в настоящее время разрабатывается как большая часть systemd.

«Мы теперь даже не прикидываемся, что понимаем философию Unix.» Репозиторий systemd - скорее помойка, чем что-то еще, его нужно разделить (на подмодули), чтобы независимые компоненты были независимыми. НЕТ никакого смысле держать в одном репозитории udev, hwdb или еще десяток несвязанных друг с другом вещей.

Для меня это также означает отсутствие планов на будущее и управления проектом, ведь все просто рандомно свалено в кучу без логического обоснования.

Учтите, что logind, kdbus или CGroups - это новая технология, мы ничего не поломали, просто написав их. Следовательно нет никакой регрессии, мы просто добавили новые компоненты, которые, по нашему мнению, будут крайне интересны пользователям.

CGroups - «старая» штука, новое - это просто заставлять всех использовать их по-другому. Это противоречит документам по разработке systemd, которые теперь считаются неверными после того, как были Единственной Верой для нас в течение нескольких лет. Сложно понять, что сегодня в меню, когда оно меняется так часто...

И может быть, если кто-то нормально напишет, что должен делать LoginD (а не просто даст дамп API, который никому ни о чем не говорит, чукча не читатель!), мы смогли бы выполнить правильную реализацию где угодно и не заставлять людей ломать свои системы, чтобы наконец logind делал то, что должен делать. Свинпаук, свинпаук делает то, что он делает [прим. ссылка на «Симпсоны в кино»]

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

... простой? По-моему это слово означает не то, что вы думаете! (Не для 200 тысяч строк кода для того, что можно быть написать и в 35 тысячах.)

Я просто надеюсь, что вы делаете это, зная, что это всерьез и надолго.

Итак, подведу итог. Никто не сможет реализовать то, что делает systemd, и поэтому вы вынуждены ее использовать. Это так прекрасно, что не стоит даже пытаться искать что-то еще!

Простое чтение этой пропаганды очень меня расстроило своим уровнем лжи и запутывания, не понимаю, как у нас может получиться нормальная дискуссия с ними. Все доводы либо логически противоречивы («Никто не может написать logind без использования logind») или ошибочны («Cgroups лежат в основе того, что требуется от современных серверов»).

В то же время все, кто с ними не согласен - старообрядцы... или неграмотные... или кто угодно. В любом случае, ВЫ КОЗЛЫ и я победил в споре! или что-то такое.

Ах, да. Если кто-то ожидает рациональной дискуссии в то время как вы просто порождаете кучу флейма и тратите время, вместо того, чтобы что-то улучшать и доводить до совершенства... то это будет просто скучно.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: Dendy (всего исправлений: 3)

Еще одно нытье ни о чем. Вода-вода, ни одного технического аргумента. Впрочем, как и у сторонников перехода, наверное.

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

Еще одно нытье ни о чем. Вода-вода, ни одного технического аргумента.

Молодец, ты пересказал кратенько речь гентушника о том, что разрабы системди ноют, что дебиан и убунта не хотят переходить на системди. И при этом сами же разрабы сустемди не дают ни одного технического аргумента.

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

Я так и сказал:

Впрочем, как и у сторонников перехода, наверное.

Не вижу смысла преподносить как новость чьи-то эмоции (а в «статье» ничего кроме эмоций и фрустрации нет).

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

половина новостей в мире это чьито эмоции.

erzent ☆☆
()
Ответ на: комментарий от vurdalak

Ах, да. Если кто-то ожидает рациональной дискуссии в то время как вы просто порождаете кучу флейма и тратите время, вместо того, чтобы что-то улучшать и доводить до совершенства... то это будет просто скучно.

daemonpnz ★★★★★
()

eudev и openrc рулез. поттеринг пусть хавает жованы штаны.

punya ★★
()

считаю что новость нужно переоформить, глаза сломал пока читал.
p.s. писал в тред на первой странице.
p.p.s. да будет срач!

etwrq ★★★★★
()

В генте сейчас самый правильный подход. Дают юзеру самому выбирать какой инит ему юзать. В итоге и фанбои поттеринга рады и Ъ-олдфаги.

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

не знаю,сидел на сусе с системд,вполне реально,проблем даже вначале особо не было.На кальке пока не пробовал,вот думаю на виртуалке попробовать.

erzent ☆☆
()
Ответ на: комментарий от vurdalak

вообще-то текст с объяснением почему письмо Леннарта не содержит технических аргументов, противоречиво и нелогично.

Я впрочем не полностью согласен с Патриком, но это уже мелкие детали.

qnikst ★★★★★
()

Наконец-то кто-то это сказал. Ждём извинений и коробку шоколадных концет Леннарту Поттерингу после того как головорезы из Red Hat придут и к нему. А то их линукс что-то не продаётся, программистам платить нечего, поэтому по вкладу в ядро Red Hat уже несколько раз был не первый. Вот и повели себя грубо в прошлый раз.

Вот доделают Systemd, включат в RHEL, а потом выбросят, сделав вместо него что-то принципиально новое. Как уже сделали с HAL, ALSA и собираются сделать с Xorg.

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

А почему Debian не рассматривает тот же openrc как возможный вариант?

(без злого умысла спрашиваю, если что)

alpha ★★★★★
()

bonsaikitten(ник Патрика в IRC) как всегда ЖЖОТ - респект ему. Не во всём с ним согласен, но большинство тезисов резонны

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

Как уже сделали с HAL, ALSA
ALSA

wat?

P.S. Только не надо заливать про Pulseaudio и OSS4 - у меня их ни на одном моём десктопе нет. Десктопы правда с KDE4, может в Gnome это прибито гвоздями, утверждать не буду...

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

дебиан не ищет лёгких путей,он любит мучить юзеров . Сколько было когда то конфликтов с использованием нескольких DE на одном пк к примеру....

erzent ☆☆
()

Поддерживаю гентушников. Первая и последняя заповедь: работает - не трожь. Ни разу за все время не понадобились какие-либо специфичные фичи systemd. Надеюсь технический совет Дебиана образумится.

spoilt ★★★
()

В такие моменты я задумываюсь о переходе на генту. Там есть адекватные люди!11

anonymous
()
Ответ на: комментарий от alpha

технический комитет рассматривает, но то, что его примут стандартным для linux ports маловерояно. Дебианодевы говорят, что многим хочется фич типа socket activation и event based чо-то-там (цитата с сегодняшнего разговора). Правда юзкейсы где socket activation действительно нужно в таком виде как оно есть, и что конкретно понимается под event based, не были приведены (ждем обновления инфы). А вот для не-linux портов есть все шансы.

Ну и debian очень не хочет трогать тонны своих древних инитскриптов (в рамках GSoC даже сделали хаки, чтобы openrc из запускал (урезав 2/3 фич openrc)), это тоже не играет на руку поддержке openrc в debian.

qnikst ★★★★★
()

с системд плохо, без него - еще хуже.

Я бы на месте Патрика Лойера написал бы свой system2d, который в тех. плане заваливал системд с потрохами, при этом всем имел компатибилити с всем, что нужно.
И тогда можно забросать Поттеринга в открытую, с матом и оскорблениями.

Итого: мир получил бы более качественное поделие и узнал о том, какое же Поттеринг днище.

reprimand ★★★★★
()

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

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

Хотел то же самое спросить.

А макосевскую launchd можно прикрутить к линуксу? Вроде open-source, apache license же уже.

Вот ты изучи этот вопрос и нам расскажи. :)

anonymous
()

Репозиторий systemd - скорее помойка, чем что-то еще, его нужно разделить (на подмодули), чтобы независимые компоненты были независимыми. НЕТ никакого смысле держать в одном репозитории udev, hwdb или еще десяток несвязанных друг с другом вещей.

Чувак просто жжот не по детски! Особенно с учетом того что есть еще одна подобная помойка где тоже не о каком разделении никто и никогда не слышал.

В генте сейчас самый правильный подход.

Lavos это сама суть метадистрибутива коим и является gentoo. Но все равно спасибо капитан.

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

> Это же опенсорц, детка: Дали дерьмо - жри, и не спорь с автором!

Всё не так. Помнишь зачем Столлман сделал GNU? В то время компы часто менялись. Не было так что год назад друг давал тебе программу, сейчас она понадобилась, и ты её просто так, без пересборки, запустил. Open Source позволяет не только работать в том, что больше всего нравится, но и дописывать эти программы самому!

Для меня Linux это быстрая и не глючная операционная система, удобная в работе. Но это применимо только к графическим оболочкам GNOME 2 и KDE 3. И я их использую. Так что ты не прав.

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

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

qnikst ★★★★★
()

Я та понимаю им не понравилось то, что ее нет необходимости все время собирать?

RiseOfDeath ★★★★
()
Ответ на: Хотел то же самое спросить. от anonymous

Ну пишут, что Убунту в 2006 что-ли и хотела ее прикрутить. Только тогда лицензия мешала. Теперь с лицензией все ок. Так что, видимо, прикрутить можно.

kovrik ★★★★★
()

Уровень разработки гентушников отлично показан:

Без понятия, что это значит
сегодня днем я уже успел написать начальную поддержку OpenRC

(учитывая что «CGroups - «старая» штука»)

не понимаю, как у нас может получиться нормальная дискуссия с ними

(у арча и опенсусе как-то получилась дискуссия, а гентушники и так велосипедов мало изобрели)

Итого: еще один школьник с мотивацией «Назло мамке уши отморожу буду пилить OpenRC»

anonymous
()
Ответ на: комментарий от ZenitharChampion

For future reference as people might watch this video ..I am an openSUSE developer and have worked in the systemd integration part..the answer is no..starting 12.3 you cannot go back to sysvinit for a number of reasons, even less if you are running a desktop environment. pretty much everything now depends on systemd functionality and will not work without it.

Мда...

kamyrros
()
Ответ на: комментарий от I-Love-Microsoft

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

ZenitharChampion ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

и чем он лучше?дополнительно большим кол-вом костылей?

erzent ☆☆
()
Ответ на: комментарий от kovrik

А макосевскую launchd можно прикрутить к линуксу? Вроде open-source, apache license же уже.

Макосевый xnu тоже опенсорц правда apple public source license. И собирают xnu в макосях щаз при помощи clang&llvm. ;)

init_6 ★★★★★
()

Собирались же скинуться на киллера для Поттеринга. Давайте на кикстартере соберем денег? Заколебал он.

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

Печально...
Нормальное API? Не, не слышали!
Гвозди такие гвозди.

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