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

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

ну а логи-то смотреть надо. А журнал прибит гвоздями...

А за использование syslog Поттер расстреливает лично. Ох уж эта аналитка. Хочешь - пользуйся, не хочешь, не пользуйся. Я вот хочу и пользуюсь. Мне нравится.

// ivan_qrt

anonymous ()

Все это напоминает ситуацию с нокией, в РХ уже внедрен «бывший» сотрудник М$. Сейчас стоит задача погрузить зонд-системд максимально глубоко (гном уже начал, на очереди кде), нарастить код до невменяемых размеров и проникнуть во все подсистемы, задавив конкурентов. Любая попытка выдрать зонд будет невозможна в виду сращивания с поциентом и приведет к летальному исходу.

OperaSoftvvare ★★ ()
Ответ на: комментарий от special-k

Каким образом тогда приложения будут общаться между собой?

Так же, как и раньше - unix-сокеты.

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

жить без dbus можно.

Жить и без системд можно. Да и без компа вообще можно жить, прикинь.

Мы то про свежие(bleeding edge) дистрибутивы линукса говорим.

А libc на десктопном линуксе только одна. Ну и ее очень близкий форк. И ничего. Брат жив, все ок.

// ivan_qrt

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

Но ведь гораздо проще установить одно соединение (к шине), чем 10..

special-k ★★★ ()
Ответ на: комментарий от cvs-255

Конечно, их может не быть, или же они могут быть не готовы.

special-k ★★★ ()
Ответ на: комментарий от OperaSoftvvare

Все это напоминает ситуацию с нокией, в РХ уже внедрен «бывший» сотрудник М$. Сейчас стоит задача погрузить зонд-системд максимально глубоко (гном уже начал, на очереди кде), нарастить код до невменяемых размеров и проникнуть во все подсистемы, задавив конкурентов. Любая попытка выдрать зонд будет невозможна в виду сращивания с поциентом и приведет к летальному исходу.

На первый взгляд - паранойя.

Но, при прикладывании ее к имеющимся разрозненным фактам, начинает вырисовываться запредельно тоскливая картина. :(

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

чувак, системде нужно! системде - прорыв! Поня (поттеринг лёня) сделал то, что до этого никто не смог сделать.

I want to ride my bicycle I want to ride my bike I want to ride my bicycle I want to ride it where I like

You say black I say white You say bark I say bite

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

Если их нет или они не готовы, то значит передающая программа тормозит. И тут уж dbus ничем не поможет

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

Поможет, ты цепляешься к нему, и на др. прогу тебе плевать, иначе же тебе придется реализовать механизм исключения/ожидания/инициализации и т.п. (системд) в _каждом_ приложении. Это так же усложняет взаимодействие, например, если всю жизнь 2 проги общались между собой, а ты вдруг решил написать третью, взаимодействующую с этими двумя, то тебе придется, либо менять код тех, либо писать костыли, в т.ч. реализующие фильтрацию (и инициализацию, и исключения, и ожидания..). И в итоге имеем, что имеем)

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

Сейчас стоит задача погрузить зонд-системд максимально глубоко (гном уже начал, на очереди кде),

Ага, наняли чувака руководить опенстаком, а портит он почему-то гном

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

Это не говоря о том, что я могу ждать определенные события от определенных прог в определенном порядке (и вообще с определенными правилами), и это все придется писать внутри _каждой_ программы. Я, к примеру, не хочу.

special-k ★★★ ()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Меня всегда веселили люди, которые кричат: «Долой дубас, давайте через сокеты пургу гнать!»

DBUS, если че, тоже сокеты юзает для коммуникации, но кроме этого он предоставляет новый уровень абстракции, позволяющий одной программе предоставлять сервис, а другой - к нему обращаться. При этом обеспечивается взаимозаменяемость такого сервера, например. Вспомни KDE3, там была такая штука, называлась DCOP, через которую можно было рулить, например Амароком 1.4, да и вообще почти любым компонентом кед. Это был предвестник современного DBUS.

Так что, сокеты или не сокеты - это вопрос отдельный. Главное - это что именно через эти сокеты передавать.

alex_the_v ★★★ ()
Ответ на: комментарий от special-k

special-k...

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

