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)

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

Странно, что это понимает бОльшинство на ЛОРе (окроме совсем упоротых), но не понимают майнтейнеры

Да, действительно странно (%

vasily_pupkin ★★★★★
()

Патрик хоть и ломает дерево иногда, но тут он отжег:3 Добра тебе Patrick/bonsaikitten/DrEeevil

Zlogene
()
Ответ на: комментарий от special-k

то, что они оторвали это полная халява, в sabayon напр. так же примерно было сделано. а Поццеринг сказал - не смогут, и поменял логику, чтобы завязать глубже на systemd. Теперь всё равно отвязать можно, но сложнее.

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

Майнтейнерам говноподелок? да, проще. А нормальные дистры, типа той же убунты, дебиана и генты не спешат на него переходить.

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

Что характерно, даже в чате не посылают курить маны а направляют в правильное русло. Было как-то необычно после общения во FreeBSD и Ubuntu тусовках.

Ну а по теме, OpenRC вроде работает. И единственная вещь из-за которой пришлось бы мне ставить systemd - свежий Gnome и его форки. Там похоже гвоздями прибито.

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

Типичный российский «програмёр». Понтов много, а толку, из-за святой веры в свою невыразимую ценность, ноль. Напиши задорма чёнить своё, полезное и не раз и не два, напиши. Напиши что-нибудь цельное, что сообщество примет. Вот когда репутацию себе заработаешь, тогда твой код и твои слова будут чего-то стоить. Может правда миллионером станешь.

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

Дистрибутивы, в том числе embedded, типа openwrt, не использующие systemd, дают некую гарантию того, что ядро и userspace в виде systemd разделимы сегодня и будут разделимы в будущем.

Конец эпохи наступит, когда от init потребуют обязательной поддержки cgroups или ещё чего-нибудь.

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

Типичный российский «програмёр». Понтов много, а толку, из-за святой веры в свою невыразимую ценность, ноль. Напиши задорма чёнить своё, полезное и не раз и не два, напиши. Напиши что-нибудь цельное, что сообщество примет. Вот когда репутацию себе заработаешь, тогда твой код и твои слова будут чего-то стоить. Может правда миллионером станешь.

Херово у тебя с телепатией, херово. :)

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

в sabayon напр.

А тебе не кажутся эти события связанными ^_-

Теперь всё равно отвязать можно, но сложнее.

Это все печально, конечно.

special-k ★★★
()
Ответ на: комментарий от vova7890

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

+100500. Заминание с агрессивным вендорлоком. Красношляпые в последние годы ведут очень грязную игру.

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

во встраиваиваемых системах обходиться без неё становится непреложным условием

Почитай про Tizen

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

Конец эпохи наступит, когда от init потребуют обязательной поддержки cgroups или ещё чего-нибудь.

Полностью согласен. Если однажды какой-то шлак (особенно такой монструозный типа systemd) станет неделимой частью ядра - это будет означать закат этой ОС...

Юзаю OpenEmbedded, опасаюсь systemd, ибо оно туда уже лезет на равне с sysvinit...

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

Пусть они поддерживают какой-то один

должна быть возможность замены одного инита на другой

Это противоречащие друг другу утверждения, вообще-то. Если есть возможность выбора, значит поддерживается не один.

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

Open Source позволяет дописывать эти программы самому!

Нищебродопроблемы.

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

интереснуют ресурсы уровня lkml и ссылки на патчи, пока то что было не изменяет интерфейсы, и хотя есть планы использования центральной точки доступа к cgroups, они все будут реализованы не скоро, если будут.

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

Было озвучено принципиальное желание ментейнера cgroups, но это не свершившийся факт на данный момент. Это ж уже обсуждали тут, с тех пор новых новостей вроде не было

vasily_pupkin ★★★★★
()

Забавно, одни и те же товарищи безмерно любят монстроподобные X-ы, и с таким остервенением ненавидят systemd.

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

я не знаю как правильно выразится... ибо полную суть системд понять трудно. Идея в том, чтобы программы и пр. подобные вещи, которые «прибиты» к системд или его требуют видели его в «своем system2d». Т.е. симулируем systemd, но им не являемся.

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

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

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

Глючит же! Нет, не хочу. Я помню версию 8.04, поэтому нет, если устанавливать DEB-based, то точно не Ubuntu.

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

Как можно доверять DE, гвоздями прибитому к системе инициализации (systemd). То ли это заговор, то ли мир сходит с ума.

+1

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

Скорее: «мы делаем базовые компоненты системы, на проблемы тех кто их использует мне плевать.» Звучит как крик отчаяния, надо сказать.

ЗЫ. Надеюсь Вам не приходится принимать то что на аве нарисовано :)

A-234 ★★★★★
()
Ответ на: комментарий от anonymous

Ну дык, не даром я про святую веру сказал. Верь дальше, работай меньше. Возможно гражданством «творца» ошибся. Тогда прошу прощения.

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

Это фраза не имеет смысл уже как лет пять

druganddrop-2 не имеет смысл уже как лет пять

Починил, не благодари

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

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

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

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

Забавно, одни и те же товарищи безмерно любят монстроподобные X-ы, и с таким остервенением ненавидят systemd.

Дваждую.

Я вот и иксы, и systemd считаю примерно одинаковым говном.

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

Не знаю насчет Dota, но я часто играю через Steam(под Linux в том числе) и еще не встречал ни одну игру, которая требует Pulseaudio.

И это при том, что steam запущен в чруте(ибо нефиг).

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

ОФИЦИАЛЬНО разработчики дистра могут поддерживать только один инит. Но фактически должна быть возможность ставить любой.
Никакого противоречия тут нет.

Пример: Искаропки в качестве браузера идет Firefox. Или по дефолту установщик предлагает в качестве ФС ext3/4/btrfs. Фактически же юзер может поставить ЛЮБОЙ браузер и ЛЮБУЮ ФС - при этом у него ничего не отвалится и не умрет. Потому что есть нормальное API.

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

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

livi
()
Ответ на: комментарий от vasily_pupkin

У чувака бомбануло в личном блоге, а на ЛОРе опять будет тред в 100500 комментариев

Поделись своим бомбаном с другими же!

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

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

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

Броузер - это вообще пользовательская програма, на вершине дерева зависимостей. Никаких проблем в поддержке нет. С ФС все просто в том плане, что есть четко определенная абстракция, которую она обязана реализовать. А вот с инитом все хуже. От него зависит куча других вещей и нету никакой четко определенной абстракции.

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

Речь не о конкретных железках, а о том, что systemd применяется для задач кроме стандартных серверных.

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

У чувака бомбануло в личном блоге, а на ЛОРе опять будет тред в 100500 комментариев

Поделись своим бомбаном с другими же

Поделись батхертиком своим,
И он не раз к тебе еще вернется.

cipher ★★★★★
()

Критикуй - не критикуй, всё равно вся перейдут.

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

А вот во встраиваиваемых системах и их человечьих интерфейсах - обходиться без неё становится непреложным условием.

Вот как народ пиарится:

http://lists.freedesktop.org/archives/systemd-devel/2013-October/013910.html

Hi systemd developers,

I am very proud to inform that Axis Communications, market leader in IP video products, has been using systemd in variety of products. Our team has been actively involved in fixing bugs, implementing features and having discussions with you guys for the purpose of making sure systemd project fits in perfectly to our embedded product array. We are committed to keep up our support for this amazing project!

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

Справедливости ради стоит отметить, что как раз для стандартных серверных задач системде еще не применяется. И весь этот бартхерт как раз от того, что собирается :]

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

Ну у меня на впске применяется :)

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