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

Он тоже пилит только для себя, просто его костыль стараниями Redhat довольно популярен.

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

Ну и продвигается он, во многом, стараниями Поттеринга.

Теперь dbus - стандарт

Ну да, ну да.

Де факто и на десктопном линуксе. Я думал это понятно.

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

А кто согласен? Подолжить €Б@tb©R с инновационными, но неработающими поделками?

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

Пафос и груши.

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

Так держать :3

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

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

И уж кто бы заикался про «ты ничерта не понял».

В systemd помойка? Ну ладно я с этим вообще не спорю.

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

«независимые системные компоненты»? А какого ж тогда хрена они намешаны в одну большую кучу и нет никакого четкого разделения на эти самые компоненты?

Есть там все а только один я слепой дебил? Де-юре вроде бы как есть возможность использовать ядро и модули ядра разных версий. Де-факто если попытаться так сделать то в 99,9% случаев отхватишь фэйл а остальные будут тебя учить что ты дебил и нужно перекампилировать модули под версию ядра. А потому что ВНЕЗАПНО монолит. Такие дела.

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

Так что СЮРПРИИИЗ помойка начинается вовсе не с systemd!

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

Интересно, федоровцы во всех областях такие же эксперты?

Не только эксперты но и Главные Аналитики™.

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

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

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

потом пишет в лог «не системд - отключаем Plymouth».
мне говорили что «никогда не видел чтобы Plymouth где-нибудь глючил, кроме убунты».

Одно забавнее другого, правда.

Какого твоё общее впечатление от системд? (я просто не видел ранее твоего прямого комментария по этому вопросу)

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

Жжоте однако. В линуксе вы пока не разобрались.

Услышать юмор с утра это очень приятно. Спасибо вам.

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

вот это срыв покровов! Линус поди заикаться стал после такого.

anonymous
()

согласен с его мнением, сам везде поудалял systemd со всеми его зависимостями и не жалею об этом, всё работает без каких либо глюков и багов, а пропаганда «гоуна» которое обычный пользователь даже не заметит что же у него стоит: не сюстемд ли ? не СюсвИнит ?, в общем видим такую же ересь навязывание своего видения так же как Гавноникал со своим навязыванием «Мир» праху Gnu/Linux....

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

drupal тоже в прошлом, есть более быстрый старт с нуля http://max-3000.com/ при нулевых знаниях и финансовых затратах.

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

Есть там все а только один я слепой дебил?

Ну, слепой или нет - не знаю, но что дебил - это точно.

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

http://www.oops-cache.org/ - не смотрите на дату обновления, из cvs должен собираться нормально. Понятно, что nginx НЕ кеширующий прокси, и его задача - ловко управляться с http запросами. Но это вообще никак не решает проблему отдачи полу-динамического контента. Я в oops настраивал так кеш: если апач доступен, обновляем кеш и отдаём свежий динамический контент, если апач молчит, по таймауту отдаём кеш. Понятно, что нужно было нагрузку балансировать, но мой вариант позволял неплохо справляться малым бюджетом.

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

Он тоже пилит только для себя, просто его костыль стараниями Redhat довольно популярен.

Кто и как мотивирован не важно

Ivan_qrt> кроме него эти вещи никто даже не пытался унифицировать

Ты, оказывается, о (не)важности мотивации.

Теперь dbus - стандарт

Ну да, ну да. Ты еще скажи, что TCP - это стандарт.

Я думал это понятно.

На уровне DBus не происходит ничего интересного - весь смысл в прикладных протоколах поверх DBus. Я думал, это понятно.

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

За systemd будущее

Конечно-конечно. Вопрос только в том, сколько того будущего и каким оно будет.

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

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

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

чтобы инит был ОДИН.

В embedded тот же, что и на x86?

А что такого? У меня в embedded обычный sysvinit. Если systemd на это не способен, это проблема systemd.

tailgunner ★★★★★
()

На эти оба потока сознания можно ответит старым и мудрым изречением: «Use Slackware, dude!».

Кстати: Mon Oct 28 06:03:16 UTC 2013 Slackware 14.1 release candidate 3. Last call. :)

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

превращают

Еще одна ломающая новость: в Каноникал проник шпиён Поттеринга. Огласите подозреваемых? Или всё же «плюшка хорошая, написать сами не можем, проще взять (старый) logind как есть»?

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

Возражения по сути есть?

Расскажите попродробней как зарплата Поттеринга повлияла на переход Арча и как «использование Fedora в будущей RHEL» переубедила Suse?

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

Вот только ядро - оно единственное (мы ведь сейчас за ваниль?), а инитов всяких разных как грязи, и причем запроектированных по-человечески, а не как сабж. Что позволено Юпитеру...

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

Мне ваш пост больше понравился, сравнивать теплое с мягким для оправдания бардака. Поттеринг, на мой взгляд, сначала программирует а проектированием занимается по мере удаления варнингов из своего кода. Такой подход вполне оправдан при сдаче курсовой но не более. До ума ничего не доводит, вместо этого переключается на новые, ни в чем не повинные задачи :)

A-234 ★★★★★
()
Ответ на: комментарий от tailgunner

Ivan_qrt> кроме него эти вещи никто даже не пытался унифицировать

Ты, оказывается, о (не)важности мотивации