По теме — да. SystemD — овно, если коротко и механизм обеспечения доминирования R.H. в Open Source. Поттеринга расстрелять как вредителя.

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

Мде... Стивенс...

... бедолага Стивенс. Я так и вижу как он в гробу вентилятор из себя изображает от таких «каментов». Как «камент», так оборот. Вот и выросло поколение, ни х.. чего не понимающее в IPC... Тоже, как и special-k, рубист?

anonymous ()
Ответ на: special-k... от anonymous

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

special-k ★★★ ()
Ответ на: Мде... Стивенс... от anonymous

Что-то кроме покрякивания «эх молодежь» можно ожидать от Вас?)

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

Ааа...

... зачем? Я не смогу изложить всего Стивенса в формате форума. Вам его всё-таки следовало бы почитать. Для _начала_.

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

Вам...

... вообще-то ни чего не следует ожидать. =) Я сказал уже более чем достаточно. ;)

anonymous ()
Ответ на: Ааа... от anonymous

Если явление нельзя объяснить в одном предложении - оно ложно;)

special-k ★★★ ()
Ответ на: Мде... Стивенс... от anonymous

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

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

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

твоя жизнь - ложь)

p.s. другой аноним Ж:)

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

На определенном уровне, все так прозаично, что и пол предложения хватит)

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

Можно...

... я же Вам дал намёк. Как говорится на ЛОРе, «накинул лопатой». В контексте обсуждения dbus, Ваш постинг Разработчик из команды Gentoo выступил с критикой systemd (комментарий) это то, что я сказал выше. С чего Вы взяли что dbus это свет в окошке? И кто сказал что взаимодействие двух/трёх/.../сколько_влезет программ всенепременно должно выполняться через dbus/сокеты и только? Что, остальные средства IPC отменили? Или они слишком сложны в реализации?

Беда в том, что программист перестаёт думать о том, что возможно для решения его задачи существуют другие механизмы, отличные от dbus/сокетов.

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

Спасибо...

... поржал.

Не начинать же мне тебе всерьез объяснять в чем разница между IPC и шиной сообщений, и что эти понятия ортогональны.

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

http://ru.wikipedia.org/wiki/D-Bus с цитатой прямо оттуда:

D-Bus — система межпроцессного взаимодействия, которая позволяет приложениям в операционной системе общаться друг с другом.

Милейший, я не в курсе в каком ГПТУ Вас учили «программировать», но Вы действительно... «ортогональны» UNIX-программированию. =)))

P.S. Меня всегда забавляли диагносты по фотографиям и форумным сообщениям... Они вечно такие забавно-туповатые... =)))

anonymous ()
Ответ на: Можно... от anonymous

С чего Вы взяли что dbus это свет в окошке?

С чего Вы взяли, что я взял)

Что, остальные средства IPC отменили?

Чем они лучше в контексте пользовательской рабочей среды?

Беда

С одной стороны, с чего бы, с другой, значит данная технология доказала свое превосходство.

special-k ★★★ ()
Ответ на: Можно... от anonymous

С чего Вы взяли что dbus это свет в окошке? И кто сказал что взаимодействие двух/трёх/.../сколько_влезет программ всенепременно должно выполняться через dbus/сокеты и только? Что, остальные средства IPC отменили? Или они слишком сложны в реализации?

Не стоит метать бисер. Там полная клиника.

ak380618 ()
Ответ на: Спасибо... от anonymous

Меня всегда забавляли диагносты по фотографиям и форумным сообщениям... Они вечно такие забавно-туповатые... =)))

Ах-ха-ха)) Это 5.

special-k ★★★ ()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: Спасибо... от anonymous

поржал

Это, видимо, у вас лучше всего получается. Думать-то гораздо сложнее.

цитатой прямо оттуда

То есть, вы всерьез мне тут собираетесь лечить, что DBUS - это просто такой подвид IPC, который аналогичен сокетам, да?

диагносты по фотографиям

Ниже это ваши слова, да?

Тоже, как и special-k, рубист?

Я предлагаю на этом дискуссию и закончить. Ваша исключительная узколобость лишает этот процесс всякого удовольствия.

alex_the_v ★★★ ()
Ответ на: комментарий от special-k

