LINUX.ORG.RU

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

 ,


11

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 ()

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

Ладно, что-то мне надоело.

Сойдемся на том, что единственная причина, по которой вы пишете чепуху, это то, что вы тоже куплены редхатом.

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

Разработчики Debian обсуждают, куда лучше свалить — на systemd или Upstart (комментарий)

Мне кажется что такой симбиоз корпорации и энтузиастов приносит пользу и энтузиастам тоже.

Называть ситуацию «нас е..., а мы крепчаем» словом «симбиоз» - это оригинальный ход.

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

От корпорации энтузиастам требуется прослойка для доступа к железу. Ядро и драйвера написать не под силу никаким энтузиастам. А с видеодрайверами, кстати, всё очень плохо, и как-то корпорации пока не чешутся. Вся надежда на пинок от Valve.

По большому счёту, init - это вообще не то место, где могли бы возникнуть проблемы. Но они возникли. Именно потому, что корпорация пытается из нескольких простых и понятных компонент получить очередную вермишель для lock-in-а.

А «сделать собственный init» действительно может каждый, тут нечего «редактировать представления». Но нафига было что-то «делать», если всё и так отлично работало 15 лет? У нас что, более актуальных проблем не было?

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

Это очень существенная разница.

Какая разница с точки зрения майнтейнера, которому нужна поддержка фичи Х, а апстрим systemd реализовывать эту Х не собирается и патчи не принимает, или заведомо не примет?

И в том, и в другом случае нужен форк.

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

Мэм!
Зря вы так. Весело же было.

Но по-любому - спасибо!

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

Надежда, как водится, не оправдалась.

Я отвечал на конкретный комментарий, в котором кроме редхата были упомянуты fsf и apache. И согласился, что ты права, только когда ты сделала заявление конкретно о редхате. Твой дисклеймер там в любом случае был бы не к месту. Каким, по твоему предположению, должен был быть ход моей мысли, чтобы дисклеймер о твоей нейтральности меня остановил?

Вы можете считать что это не страшно - ваше право. Но проблема имеется, и от того что вы лично её не видите, она не пропадает.

Ты не собираешься отстаивать какую-то конкретную точку зрения. Прекрати.

Посмотрите на Cons: https://wiki.debian.org/Debate/initsystem/upstart

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

Кстати вспомнил, что линус в каком-то интервью очень неоднозначно отзывался о systemd. Тоесть не плохо, не хорошо, а будто сам не знает чего от него ждать. Надо поискать.

anonymous ()

ну не нравится, не переходите живите в пещере дальше

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

ну не нравится, не переходите живите в пещере дальше

Мужики, нам разрешили не лезьть обратно на деревья.

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

Они бизнесу не нужны, т.к. проигрывают обоим альтернативным подходам. И как следствие, вымирают.

В чем именно проигрывают и что это за таинственная альтернатива?

// Подсказка для админов локалхоста: VDS/VPS _не_ являются альтернативой виртуалхостов.

// Подсказка для _тупых_ админов локалхоста: VDS/VPS являются альтернативой dedication/collocation

-- linuxnewb

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

Потому что у Леннарта не было ЛОР, и он писал код. А у тебя ЛОР — есть.

ух, ё. сейчас нам спецы расскажут про купил одну картошку за цент-помыл-продал на рынке за два. и прочие байки.

anonymous ()

Вот однако ж. Запустил top. systemd постоянно «болтается» в пяти верхних строчках.И постоянно норовит вылезти на самый верх, сменяя то X, то top, то запущенное текущее приложение. И что же он там делает?

zloy_starper ★★ ()

Ignorance -> Игнорирование - wrong Ignorance -> Невежество - right

Перевод вычітать і подправіть (такого многовато).

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

разве это не самый медленный вариант из всех

Медленный в чем? Потому что при уже отлаженной инфраструктуре, в 95% случаев сайт развертывается за 0,5 часа. «Не притрагиваясь к php руками».

при нуле преимуществ

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

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

Спроси у LibreOffice и MariaDB, что они думают об этих «можно» и почему они решили, что нет, нельзя

Ну справедливости ради, нужно отметить, что оба проекта «взлетели» из-за политики разработки оракла, а не из-за CLA(хотя оно тоже сыграло свою роль, но меньшую). И нежелание Леннарта стандартизировать api и принимать не нужные персонально ему патчи сродни ораклу. О ненависти к CLA надо было спрашивать go-oo.

С Патриком, в основном согласен, но не смотря на это, я за systemd, ибо это единственный видимый путь к унификации и стандартизации. Ждём выхода rhel 7, системд в нём по идее можно брать за стандарт и писать совместимые клоны.

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

я за systemd, ибо это единственный видимый путь к унификации и стандартизации

Всегда хотел, но стеснялся спросить: а как связаны systemd и унификация/стандартизация?

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

