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)

- здравствуйте товарищ Потеринг!

<code># ls -adl /.p*

drwx------ 2 root root 104 Oct 30 13:01 /.pulse

-rw------- 1 root root 256 May 11 16:44 /.pulse-cookie

</code>

- до свиданья товарищ Потеринг!

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

и нету никакой четко определенной абстракции.

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

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

интересно, почему у него root? multiseat что ли

другой анонимус

anonymous
()
Ответ на: комментарий от anonymous
$ su -
Пароль: 
#  ls -adl /.p*
ls: невозможно получить доступ к /.p*: Нет такого файла или каталога
# 

ЧЯДНТ?

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

Это как приложение должно общаться с логинд, а не как логинд общается с системди, ЕМНИП. Если не прав поправь меня.

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

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

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

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

livi
()

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

Молодец какой! Gentoo и Ubuntu братья навек!!!

anonymous
()

Когда-то одному талантливому гению надоел apache и он начал писать nginx.

Сейчас apache ау, ты где?

Так может тоже заняться своим дистрибутивом, или даже новым ядром и самому диктовать свои условия и моду остальным избранным? У Gentoo Linux есть всё шансы на успех, причём к успеху можно прийти тихо, не пиная то, что протухло или было протухшим изначально, от рождения.

Deleted
()

Крута... Теперь новости из разряда «одна бабка сказала» у нас идут на главную. Желтизной пахнет.

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

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

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

Через 3-4 года может многое измениться, и появится еще один «финский студент» которому надоест волюнтаризм избранных, которые свою лапу наложили и на linux.

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

Не, так со скуки подохнуть можно.

А вот когда в дуал-буте арчик + слакварь-каррент -
самое оно! Что называется,
Совершите вы массу открытий... Иногда не желая того!

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

Так ещё года три-четыре можно протянуть.

За три года многое может измениться.

http://www.markshuttleworth.com/wp-content/uploads/2012/03/20120314093040.png

http://w3techs.com/technologies/details/os-linux/all/all

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

Ровно за nginx на той же машинке, не?

Не.

nginx умеет всё необходимое, имеет более удобные конфиги и вообще няшка. Так нафига апач?

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

А чуть сложнее чем простой, да еще и на домашнем сервере с Gentoo Linux ? И самое ужасное без apache, без mysql, без systemd ?

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

Странно, я такую «архитектуру» на первом курсе универа придумывал. Почему я не долларовый миллонер, а?

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

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

CLA, между прочим очень многие используют. Contributor_License_Agreement#Users.

Совсем не против, чтобы продукты под GPL защищались в суде. Это вообще более бюрократический вопрос.

LibreOffice, MariaDB

По этим проектам мне вспоминается совсем другое, при чём там CLA?

CyanogenMod, KDE vs Canonical

По первому ничего не скажу — не в области моих интересов, а по второму всё очень плохо ищется. (GNOME vs Canonical, Canonical vs. GNOME Drama - Slashdot и т.д)

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

раньше для управления ресурсами использовали xinet, теперь хотят впихнуть этот systemd. Как правильно заметил Патрик это будет ещё одна технология, которую будут игнорировать сисадмины

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

ЧЯДНТ?

дело не в этом, а как такое вообще возможно: если не нашлось место - пишем в корень. это отличное решение для офтопика - сразу писать в С:\, но не в никс-подобных штуках.

И дело не в генте, там в PA-исходниках сначала проверяется $HOME, потом $USERPROFILE, а потом и до getpwuid_r() дело доходит. И потом вульгарно закодировано p = pa_sprintf_malloc(«%s/.pulse», h); Ни тебе настроек в каком-то конфиге, ни тебе дефолта в /tmp, /var или (его же?) /run. Даже #define какого-то не потрудился сделать. Студентокод. И полно там такого. И в системд так же. И результат будет такой же: главное ничего не трогать, а то упадёт... и потом сам же взлетит, как пульса.

Блеск-мечта!!!

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

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

Время покажет.

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

Именно. Поэтому ALSA нельзя закопать с помощью Pulseaudio.

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

Ровно за nginx на той же машинке, не?

С ходу из киллер-фич апача могу разве что .htaccess (для виртуальных хостеров) назвать. Но сейчас виртуальных хостинг уходит в историю. Нафиг апач httpd нужен?

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

сайт шаблон проще будет сделать на apache.по крайне мере начинающим.

Да нифига. Конфиг nginx опять же короче.

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

nginx vhost также умеет

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

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

«Когда-то одному талантливому гению надоел apache и он начал писать nginx. Сейчас apache ау, ты где?»

Угу. Только за годы до этого на порнохостингах отлично работал oops, который в своей многопоточной эффективности аж валил linuxthreads (рекомендовалось использовать солярку). На многопроцессорных санках ваще офигенно работал под самой запредельной нагрузкой, и, что характерно, легко настраивался на кеширование самых частых GET'ов, так что можно было на слабом серваке добиться отзывчивости в любом случае.

И только с приходом nginx мир узнал о error 500.

Киллер фича апача был встроенный в него perl - после распространения php кодеров и виртуальных хостингов suid web-сервер стал считаться опасным, и все переехали на fastcgi.

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

вот в этом то и косяк, народу нужен API чтобы писать замены и альтернативы logind

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

anonymous
()

С основным месаджем согласен — системд лишает свободы выбора.

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

да,но в вузе его не проходят,в отличии от апача.

erzent ☆☆
()

Systemd - это лучшее, из того, что появилось в Linux за последние годы.

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

Это что за зверь, можно ссылку? По такому слову плохо гуглится

нужно добавить кейворд proxy к поисковой строке.

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

Ты сначала покажи документацию к API, да и сам API неплохо бы, который позволит написать замену для logind, journald и т.д.

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

зато есть другое:
играет пульс у юзера, запускаем из-под рута, например mplayer -ao pulse - всё:

ls -lda /run/user/1000/pulse
drwx------ 2 root root 80 окт 31 00:41 /run/user/1000/pulse

следующая песня уже не будет играть :)

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

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

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

Норм штука.

We have also English version of this page.

404 Not Found
nginx/1.3.5

Доо, это победа

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