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

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

Ещё раз это линки для того, чтобы приложение (DE, DM) общались с logind, по какому API общается с systemd неизвестно и документации нет, только реверсить и ковырять код.

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

ALSA никуда не делась, Пульс — всего лишь прослойка над alsa в ядре.

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

aes_ultimum,

http://www.h-online.com/open/features/Copyright-assignment-Once-bitten-twice-...

http://aseigo.blogspot.ru/2010/09/copyright-assignments-gone-wild-or-why.html

http://mjg59.dreamwidth.org/25376.html

http://lwn.net/Articles/443989/

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

Речь о том, что претензии есть, и что в сообществе они постоянно являются предметом горячих споров и обсуждений. И что это немаловажный фактор при выборе upstart vs systemd, Mir vs. Wayland и других подобных.

alpha ★★★★★ ()

одни говорят, что systemd хорошо, потому, что оно хорошо, вторые говорят, что systemd это плохо, просто потому, что оно плохо, НО!

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

лично мне не нравится сие поделие только потому, что я ниасилил его, а ниасилил почему? да потому, что оно мне не нужно. я привык к rc, я понимаю его логику, и меня там всё устраивает, а в systemd даже именование соединений меня не устраивает, после я даже тестить не стал.

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

в systemd даже именование соединений...

То есть в unpredictable predictable device names теперь тоже поттеринг с редхатом виноваты?

alpha ★★★★★ ()

На много ли пакеты в генте отстают от портов?

ritsufag ★★★★★ ()

пока читал долго думал, что у меня проблемы с русским. вроде слова все, даже предложения собраны. но что-то такая жесть, что ещёб пару абзацев, и моск вытек бы %)

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

спасибо.

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

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

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

из киллер-фич апача могу разве что .htaccess

+ mod_php

Но сейчас виртуальных хостинг уходит в историю

Бугога!

надоел apache и он начал писать nginx.

Ага, от безделья. Бред же.

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

Бугога!

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

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

кстати обновлённая инфа, нас попросили подополнять страничку про openrc для тех комитета debian, так что openrc даже на равных участвует в обсуждении, а systemd даже добавили в описание раздел Systemd vs Openrc. :)

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

хаха, если честно то имхо шансов у нас примерно 1 к 100 =).

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

Что это такое и сколько мэйнтейнеров его поддерживает? Ну ты понела. Хотя eudev может и возьмут себе.

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

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

Можно и без интернета жить, но некоторым скучно)

nerfur ★★★ ()

А ему уже пояснили с вертушки в щи, что это не его гентушниково дело?

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

nginx умеет всё необходимое

Умеет, но пока видимо недостаточно хорошо.

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

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

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

openrc позволил бы вылезти из политических дрязг двух контор на свежий воздух. Красивое решение было бы. Жаль тут не до красоты.

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

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

Причём, только на openSUSE. Ручной перезапуск systemd-vconsole.service помогает.

Systemd такой systemd.

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

Судя по тому, что убунтовцам в 13.10 пришлось юзать старую версию logind - проблема таки серьезная...

Почитай оригинальный пост Леннарта. Там ситуация интересная: Canonical портировали logind и на базе него что-то начали строить, а Леннарт взял и поменял половину API в новой версии logind. А реализация этого API, как водится, по всему systemd размазана. Как думаешь, кого Леннарт виноватым в такой ситуации назвал?

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

Чо бугога?

Зафиксировано срабатывание детектора админа локалхоста.

либо на виртуальные машины, либо на облачный хостинг

Как это относится к «умиранию» виртуальных хостов?

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

Собственно говоря FSF требует того же самого. Подозреваю, что у других коммерческих компаний аналогичный подход (да у того же Red Hat).

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

Как думаешь, кого Леннарт виноватым в такой ситуации назвал?

Конечно же Марка, который не хочет перейти на системд полностью.

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

А вот кстати - Леннарт же уверяет всех, что systemd насквозь модульный, но в доках он же пишет что-то типа «этот компонент неотделим от systemd».

alex-w ★★★★★ ()
Ответ на: комментарий от linuxnewb

Как это относится к «умиранию» виртуальных хостов?

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

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

А вот кстати - Леннарт же уверяет всех, что systemd насквозь модульный, но в доках он же пишет что-то типа «этот компонент неотделим от systemd».

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

anonymous ()