Всегда хотел, но стеснялся спросить: а как связаны systemd и унификация/стандартизация?

Всех, кто не захочет стандартизироваться, Ленарт проклянёт.

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

Всегда хотел, но стеснялся спросить: а как связаны systemd и унификация/стандартизация?

Некоторые считают, что унификация и стандартизация — это когда всё запихивают в одну систему. А Unixway — это бардак и анархия.

Вообще, Unixway начали хоронить при KDE4, прикопали при Gnome 3 и закапывают сейчас, с systemd.

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

Запустил top. systemd постоянно «болтается» в пяти верхних строчках.И постоянно норовит вылезти на самый верх,

TIME+ посмотри. У меня он и сотой доли секунды за последние десять минут не истратил.

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

Всегда хотел, но стеснялся спросить: а как связаны systemd и унификация/стандартизация?

Всех, кто не захочет стандартизироваться, Ленарт проклянёт.

Хаха! По мне так вообще, пусть оставят эту часть в покое хотя бы еще лет на десять. К тому времени может и будет надобность, да и что-то разумное создадут. Еще, вроде народ там на киллера скидывался...

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

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

А вот зачем? Нет, серьезно.
Я считаю, что такая вещь как инит - должна быть одна.

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

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

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

Никогда с ней проблем не было. Но есть постоянные проблемы с переключалкой в кде3 у гномеров и виндузятников.

alex-w ★★★★★ ()
Ответ на: комментарий от AX

а как связаны systemd и унификация/стандартизация?

Ты всё равно не поймёшь, инфа 99%. Но попробую ответить:

Системд предлагает единые апи/механизмы для взаимодействия с системой различным ДЕ/сервисам/т.д. Их по тихоньку начинают использовать. Пока что они регулярно ломаются, возможно, будут ломаться и позже и именно это мне в системд и не нравится. С другой стороны стадия ломания апи неизбежна для любого проекта (да-да, я верю в то, что лор-аналитики никогда ничего не ломают), просто у Лёни она затянулась. Но очень надеюсь, что ситуация изменится. Ибо кроме него эти вещи никто даже не пытался унифицировать, каждый пилил свой костыль, и только для себя.

PS: Кстати если по вспоминать, то ситуация в разработке dbus была весьма похожа на разработку системд. Теперь dbus - стандарт, и это хорошо.

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

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

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

А вот зачем нужны 100500 реализаций инита, никто так и не объяснил.

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

Что мешает таким же образом апстарт форкнуть, если не нравится оригинальный?

То, что он никому, кроме убунты, не нужен?

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

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

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

Теперь dbus - стандарт, и это хорошо.

Ага, только этот стандарт системд как раз хочет выкинуть и заменить на новый, несовместимый. Почитай исходный пост, что ли...

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

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

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

Ага, только этот стандарт системд как раз хочет выкинуть

Я в курсе, и что? Бывают такие ситуации, когда одни технологии меняются другими.

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

Я бы не хотел,чтобы его сделали единственным

Мне все равно, будет это systemd, upstart или openrc. Главное, чтобы инит был ОДИН.

хуже OpenRC, тк требует больше зависимостей и работы

C OpenRC дела я не имел вообще, однако от апстарта остались впечатления говна и палок.

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

потом поттеринг бабки потребовал

С кого?

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

ну OpenRC пишут гентушники,так что палок там минимум.Лучше чтобы было 2 инита,всё таки системд на сервере не оч пока представляю

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

был ОДИН.

А единый дистрибутив ты не хочешь?

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

с пользователей,за обнову системд.

Пошлют и форкнут.

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

Я в курсе, и что? Бывают такие ситуации, когда одни технологии меняются другими.

К черту такие технологии!!! Я за свободу, развитие и логику. systemd в топку! А те кто верещит по systemd, призадумывались хотя бы?! Надо будет, нормальное сделаем!

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

чтобы форкнуть,надо чтобы была возможность заменить,а если он гвоздями прибьёт,то особо не форкнешь

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

и что?

И то, что все сделали так, что без системд новую систему будет использовать невозможно. Хорошие ребята так не делают!

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

чтобы форкнуть,надо чтобы была возможность заменить,а если он гвоздями прибьёт,то особо не форкнешь

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

А во вторых, если припрёт, то возьмут гвоздодёр и отобьют нахуй, ибо нехуй.

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

Зачем мучиться, если есть вполне годные и работающие иниты, для которых не нужен гвоздодёр, типа openrc?

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

это смотря как он прибьёт,может намертво с гномом.

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

А во вторых, если припрёт, то возьмут гвоздодёр и отобьют нахуй, ибо нехуй.

Вот только не надо теперь ждать пока припрёт.

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

К черту такие технологии!!! Я за свободу, развитие и логику. systemd в топку! А те кто верещит по systemd, призадумывались хотя бы?! Надо будет, нормальное сделаем!

Бывает.

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