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)
Ответ на: комментарий от jackill

Именно насаждается, так как он поглощает отдельные компоненты вместе с репами и мелкие дистры просто вынуждены его использовать.

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

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

«Поглощение» в systemd не умерщвляет апстрим кронов/инкронов/xinetd/syslog итд. Единственный бесспорный момент, это поглощение udev. Но для бинарных дистрибутивов это не проблема.

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

fixed

не суть - RedHat выбирает systemd, потому, что считает этот вариант оптимальным.



ЗЫ

http://www.debian.org/ports/hurd/hurd-install

«Система инициализации SysV в настоящее время не используется. Чтобы выключить вашу систему, просто используйте halt или reboot.»

«Способ в стиле Debian пока не поддерживается: /etc/network/interfaces игнорируется, ifup и ifdown не работают»

то есть привязанность systemd к Linux для Debian/HURD не такая уж и проблема - допотопный SysV там, похоже, тоже толком не работает.

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

А мужики то не знали. Блин как-же Я работаю то хоспади, спасибо что глаза открыл мне малосведущему. Сейчас буду винду ставить.

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

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

Я вообще не вижу альтернатив. И да, к логопеду, быдло!

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

А еще я красивый, ага.

Не сомневаюсь. :)


И стараюсь общаться с оппонентами в том же тоне, в котором они общаются со мной.

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

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

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

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

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

Что тут «неизвестного»? Есть винда — своего рода чёрный ящик с таинственным колдунством внутри. И есть линукс, во многом корявенький, но с открытыми потрохами — бери да настраивай. Задача РедХат — сделать из линукса венду.

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

Продакшн решения! Датацентры деревни Нижнее Гадюкино!

Не позорься, сынок.

хехехе

Oleaster ★★★
()

Зачем переходить на системд? В википедии написано, что она ускоряет загрузку и позволяет делать больше работы в это время. Эксперимент по установке системд в дебиан тестинг показал, что загрузка замедляется на 1-2 секунды, при этом после выключения компьютера из кде, система переходит в консоль и на этом виснет. Выводы: реальные задачи проект не выполняет, но при этом требует от разработчиков дистрибутивов и ПО довольно внушительной работы по переделке их систем. Я думаю, что у сообщества есть более нужные пользователям дела вроде развития прикладного софта и закрытия багов существующего.

Kefka
()

Что реально способно ускорять загруpзку так это системный раздел на SSD, причем почти вне зависимости от системы инициализации. Про systemd не скажу, а upstart создавал проблемы на разных версиях ubuntu при установке видеодрайверов от AMD/Nvidia.

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

А свободные драйвера не умеют opencl например. Да и энергопотреблением управляют неважно. Для 300 Вт карты большее зло открытый драйвер.

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

Ну блоб тут частный пример проблем на ровном месте, которые принес upstart. Там автологин в гном срабатывал минуты через 2-3 после загрузки. После небольшой правки конфигов upstart поправил я это. Самое главное ускорения загрузки фактически нет. И сколько таких изменений ради изменений сейчас в линуксе systemd, upstart, gnome3, kms, wayland, mir от которых никакой пользы.

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

Я нигде не говорил слово зло. И разработчики свободного софта мне ничего не должны, я знаю. Гораздо интереснее все переделывать и создавать новые баги, чем шлифовать уже работающий софт.

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

тред не читал

Назовите пожалуйста парочку потенциальных основных недостатков systemd? Не троллинга ради, хотелось бы знать, каких позиций придерживаются лоровцы.

WRG ★★★★
()
Ответ на: тред не читал от WRG

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

hel1os
()
Ответ на: тред не читал от WRG

Во-первых, SysVInit работает. Это про первое правило программиста. Например, PulseAudio так и не стал нужен. Во-вторых, жуткий код и постоянно изменяемый API (и внутренняя структура, за которую меня бы уволили с работы). Захардкоженные константы, goto, переменные вроде int r, функции длиною в тысячи строк, комментарии видимо рептилоиды не дают писать. (Сам делал обзор кода этого чуда, хватило меня не надолго). В-третьих, прибитость к Linux. Далее - полная связанность модулей, ужасная архитектура. (Что бы там не говорил Поттеринг). Кривая архитектура и снаружи, не только со стороны кода. Несмотря на заявленную открытость - пишется с упором на строго определенные запросы одной красно-шляпной конторы. Всасывание все новых и новых проектов, желание прицепить к себе все: от KDE с Гномом до Wayland и всех дистров. Vendor lock-in. После форка (перехвата как вариант) придется делать сильный рефакторинг кода. Ну и наконец сам Поттеринг. И его полное нежелание сотрудничать и вообще отвечать на любую критику. NIH-синдром сильнейший.

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

Ну и наконец сам Поттеринг. И его полное нежелание сотрудничать и вообще отвечать на любую критику.

