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

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

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

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

запросто, если пересылку оплатишь. Creative X-Fi Music.

anonymous ()

похоже, пора писать велосипед, который внешне похож на pulseaudio/systemd, но им не является. Более «правильный», логический, безпоттеринговый.
Предлагаю назвать velosipedd и velosipedaudiod

reprimand ★★★★★ ()

Уж человеку по имени Патрик можно верить. Спросите у любого слакварщика.

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

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

> Причём, только на openSUSE.

http://suseana.ru/?p=859

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

Не так давно кардинальное решение её было предложено в рамках проекта Russian Fedora Алексеем Пановым aka elemc, предложившим для своего дистрибутива пакет workaround-cyrillic-console (последняя на данный момент версия здесь).

Самое смешное, что это решение действенно и для openSUSE (проверено на версии 12.3). То есть достаточно скачать этот пакет по указанному адресу, внаглую установить его командой

# rmp -ihv path2/workaround-cyrillic-console-1.0-4.fc18.noarch.rpm

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

В заключение — спасибо Алексею Панову aka elemc за пакет и Аркадию Шейну aka Tigro за наводку.

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

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

Какое отношение имеет CLA к нежеланию убунты переходить на системд?

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

RH потому что заинтересован в systemd, ибо «Specialized professional consulting and engineering services available», а остальные - потому что нет ресурсов развивать что-то своё.

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

С каких пор Pulsaudio нужно для конференц колов скайпа? У меня все прекрасно работает с голой ALSA. Правда у меня везде гента.

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

А макосевскую launchd можно прикрутить к линуксу?

Во фряхе оно не взлетело, наверное есть причины.

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

Где у меня написано о желаниях убунты?

Мы вроде говорим о нежелании других дистрибутивов переходить на/продолжать пользоваться upstart.

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

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

Ну давай, портани сперва CoreFoundation. Насколько знаю, оно с CF-Lite не очень любит собираться.

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

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

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

Официально, или через костыли-велосипеды?

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

Like eglibc developers who were forced to publicly apologize to Poettering (and give him a chocolate box)

eglibc

пруф или ти ошыбся с проэктом

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

Мы вроде говорим о нежелании других дистрибутивов переходить на/продолжать пользоваться upstart.

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

Марк вообще и не настаивает на том, чтоб другие дистры юзали апстарт. Потом, если CLA так не нравится, то можно просто поддерживать свой патчсет периодически мержась с апстримом.

Системд в плане работы с комьюнити тоже далеко не образец открытости, и дело тут далеко не в ЦЛА, а в политике авторитарности решений одной конторы. Как в посте писалось, Леннарт поломал совместимость АПИ, а виновата убунта :)

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

А чем вообще openrc отличается от sysvinit с точки зрения пользователя? Когда его юзал, коренных отличий вроде не замечал.

vurdalak ★★★★★ ()

зачем на главной нестираная простыня надмозга? ВОЗЬМИ РАСШИР ДАААА.

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

тред не читал

нужно форкнуть systemd и стдклать из него правыльный демон (как сделали eudev)

даешь еsystemD

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

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

Вас читать - со стыда сгоришь. Зашёл человек по делу написать, а ему ведро conspiracy theories на голову.

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

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

Just as planned

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

В 2008-2010 годах на сайтах по Linux некоторые люди навязывали PulseAudio так же сильно, как сейчас навязывают Systemd. Хотели чтобы за максимально короткое время как можно больше дистрибутивов Linux включили его у себя (желательно чтобы способ отключения был не очевидным) и для этого начали шуметь. Вот так в начале 90-х «пошумели» про полную независимость от СССР, а потом лидеры государств всё это сделали. Так же и с линуксами.

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

>> Like eglibc developers who were forced to publicly apologize to Poettering (and give him a chocolate box)

>> eglibc

> пруф или ти ошыбся с проэктом

Я ошибся проектом :-(

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

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

vurdalak ★★★★★ ()

Перевод коряв, Патрик прав.

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

sysvinit как PID-1 - это разные вещи, и openrc работает поверх него, хотя можно и поверх любого другого PID-1.

как системы менеджмента модулями... много чем: зависимости, api, фичи: удобный формат инитов, параллельный запуск, поддержка system specific фигни типа цгрупп, плагины к s-s-d, вложенные ранлевелы, udev-notification (нужно руками подпиливать).

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

Возможно что так и есть, просто никто никому не рассказывал. Red Hat же большая компания, которая делает бОльшую часть низкоуровневых системных компонентов дистрибутивов Linux. А большие компании часто делают плохие вещи, когда их большие планы не удаются.

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

В арче тоже. Приходится применять правило для fb* в /etc/udev/rules.d

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

+1

но я бы 2е немного переназвал как «audiovelosipedD»

ZuBB ★★★★★ ()

vurdalak, твоя ссылка не работает, отредактируй? Специально для этого пишу не ответ, а новое сообщение.

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

выше альфа все правильно сказала

Вас читать - со стыда сгоришь. Зашёл человек по делу написать, а ему ведро conspiracy theories на голову.

..

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

У меня работает. Можешь сам загуглить фотку дона Корлеоне.

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

Из-за реферрера, скопируй и вставь в адресную строку.

provaton ★★★★★ ()

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

extending extensive apis that break when me breaks them.

редхат пора заканчивать нанимать манагеров из мелкософта.

местные рх-юродивые плм унд альфа-кун (и всякая примкнувшая к церкви блаженных мелкота) уже отметились в треде?

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

Именно так - с обеих сторон истерия доминирует:
- системДы-хейтеры на ЛОРе уже неизгладимый след оставили.
- а за что Лёнчик в Гы+ собеседников банит - так и ему на ЛОРе самое место!!!

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

только смысл в этом давно потерялся — перестала тормозить и шипеть

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

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

Марк вообще и не настаивает на том, чтоб другие дистры юзали апстарт.

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

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

От как раз сейчас в Дебиане грызня идёт - системДы пилить, или же апстартАпстену?

Самый мудрый - Патрегом звать - просто ждёт стабильных версий, чтобы сделать выбор ;)

livi ()

Сколько ему лет? По стилистике шут какой-то.

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

Следуя вашей логике Денис Попов сделал всё правильно, ибо он one man company

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

это возможно изза поверсейва для аудио. в ядре так и написано

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

Леннарт никогда слезливые посты не писал, как бы вам этого ни хотелось.

Марк вообще и не настаивает на том, чтоб другие дистры юзали апстарт.

Мы говорим не про Марка, а про альтернативы systemd, которые могут использовать другие дистрибутивы, как, например, Debian.

Потом, если CLA так не нравится, то можно просто поддерживать свой патчсет периодически мержась с апстримом.

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

alpha ★★★★★ ()

Перевод очень корявый, а ещё если уж делать перепост записи из личного блога Патрика, стоило бы дать контекст.

Конкретно Debian поддерживает ещё ядра Hurd и OpenBSD, на которые не портированы ни systemd, ни upstart. Причём если команда upstart согласна на применение патчей и поддержку портов, то systemd ни в какую не хочет поддерживать что-то кроме Linux именно потому что там сложные cgroups и прочее, а на самом деле потому что они не хотят, и всё. На systemd уже завязан новый GNOME - пока что не очень крепко, но всё-таки, а так как systemd - это макросистема на 200k строк кода, то из неё нельзя выдрать минимум для совместимости, а можно только полностью пересесть. Sabayon пытались поддерживать одновременно systemd и init-скрипты, и у них ничего не получилось.

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