LINUX.ORG.RU
ФорумTalks

За что на самом деле ненавидят systemd и Co

 


1

3

Рекомендуется к ознакомлению: http://habrahabr.ru/post/176571/

Выжимка для Ъ: ругают часто изменяющийся интерфейс, что приводит к необходимости каждый раз пересматривать способы решения своих задач пользователями. В качестве положительного примера приводится CLI Unix.

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

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

★★★★★

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

Меня это больше всего и раздражает, изменение интерфейса и лапшеобразный код еще можно пережить, ведь после нескольки лет разработки это должно прийти в норму (не так ли?). А вот монолитность заложена судя по всему концептуально и это напрягает.

dearboy
()

Вместо наглядных скриптов

Сразу видно человека, пару раз глянувшего на init-скрипты.

Вообще-то от «наглядных скриптов» уходят все - в каноникал пишут свой вариант, гентушники пишут свое, в макоси свой вариант.

Вокруг сплошной отход от «наглядных скриптов», почему-то.

plm ★★★★★
()

что приводит к необходимости каждый раз пересматривать способы решения своих задач пользователями

да пользователю ведь вообще плевать, что там под капотом?

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

Вокруг сплошной отход от «наглядных скриптов», почему-то.

Потому что на этом бабла не срубить - не современно, не Ынтерпрайзно, не проприетарно.

devl547 ★★★★★
()

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

И часто ты с инитом взаимодействуешь, а?

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

Сразу видно человека, пару раз глянувшего на init-скрипты.

Мимо. И разбирался в чужих, и писал свои. Да, неочевидные моменты есть, есть и недостатки, но несомненный плюс - единожды разобравшись, больше переучиваться не придется. По крайней мере, так было до появления других велосипедов. Теперь юниксоиду средней руки придется знать все это + systemd, SMF, upstart и б-г знает что еще.

Кстати, а что в макоси? Это же сертифицированный юникс, там вроде должен быть обычный init?

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

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

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

О том и речь, меняется интерфейс взаимодействия с системой. В данном случае пользователь = сисадмин.

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

Кстати, а что в макоси? Это же сертифицированный юникс, там вроде должен быть обычный init?

а там launchd с конфигами на XML

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

согласен.

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

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

Кстати, а что в макоси? Это же сертифицированный юникс, там вроде должен быть обычный init?

Там, собственно, launchd, с которого, говорят, systemd и слизан чуть менее, чем полностью.

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

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

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

Вообще-то от «наглядных скриптов» уходят все - в каноникал пишут свой вариант, гентушники пишут свое, в макоси свой вариант.

Вы просто не умеете их готовить. ☺

cat /etc/rc.d/xdm
#!/bin/sh
#
# $OpenBSD: xdm,v 1.1 2011/07/07 18:42:17 robert Exp $

daemon="/usr/X11R6/bin/xdm"

. /etc/rc.d/rc.subr

rc_cmd $1
beastie ★★★★★
()
Ответ на: комментарий от plm
# Add the following lines to /etc/rc.conf to enable the D-BUS messaging system:
#
# dbus_enable="YES"
#

. /etc/rc.subr
. /usr/local/etc/gnome.subr

dbus_enable=${dbus_enable-${gnome_enable}}
dbus_flags=${dbus_flags-"--system"}

name=dbus
rcvar=dbus_enable

command="/usr/local/bin/dbus-daemon"
pidfile="/var/run/dbus/${name}.pid"

start_precmd="dbus_prestart"
stop_postcmd="dbus_poststop"

dbus_prestart()
{
    if [ ! -d /var/db/dbus ]; then
        mkdir -p /var/db/dbus
    fi
    if [ ! -f /var/db/dbus/machine-id ]; then
        /usr/local/bin/dbus-uuidgen > /var/db/dbus/machine-id
    fi

    mkdir -p $(dirname $pidfile)
}

dbus_poststop()
{
    rm -f $pidfile
}


load_rc_config ${name}
run_rc_command "$1"

Сложно, аж ваще.

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

а потому что там такой тёмный лес, что без топора не продерёшься.

Эмм.. Шелл-скрипты на порядок проще аналогов.
Проблема не в них, а в разработчиках, усложняющих сверх меры.

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

Там, собственно, launchd, с которого, говорят, systemd и слизан чуть менее, чем полностью.

Врут. Но на первых порах Леннарт наиболее удачным с архитектурной точки зрения считал именно launchd. Во всяком случае он так писал в блоге.

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