Нереально много букв, нереально много. Дочитал до: Если ничего не ломать то ни чего не ломается" стало всё ясно.. ещё полыхало про убунту у кого та, но эт ни чего..

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

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

Ок, и не собирался. ( и так всё ясно)

что в сообществе они постоянно являются предметом горячих споров и обсуждений.

Это проблема, и поскорей бы ей нашли какое-нибудь «универсальное» решение (которое всех устраивает).

И что это немаловажный фактор при выборе upstart vs systemd, Mir vs. Wayland и других подобных.

Главное что-бы он не преподносился как основной и единственный.

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

«сам API неплохо бы, который позволит написать замену для logind» ­имеется ввиду systemd-based замена?
Если уж писать замену, то по-моему с systemd лучше не связываться, соответственно нет необходимости выяснять, как они (logind и systemd) взаимодействуют.

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

я не вникал, кто во чтом виноват, я просто на своей родной генте юзаю родной (искоробочный) openrc. мне костыли ненужны.

funeralismatic ★★★ ()
Ответ на: комментарий от alex-w

У RedHat практически нет «своих» проектов. Вместо этого у них есть разработчики, которые работают _в_апстриме_. У Gnome, systemd и прочих нет CLA вообще, у Fedora Project есть CLA, которое устанавливает дефолтную лицензию, которая применяется, если не указана явно иная.

У FSF действительно есть CLA, но на то оно и FSF (non-profit). Есть свой вариант CLA у Apache, но в нём не передаются права на код.

У Canonical же CLA, во-первых, обязательно при работе над Mir и Upstart, во-вторых, содержит следующий текст:

Section 2.3

2.3 Outbound License Based on the grant of rights in Sections 2.1 and 2.2, if We include Your Contribution in a Material, We may license the Contribution under any license, including copyleft, permissive, commercial, or proprietary licenses. As a condition on the exercise of this right, We agree to also license the Contribution under the terms of the license or licenses which We are using for the Material on the Submission Date.

Это очень существенная разница.

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

Забавно, одни и те же товарищи безмерно любят монстроподобные X-ы, и с таким остервенением ненавидят systemd.

Наверное потому, что эти товарищи понимают, что в основе X-ов лежат стандартизированный протокол и API, и где ставится задача, создается API (расширение протокола) и потом делается реализация. И практически любой extension может быть выпилен, что не сломает работы остальных.

А вот с леннартоподелием всё наоборот.

no-dashi ★★★★★ ()

Разработчик из команды ненужно выступил с критикой того, что он не понимает

// fixed

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

We agree to also license the Contribution under the terms of the license or licenses which We are using for the Material on the Submission Date.

Существенная разница с чем?

anonymous ()

Чё спорить не пойму :)

Arch, системдэ, время загрузки старенького (уже 2 года) ноута:

Startup finished in 1.812s (kernel) + 804ms (userspace) = 2.616s

+ около 8 сек на загрузку ДЕ после логирования.

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

Всё прогрессивное человечество переползает

Один процент чтоле?

anonymous ()

О да, такие новости вдохновляют на комментарии.

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

Разработчик из команды нинужно выступил с критикой того, нинужно
// fixed
// практикант чтоле?

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

+ mod_php

Я давно не притрагивался к php руками, но разве это не самый медленный вариант из всех при нуле преимуществ, который юзают только школьники, вчера прочитавшие «как сделать сайт на друпале за час» и те только потому, что в вышеупомянутом фундаментальном труде по computer science был приведён полный конфиг апача для копипасты?

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

О да, это самая важная характеристика системы инициализации.

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

ох уж этот Поттеринг... пришлось из за этой systemd уйти с ARCH :(

Скоро на экранах! От создателей постов на LOR!

«ох уж этот Поттеринг... пришлось из за этой systemd уйти с GNU Linux :( »

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

Это же опенсорц, детка: Дали дерьмо - жри, и не спорь с автором!

И обязательно помолись Столлману перед едой!

Fixed.

Не было так что год назад друг давал тебе программу, сейчас она понадобилась, и ты её просто так, без пересборки, запустил

Под вайном?

Linux это быстрая и не глючная операционная система, удобная в работе
Но это применимо только к графическим оболочкам GNOME 2 и KDE 3

/0³, переключалку раскладок в третьекедах и многострочные глюки в терминале второгнома уже починили?

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

О да, это самая важная характеристика системы инициализации.

а мне пофиг на систему инициализации - главное в любом деле это результат, а не его исполение :)))

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