LINUX.ORG.RU
ФорумTalks

Популярно про systemd и Леннарта Поттеринга


4

3

После нескольких обсуждений и многочисленных критических высказываний в адрес systemd, у меня сложилось впечатления, что не все понимают в вопросе, о котором спорят. Как правило, против Поттеринга приводятся несущественные аргументы или эмоции, тогда как все аргументы уже давно им были высказаны безаппеляционно и по-существу (http://0pointer.de/blog/projects/why.html). Остановимся вкратце на killer-фиче «Socket-based Activation».

Традиционно в sysvinit извещение init о готовности сервиса был организован с помощью fork. Возьмем для примера rsyslogd и посмотрим, что происходит при его загрузке.

1)Init запускает bash, bash интерпретирует файл /etc/init.d/rsyslogd

2)Запускается бинарный файл /usr/sbin/rsyslogd

3)rsyslogd инициализирует себя, и в момент готовности к работе он делает fork. С этого момента вся деятельность происходит в дочернем процессе, а родительский немедленно умирает. Это делается для оповещения процесса bash, ожидающего возврата управления.

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

Системный вызов fork — один из самых затратных в ядре, поскольку, не смотря на copy-on-write, для дочернего процесса копируется практически все. Использование его всего лишь для оповещения — это как стрельба из пушки по воробьям. Здесь как нельзя лучше подходит выражение «broken by design». Такой способ запуска демонов считается классическим. Unix-way никто не отменял, просто глупо холить и лелеять подобные дурацкие традиции.

В systemd пункт 1 отсутствует полностью, а вместо fork() используется простая и незатратная посылка сообщения через сокет с помощью sendmsg.

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

★★★★★

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

Это всего про одну фичу. А там их — куча.

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

Тогда и картинок не надо. Люди склонны верить в простыни текста.

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

btw, убунта планирует переходить на системд?

Ok ()

В systemd пункт 1 отсутствует полностью, а вместо fork() используется простая и незатратная посылка сообщения через сокет с помощью sendmsg.

и кто это всё должен навелосипедить? Посылку сообщений через сокет

Harald ★★★★★ ()

Ты забыл добавить, что при Socket-based Activation не надо делать fork-exec демона, потому что он чудесным образом материализуется из астрала.

geekless ★★ ()
Последнее исправление: geekless (всего исправлений: 1)

Может лучше нацпол?

cipher ★★★★★ ()

Кроме преимуществ существуют еще и недостатки. А их достаточно, чтобы отказаться от сего поделия (!UNIXway,!KISS).

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

Люди склонны верить в простыни текста.

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

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

Для демонов вполне естественно появляться из астрала же, ня ^_^

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

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

Bad_ptr ★★★★ ()

Большинство «Проблем» в systemd лежат не в технической сфере.

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

Здравствуйте, это канал об аниме? Как мне скомпилировать Demon Prince Enma под freebsd?

geekless ★★ ()

Бинарные файлы протоколов, общая монстроподобность и несовместимость с другими *nix-системами. И да, sysv-проблемы.

IPR ★★★★★ ()

А как без форка от терминала оторваться?

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

Ты забыл добавить, что при Socket-based Activation не надо делать fork-exec демона

Что быстрее 1 fork или 3 forks?

ttnl ★★★★★ ()

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

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

и несовместимость с другими *nix-системами

теперь это проблемы других nix :)

И да, sysv-проблемы.

это что?

true_admin ★★★★★ ()

Надо бы песенку в духе Шнура про поцтеринга накалякать.

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

А как без форка от терминала оторваться?

В systemd - 1 fork. В sysvinit их — 3

ttnl ★★★★★ ()
Последнее исправление: ttnl (всего исправлений: 2)

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

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

Хотя не, он кажись вендузятник.

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

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

А их достаточно, чтобы отказаться от сего поделия (!UNIXway,!KISS).

Конкретно в данном случае, при агрессивной защите традиций наиболее сильна последняя буква S

ttnl ★★★★★ ()

Кстати, а кто-нить понял что главный тормоз это не форк, а шелл-скрипты?

для дочернего процесса копируется практически все.

стэк + всякая мелочёвка. Почему «практически всё»? Другое дело что на уровне ядра тоже много чего нужно сделать.

true_admin ★★★★★ ()

Ну и ради чего все это изящество ? Вопрос то не в «как», вопрос в «зачем» :-)

serg10etomarkov ()

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

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

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

Ну и ради чего все это изящество ? Вопрос то не в «как», вопрос в «зачем» :-)