Причин несколько...

... если вдуматься, то ответов на вопрос

Чем они лучше в контексте пользовательской рабочей среды?

может быть несколько. Но самый очевидный — они могут оказаться более быстрыми/экономичными.

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

Про использование офтопика подколоть и про 1% на десктопах? ;) Но, если серьёзно, то не совсем она доказала превосходство. Она просто показала что возможна некоторая унификация в ущерб производительности и некоторое удобство в программировании. Больше ни чего. =)

anonymous ()
Ответ на: Спасибо... от anonymous

D-Bus — система межпроцессного взаимодействия, которая позволяет приложениям в операционной системе общаться друг с другом.

Это ты записал, что ли?)) Надо было: «система межпроцессного взаимодействия, которая позволяет процессам взаимодействовать»)) А то КО остался слегка недоволен)

И что, из этого мы делаем вывод, что любая шина сообщений основана на IPC.. эх.. с такой логикой, ни Аллах, ни Моисей, ни Стивенс, тебе уже не помогут;)

special-k ★★★ ()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: Причин несколько... от anonymous

самый очевидный — они могут оказаться более быстрыми/экономичными

Но это, в данном случае, никому не нужно.

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

и это unixway)

special-k ★★★ ()
Ответ на: комментарий от alex_the_v

Конечно...

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

Ниже это ваши слова, да?

Да. Мои. Но, в отличие от Вас, сформулировавшего утвердительное предложение с потугом на мой диагноз, я всё-таки, задаю вопрос, а не утверждаю что-либо. Есть такая штука как семантика (это намёк). Штука это тонкая... =)))

Я предлагаю на этом дискуссию и закончить.

С превеликим удовольствием! Вы знаете, избиение младенцев в 5:03 утра не входит в число моих любимых развлечений. =)))

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

Да упаси меня...

... Бог от записи чего-либо в какую-либо википедию. Пойду лучше на стене что-нибудь напишу... =)))

что любая шина сообщений основана на IPC.. эх.. с такой логикой, ни Аллах, ни Моисей, ни Стивенс, тебе уже не помогут;)

Бууугага!!! Второй за утро... Да как вы умудряетесь-то?!? =))) «Любая шина сообщений» не обязана быть основана на IPC. Просто потому что шина сообщений в данном случае и есть реализация IPC.

P.S. Всё нужное для понимания выделил курсивом. =)

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

Оба-нааа...

...

Но это, в данном случае, никому не нужно.

О_О Правда штоль?!? Вы это откуда взяли? А то вот например -> http://lists.freedesktop.org/archives/dbus/2011-January/013976.html народ всячески тестит и сумлевается. Видимо, не все готовы жертвовать... ;)

и это unixway)

Правда? =)))

anonymous ()

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

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

Ну, уж более полезен, чем сто-пицотый вариант DE или текстового редактора. Вообще, линукс работает в таком количестве _разнообразных_ применений, что вспоминать про необходимость одного фюрера как-то неприлично даже.

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

AlexM ★★★★★ ()
Ответ на: Оба-нааа... от anonymous

народ всячески тестит и сумлевается

А о каком количестве сообщений в секунду там идет речь?

special-k ★★★ ()
Ответ на: Оба-нааа... от anonymous

Правда? =)))

унификация в ущерб производительности и некоторое удобство в программировании
Предпочитайте переносимость эффективности.

Правда ;)

special-k ★★★ ()
Ответ на: Да упаси меня... от anonymous

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

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

У меня сусе, системд, но кириллица в консоли работает почему-то.

Nxx ★★★★★ ()

Правильно!

Бей Поцеринга - спасай планету!

Quasar ★★★★★ ()

Идея состоит в том, чтобы прибить все гвоздями к systemd так, чтобы появление альтернативных систем оказалось бы просто невозможным из-за отсутствия документации, непортируемых API, то есть неверных абстракций, которые вообще не имеют смысла без той штуки, которую у них не получается абстрагировать?

Еще один всё понял.

Но пост прекрасен. Удачи этим парням с OpenRC.

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

тоже суся с systemd, в tty нет кирилицы, пришлось ставить пакет с федоры фиксящий этот баг, и да Зенитар привел ссылку где хорошо написано про это.

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