Ну, если разговаривать с ним на ЛОРе, то наверное так и есть (%

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

Не только. Он меня забанил у себя. Правда, я его подколол, что мол «Марк прав». Так что у него видать попа зачесалась. Но про нежелание сотрудничать я читал уже очень много. Кстати, кедерасты (Аарон и Мартин) хоть и тоже несколько истерично реагируют (тут где-то тред был, лень искать), но с ними я спокойно говорю, они отвечают и т.д., короче диалог. Просто в KDE я заинтересован сильнейшим образом, а вот systemd мне не нужен. У нас свой велосипед, куда более привлекательный, на мой взгляд.

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

Ну когда появляются наши советские толстые тролли, и начинают на ломаном буржуйском ОЛОЛОЛО ПОТТЕРИНГ ПОМАШИ МНЕ РУЧКОЙ! - грех и не забанить

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

Он меня забанил у себя

но с ними я спокойно говорю, они отвечают и т.д

Просто в KDE я заинтересован сильнейшим образом, а вот systemd мне не нужен

Удивительно, да.

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

Ну когда появляются наши советские толстые тролли, и начинают на ломаном буржуйском ОЛОЛОЛО ПОТТЕРИНГ ПОМАШИ МНЕ РУЧКОЙ! - грех и не забанить

Ни фига не ломаном. И вообще захотелось тогда повеселиться чуток. Леннарт шутку не оценил. А вообще тут правых нету. Я говорю только про то, что узнал как разработчик - а именно см. другие недостатки. Поттеринг - это уж так, все равно ему за это деньги платят. Вот Upstart я видел только в работе, поэтому не сужу его. Код не смотрел. А OpenRC вообще не видел.

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

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

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

Он меня забанил у себя.

Дуракам туда у них дорога? Правильно, а чего ты хотел? Тебя и тут надо забанить.

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

Так и я был не особо против systemd пока не изучил его получше. Правда, у нас свой удобный велосипед, но мы можем переключиться, если припрет. Ну и некоторая агрессивность фанатов systemd напрягает. Не здесь - здесь все хороши, а в том же G+. А по сути, кто знает, может тот же Upstart и OpenRC хуже. Хотя та же Федора работала на Upstart нормально раньше, а убунта и сейчас работает.

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

Надо до бы и мне в исходники и upstart и OpenRC посмотреть.

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

Гордость ЛОРа, ага. Забаненый Ленартом? Надо макскому предложить идею - выдавать медали: «Забанен Ленартом!» - это звучит громко. и звезду сразу накидывать.

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

Если судить по этому треду, Леннарт бы пол ЛОРа забанил. А то и больше половины. Правда многие что сторонники, что противники аргументов не приводят или приводят что-то вроде: «стало быстро загружаться!», «велосипед!», «его будут использовать в wayland!» и так далее.

Кстати, на G+ точно также, только на буржуинском.

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

Если судить по этому треду

То ты или америкос или пацанёнок.

Pakostnik ★★★
()
Ответ на: комментарий от erzent
hackeridze@gentoo-laptop ~ $ skype -v
Skype 4.2.0.11
Copyright (c) 2004-2013, Skype
hackeridze@gentoo-laptop ~ $ uname -a
Linux gentoo-laptop 3.12.0-gentoo #1 SMP Tue Nov 5 23:04:08 OMST 2013 x86_64 Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz GenuineIntel GNU/Linux

ЧЯДНТ?

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

создай конференцию из 5-10 человек,видео, и посмотри,как без пульсы будет тупить звук.По крайне мере так было год назад.

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

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

RedEyedMan3
()
Ответ на: тред не читал от WRG

Уже писали много раз. Мне не нравится:

  • нет контроля над systemd как целым, нет контроля над systemd как набором частей (меняют API, мутноватый код)
  • декларативный способ конфигурирования не позволит
  • дизайн и позиционирование systemd в стиле «подмять всё под себя»
  • старый код проверен и _уже_ работает на тысячах инсталляций. systemd соответственно не нужен.
  • Леннарт Поттеринг

    P.S. В мире Java systemd vs sysvinit можно переложить так: maven vs ant.

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

ну у пульса один + есть это pulseaudio equalizer,такое же под голую альзу не увидел.

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

Tribunal

Ни фига не ломаном. И вообще захотелось тогда повеселиться чуток. Леннарт шутку не оценил. А вообще тут правых нету. Я говорю только про то, что узнал как разработчик - а именно см. другие недостатки. Поттеринг - это уж так, все равно ему за это деньги платят. Вот Upstart я видел только в работе, поэтому не сужу его. Код не смотрел. А OpenRC вообще не видел.


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

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

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

На github свежая версия OpenRC? Если так, то кое какие выводы можно сделать уже только при первом взгляде. На пару исходников взглянул - сразу видно, что другой человек писал. Никаких ужасных goto, говорящие названия переменных с их инициализацией, более сложная структура кода. Ограничения налагаются тем, что это Си. (вот здесь: https://github.com/OpenRC/openrc) И вопрос к гентушникам - они сравнивали OpenRC с systemd? Кода тут существенно меньше и он выше качеством, другое дело - возможности. В systemd разве что grub не вставлен. Пока что не вставлен. Для более подробного анализа нужно время.

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

Наверное потому же почему новая виндовая версия скайпа у многих требует ключа \legacylogin, так как завязана на новые возможности системы, ну или из за неосиляторства alsa скайподевов

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