Эта фича реально экономит время загрузки. И экономия — это не единственная фича. Посмотри на ссылку, которую я дал.

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

у меня сложилось впечатления, что не все понимают в вопросе, о котором спорят

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

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

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

это что?

sys v init - это то, из-за чего собираются впихивать везде systemd. Потому што в sysvinit'е козёл ноги сломает.

IPR ★★★★★ ()

меня systemd устраивает всем, кроме journald. Если бы его сделали отрываемым - я был бы счастлив.

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

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

Потому што в sysvinit'е козёл ноги сломает.

в чём там ноги ломать? Кроме как в симлинках и номерах, этим занимаются специально написанные костыли.

true_admin ★★★★★ ()

А конкретно эту фичу в самом инит поправить было явно не судьба.
Нужно было городить огромный блоб с http-сервером и qr-кодами.

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

в чём там ноги ломать? Кроме как в симлинках и номерах, этим занимаются специально написанные костыли.

А вот bsd-init костыли не нужны. Текстовый редактор и вперёд, на /etc/rc.conf и /etc/rc.local

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

ЗАЧЕМ ? :-)

Помимо школьников, у линукса есть вполне серьезные пользователи, типа мировых фондовых бирж, корпораций, а также просто серьезных людей. Им все это нужно. А школьникам — по крайней мере не ухудшит текущую ситуацию.

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

У всех у них есть дублирующие серверы, и за сколько запустят остановившийся, за 30 сек или за 5 сек ,роли для них не играет совершенно никакой.

serg10etomarkov ()

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

Да. Но вот для того, чтобы _посчитать_ выгоды от нее, требуется некоторая подготовка.

Я думаю, демоны, которые не перейдут на systemd, довольно быстро умрут естественной в этом случае смертью.

...но, если это и случится, то не из-за выгод в потреблении ресурсов.

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

У всех у них есть дублирующие серверы, и за сколько запустят остановившийся, за 30 сек или за 5 сек ,роли для них не играет совершенно никакой.

Увы, твоей квалификации недостаточно, чтобы понять, есть ли для них разница или нет.

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

Короче, аргументов, кроме гнутия пальцев нет, а это значит что аргументов нет вообще :-)

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

Да. Но вот для того, чтобы _посчитать_ выгоды от нее, требуется некоторая подготовка.

Выгода от нее однозначно есть и это — существенно. Таких фич — не одна, и по совокупности они дают ощутимый результат.

...но, если это и случится, то не из-за выгод в потреблении ресурсов.

Конечно. Отсутствие поддержки systemd будет свидетельствовать об отсталости их разработчиков.

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

Короче, аргументов, кроме гнутия пальцев нет, а это значит что аргументов нет вообще :-)

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

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

Выгода от нее однозначно есть и это — существенно

Вопрос о существенности самой выгоды не стоит, да?

Отсутствие поддержки systemd будет свидетельствовать об отсталости их разработчиков.

Вот видишь - ты и сам не считаешь ресурсный выигрыш существенным.

tailgunner ★★★★★ ()

Мда...

Интересно, кого кроме видндузятников с их проблемами вообще волнует скорость загрузки?

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

Это чо - спорт, что-ли такой, перезагружать комп? Нахера вообще об этом заботиться? Чудеснейший init уж 100500 лет как прекрасно справляется с любыми задачами при загрузке, а потом про него можно забыть на месяцы минимум. Загрузка компа - это нынче вообще форс-мажор, и принцип KISS тут наиболее важен, как при любой ликвидации последствий форс-мажора. И если и есть какая-то вещь о которой имеет смысл думать вспоминая про init - так это то, что привело к необходимости загрузки. И лечить надо соответственно эту причину, а не последствия.

Никаких объективных причин для замены init - НЕТ и быть не может. Те, кто двигает это говнище systemd - делают это по другим, совершенно не объективным (личным, политическим и пр.) причинам. Но больше всего удивляют дебилы, которые пытаются оправдывать настырное продвижение ненужного systemd какими-то идиотскими, псевдотехническими аргументами типа топикстартера. Не имея ни малейшего понятия о мотивах всяких леннартов, высасывают из пальца какие-то там преимущества. Вот уж воистину слепое и тупое сектантство.

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

Тебе уже популярно объяснили что им на это чихать

У тебя есть опыт работы в таких местах или ты высосал это из пальца?

Если опыт есть — ссылку на профиль на hh в студию, я посмотрю.

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