единожды разобравшись, больше переучиваться не придется

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

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

alpha ★★★★★
()

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

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

Deleted
()

А все прочее - монолитность, лапшеобразный код

У системд этого нет. systemd - модульный, и код вроде нормальный.

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

Вообще-то от «наглядных скриптов» уходят все - в каноникал пишут свой вариант, гентушники пишут свое

Ради интереса скачал исходники upstart и открыл первый попавшийся conf:

    # Check for default runlevel in /etc/inittab
    if [ -r /etc/inittab ]
    then
        eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="\1";/p' /etc/inittab || true)"
    fi

    # Check kernel command-line for typical arguments
    for ARG in $(cat /proc/cmdline)
    do
    …

Доооо, далеко «все от скриптов ушли», очень далеко! :D

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

Это юникс для пользователей. Я вот только из этого сообщения узнал, что в OS X есть какие-то конфиги.

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

plm> Сразу видно человека, пару раз глянувшего на init-скрипты.

В том же дебьяне они вполне наглядные.

plm> в каноникал пишут свой вариант, гентушники пишут свое, в макоси свой вариант.

В канониКАЛе любят велосипедостроительством заниматься, пытаясь к себе всех переманить, чтобы за канониКАЛ всю работу делали. Гентушники... что онис воё написали? OpenRC - разве их разработка? А OS X тут вообще не к месту. Она всегда особняком стояла.

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

VeGeek> да пользователю ведь вообще плевать, что там под капотом?

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

Quasar ★★★★★
()

systemd

Что такое systemd? Не слышал. Это что-то вроде 512-байтового MBR?

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

Проблема не в поддержке инитскриптов, а в поптыке отказа от них. А если все будут всё ещё писать инитскрипты на shell, то зачем тогда systemd делать?

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

franchukroman> У системд этого нет. systemd - модульный, и код вроде нормальный

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

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

В случае с инитскриптом всё в комментариях подробно расписано. Да и там несколько специфичных для mysql проверок, если что. Как systemd всё это учитывает?

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

Ядро, например (оно там гибридное). Система инициализации тоже на юниксовую даже близко не похожа.

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

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

Модули включаются и выключаются на этапе сборки. Всё, что может быть отключаемо - отключаемо. В большинстве дистрибутивов http-север и qrcode отключены по умолчанию, все остальное включено.

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

Я не об отключаемости модулей. Я о том, что они гвоздями друг к другу прибиты. Ну нельзя тот же logind или journald использовать без systemd. Получается, что эти компоненты завязаны на один конкретный инит. Получается монолитность системного окружения. Это стопроцентный признак defective by design.

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

В случае с инитскриптом всё в комментариях подробно расписано.

Расписано. Иначе там бы черт ногу сломал.

Да и там несколько специфичных для mysql проверок, если что. Как systemd всё это учитывает?

sanity_checks? Покажи пруф их нужности.

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

franchukroman> Расписано. Иначе там бы черт ногу сломал.

Вот только в юните systemd тоже комментарии есть. К чему бы это?.. ;)

franchukroman> sanity_checks? Покажи пруф их нужности.

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

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

Там XNU == Mach 3 + BSD + I/O Kit. Чем неюниксово? И каким образом архитектура ядра связана с его юниксовостью?

Система инициализации тоже на юниксовую даже близко не похожа.

SuS (Single Unix Specification) не определяет требования к системе инициализации вообще. Да и, мне кажется, ОС без системы инициализации (как многие старые Live и embedded, где вместо системы инициализации - простой скриптик) - тоже юникс.

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

franchukroman> И каким образом архитектура ядра связана с его юниксовостью?

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

franchukroman> SuS (Single Unix Specification) не определяет требования к системе инициализации вообще.

То бишь, QNX при таком раскладе - тоже UNIX? ;)

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

Вот только в юните systemd тоже комментарии есть. К чему бы это?.. ;)

Есть. Я ничего против комментариев не имею, только вот в файле для systemd без них разобраться было бы гораздо проще, чем в инитскрипте.

Deleted
()

systemd ненавидят только те, кто когда-то давно с кровью и потом осилил баш-скриптинг, и то не в совершенстве, а на грани школьника, и теперь не в состоянии разобраться в чем-то новом.

люди, которые не в состоянии обучаться в процессе деятельности, в области ИТ обречены.

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