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)

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

групповое видео общение без пульсы и проблем со звуком?

erzent ☆☆
()

ППКС. Красношапка - это местный некрософт.

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

не самая лучшая заповедь

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

судя по инсайндерской инфе основные кандидаты это systemd, upstart или оставить как есть

Можно и на upstart перекатить. Он не такой монструозный. Скрипты стащить из репозиториев каноникла.

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

может в Gnome это прибито гвоздями, утверждать не буду...

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

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

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

Я забыл дописать то что это очень похоже на изготовителей мобильных телефонов.

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

Я долго и мучительно пытался заставить 5.1 приложения работать одновременно со стерео. Пришел к выводу, что на моей карте это невозможно. Пробовал dmix, апмикс стерео в 5.1 — ни в какую.

Карта VIA по спецификации HDA.

vurdalak ★★★★★
()

Неплохо, очень неплохо! Леннарту действительно сложно отвечать, он как-то так запутанно всегда пишет, вроде чувствуешь, что врет, а вот сформулировать конкретную претензию к нему сложно.

Поттеринг в комментах к своему посту написал еще такое, очень характерное:

we are building the basic building blocks for an operating system. If people start using them, they start using them, that's hardly my fault, is it? I mean, it's a question of honesty: do I personally care whether people can easily run Upstart or whatever with the tools we ship in systemd?

То есть - да, нам пофиг, можно ли будет использовать компоненты системд в других системах. И что?

provaton ★★★★★
()

Лучше б пост Поттеринга нормально перевели, а не эту истерику.

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

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

В этом виноват Марк и убунта :)

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

Мне кажется, в предложении «systemd не нужен» он сделал очень много ошибок.

Нет, это просто ты посчитал хэш этой простыни :)

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

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

vurdalak ★★★★★
()

генту опять радует

ох, какой годный вброс, класс

Stil ★★★★★
()

Пока есть Gentoo, Линуксом ещё можно пользоваться.

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

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

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

В этом да, Леннарт прав. Но тут вопрос в другом - почему Red Hat, Debian и остальные его слушают и так быстро вливают его поделки к себе?

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

> нужен рабочий скапй= Pulseaudio ,иначе групповое общение закрыто....

У меня всё работает, PulseAudio нет. Более того, Skype 4.1 и 4.2 с PulseAudio не работают, нужно или откатываться до 4.0, или писать asound.conf.

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

Вчера пришёл интересный коммент, кого не пугает английский язык, советую почитать.

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

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

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

Мне кажется, в предложении «systemd не нужен» он сделал очень много ошибок.

он просто развернул мысль -)

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

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

В этом и беда! Пусть они поддерживают какой-то один. Но должно быть нормальное API и должна быть возможность замены одного инита на другой без особых проблем. А у них - жесткие гвозди и никакого выбора.

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

Я не читал аргументацию каждого дистра, но в тех случаях, когда читал - главным аргументом было «все ж уже перешли, а мы слоупоки! Давайте быстрее, надо догонять».

почему Red Hat

Red Hat это как раз очень выгодно, ибо lock in. Удобно, когда весь мир линукса будет от тебя зависеть. Отсюда и их ненависть к убунте со своим апстартом. В общем, биполярность.

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

а ещё с Systemd не работает кириллица в консоли

Причём, только на openSUSE. Ручной перезапуск systemd-vconsole.service помогает.

Darth_Revan ★★★★★
()

Леня похоже не осилил submodules и поэтому все лежит в одной куче ((

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

Половина «ненависти к убунте с её апстартом» обусловлена наличием CLA.

И это не исключительно редхатовская фича, это общая вещь для open-source разработки.

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

головорезы из Red Hat

Кровавая дистрибутивня!

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

Red Hat это как раз очень выгодно, ибо lock in. Удобно, когда весь мир линукса будет от тебя зависеть

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

Но местные коспирологи не любят думать, проще ж городить истории как у них от пульсы котёнок умер.

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

Сейчас да, на моей бубнте 13.10 все работает вроде. Так что я не заморачивался сносом пульсы.

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

Ага, в чувак очень хорошо эту тему раскрыл. Я так проникся, что прям захотелось себе генту поставить :) Она выглядит просто островком здравомыслия в океане базвордов.

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

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

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

Не вижу смысла преподносить как новость чьи-то эмоции

Уже сто каментов. Значит НУЖНО!

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

ну переход на x86 же пережили и системд переживут

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

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

У меня всё работает. Можешь проверить сам. Отключи PulseAudio в openSUSE или в Ubuntu. Модифицируй ярлык запускаSteam или выполни команду из консоли:

SDL_AUDIODRIVER=alsa LC_ALL=en_US.UTF-8 steam

Всё работает. Звук в игре. Звук из всех остальных программ: плеер, звуковые уведомления, IP-телефония.

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

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

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

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