Я, конечно, понимаю, что ты знаешь всё и обо всех, и кто чего хочет. Мне на это пофиг и обсуждать желания разработчиков, я не имею желания. Я сужу по результатам. И судя по результатам, кроме него эти вещи никто даже не пытался унифицировать. За деньги или из энтузиазма не имеет значения.

На уровне DBus не происходит ничего интересного - весь смысл в прикладных протоколах поверх DBus.

Ты специально так формулируешь, чтобы была бессмысленная хрень? Ты этой фразой хотел сказать, что нигде, кроме прикладных протоколах поверх DBus нет смысла? Или что прикладные протоколы поверх dbus работают без участия dbus? ЯННП.

Я думал, это понятно.

При всём моём желании это осмыслить, получается только бессмысленная фигня. И это усугубляется формой подачи в виде опровержения моих слов. Короче, если ты хочешь донести до меня какую-то мысль, изъясняйся, пожалуйста, более конкретно и доходчиво.

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

Расскажите попродробней как зарплата Поттеринга повлияла на переход Арча

А я сказал, что зарплата повлияла на переход? По-моему, ты приписываешь мне свои бредни. На переход Арча повлияло то, что поцеринг и К допилили systemd до минимальной юзабельности. Как _это_ связано с зарплатой поцерингу и К - надо объяснять?

как «использование Fedora в будущей RHEL» переубедила Suse?

SUSE позиционирует себя как ынтерпрайзный Linux, альтернативный Redhat, и внедрением systemd пытается поддерживать feature parity.

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

На уровне DBus не происходит ничего интересного - весь смысл в прикладных протоколах поверх DBus.

Ты специально так формулируешь, чтобы была бессмысленная хрень?

Просто лень объяснять очевидные вещи. Тем более, что всё объяснено в хедпосте.

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

кроме него эти вещи никто даже не пытался унифицировать

какие, нахрен, «вещи»? /bin/hostname? locale? У меня давно сложилось ощущение, что новая фича в системд появляется после просмотра Леннартом содержимого /bin (или как там оно сейчас в федоре называется). В общем, жду с нетерпением lsd как логического продолжения timedated и прочих hostnamed.

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

Вот только ядро - оно единственное (мы ведь сейчас за ваниль?), а инитов всяких разных как грязи, и причем запроектированных по-человечески, а не как сабж. Что позволено Юпитеру...

Ядро? Да. А вот модулей ядра как грязи. А разговор касался именно взаимоотношений между ядром и модулями.

init_6 ★★★★★
()
Ответ на: комментарий от A-234

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

А бардак он аналогичный. Так что нелогично видеть один но не обращать никакого внимания на другой бардак.

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

При это гнулинкусом называется только один из дистрибутивов дебиана :) Или уже появился Debian GNU/LinuxBSD?

Впрочем, это все равно не имеет никакого отношения к тому факту, что ядру, за неимением альтернативы, мы можем простить кривую модульность (как будто Линус кому-то обещал микроядро, ага).

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

Казалось бы простой момент. Как поменять хостнейм в современном линаксе так, что бы остался после ребута .. :D

Твои предположения?

vasily_pupkin ★★★★★
()
Ответ на: Пафос и груши. от aes_ultimum

Все гораздо проще. Ну кто такой был Поттеринг до systemd? Какая-то обезьяна родившая заикающийся pulseaudio. Звезда совершенно не величины Линуса, Шатлворта или Patrick the «god». А теперь?

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

А я сказал, что зарплата повлияла на переход?

Разработчик из команды Gentoo выступил с критикой systemd (комментарий) Старания Red Hat же, хотелось бы поподробней узнать - а вдруг связано? Вдруг поттерингофилия и арчеводам передалась?

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

С т.ч. зрения пользователя, три способа навскидку (хотя они используют одну и ту же механику под капотом):

echo new_hostname > /etc/hostname
echo new_hostname >> /etc/sysctl.conf
echo "systcl -w kernel.hostname = new_hostname" >> /etc/rc.local

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

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

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

Ога. Прикол заключается в том, что в зависимости от инита и приложений

1. /etc/hostname может игнорироваться

2. /etc/rc.local может не запускаться

3. То что было засунуто в kernel.hostname может быть перетерто каким-то NetworkManager, который любит выставлять hostname исходя из собственного протокола

Ну и «С т.ч. зрения пользователя, три способа навскидку» получат permission denied. Такие дела.

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

Я этого аргумента в упор не понимаю. Так-же можно говорить и что апстарт единственный, или системде единственный. POSIX условносовместимых ядер у нас вагон. Что значит - единственный?

привет эмбеддщикам

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

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

Да обсуждалось это мульён раз уже ...

1. RedHat зарабатывет денюшку на _сопровождении_ ПО
2. Поцтеринг пишет предельно бажный, недокументированный, запутанный компонент, _необходимый_ для корректной загрузки/работы ПО
3. RedHat этот компонент _обкатывает_ на Fedore, впихивает в RHEL 7
4. ....
5. PROFIT

и не надо пытаться искать других объяснений победному шествию этой кривой и _никому_кроме_RedHat`а_не_нужной_поделки_ ...

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

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

Тоже самое можно отнести и к каноникалу/апстарту.

отратил на изучение этого поцтеринговсого дерьма

Гспди, это система инициализации! Не оракл какой-нибудь, не сап, и даже не система мониторинга. Какое изучение?

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

Гспди, это система инициализации!

И поэтому Гспдь встраивает ее знание в гены!

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

Я не понял, ты сейчас решил поиграть в Танненбаума или что?

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

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