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, довольно быстро умрут естественной в этом случае смертью.

★★★★★

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

Экономить время загрузки можно гораздо проще и изящнее — не запуская 100500 тонн всяких ненужных демонов.

Вообще это заявлялось как одна из задач systemd - запускать демонов только при возникновении потребности в них. Не подключали принтер - нафиг нам CUPS. Подключили - ок, вот вам CUPS.

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

она накладывает дополнительные ограничения => нарушает условие GPLv2 об отсутствии дополнительных ограничений.

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

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

В любом случае - Линусу похер. Если ему похер на тивоизацию и зажатие кода крупными конторами, то тут уж точно похер будет.

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

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

Скорее наоборот, наличие. Почему из-за какого-то ненужного костыля нужно всем строчно переписывать свои демоны?

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

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

Поддерживаю

Те, кто двигает это говнище systemd - делают это по другим, совершенно не объективным (личным, политическим и пр.) причинам.

Интересно, каким?

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

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

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

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

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

Не факт. Если кто-то выпустит форк Linux под несовместимой лицензией, он автоматически становится конкурентом Торвальдса и Linux Foundation в борьбе за справедливость

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

похер == он это не запрещает. А GPL 3 запрещает

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

Интересно, каким?

Как вариант - продолжение цепочки SecureBoot - grub - ядро - systemd - сервисы.

Во всяком случае такая версия объясняет многое - нежелание Торвальдса под v3 переходить, одобрение SecureBoot всякими убунтами и редхатами, старательную рекламу и пропихивание systemd и всё такое, причём всё в одно и то же время.

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

Понятно, что это всё можно будет обойти, но хомячки зонд заглотят, что собственно и требуется.

Может и другая причина, конечно, быть, мы не узнаем, пока чего-нибудь из этой кухни не просочится.

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

ttnl **** (19.10.2012 16:54:46)

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

Ygor ★★★★★
()

И да я вижу ваш линакс в гробу вместе с его всем его говнищем.

Ygor ★★★★★
()

Ну теоретически ты прав, но на практике разницы в скорости загрузки системы на моей системе между systemd и sysvinit нет. Какие ваши мысли по этому поводу?

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

Если кто-то выпустит форк Linux под несовместимой лицензией, он автоматически становится конкурентом Торвальдса и Linux Foundation в борьбе за справедливость

Да ладно - никто не воспримет десяток каких-нибудь отморозков форкнувших ядро как конкурентов. Особенно если они не будут сильно выпендриваться поначалу. «Бу-га-га, эти идиоты форкнули ядро!!! БолгенОС, ReactOS, гы-гы, с блэкджеком и шлюхами». Вот что будет.

Не, есть, конечно, вероятность что внезапно на этих отморозков обрушится аццки неадекватная карающая десница СМИ и правосудия, возглавляемая Торвальдсом, Поттерингом и внезапно де Иказой, но тогда сразу станет понятно, что на самом деле всё обстоит совсем не так, как нам рассказывают Торвальдсы.

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

Вообще это заявлялось как одна из задач systemd - запускать демонов только при возникновении потребности в них. Не подключали принтер - нафиг нам CUPS. Подключили - ок, вот вам CUPS.

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

Едрить, да этот Леннарт Поттеринг просто дебил же!

Не, он правда такие примеры в оправдание приводит?

Stanson ★★★★★
()

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

Вот сейчас читаю это и думаю: «сейчас пойдёт какой-то бред с торжественным потрясанием ссылкой на readme или википедию». Читаю дальше — так и есть!

Опознавать поттерингофанатов так легко…

AX ★★★★★
()

fork — один из самых затратных в ядре

а вот хттп-сервер тянуть в инит совсем не затратно

xsektorx ★★★
()

Главная проблема systemd в том что даже изобретатель (RH) не планирует его использовать в ближайшие 5 лет.

А через 5 лет или Потеринг сдохнет или systemd или самозародится новая жизнь.
ps
зачем о нём спорить, если ни RHEL ни Ubuntu не планируют его использовать?

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

Главная проблема systemd в том что даже изобретатель (RH) не планирует его использовать в ближайшие 5 лет.

Со следующей весны в RHEL 7.

plm ★★★★★
()

******* ** ** ******* же.

FiXer ★★☆☆☆
()

леннардист...
добро пожаловать в дружный коллектив тебе подобных

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

Я даже не знаю в каком юниксе код копируется при форке.

Шindows же, там эмуляция форка целиком всё копирует. Про CreateProcess вообще молчу.

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

зачем о нём спорить, если ни RHEL ни Ubuntu не планируют его использовать?

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

Deleted
()

1. Poettering

2. .

3. ..

4. ...

5. AAAAAAAARRRRRRRRRRRRHG! RAGE RAGE RAGE RAGE RAGE RAGE!!!!!!!!!

GateKeeper ★★
()

Самый дурацкий аргумент привел.
Ты когда-нибудь видел, сколько времени раздупляются биосы серваков и рейд-контроллеров? Про форк вообще смешно, сколько миллисекунд займут все форки за все время загрузки? При том, что некоторые сервисы могут заблаговременно расплодить себя на 100500 экземпляров.

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

точно, а ЛП написал такой прожект на голом энтузиазме.

В некоторых крупных дев.конторах программерам вменяется в обязанность что-то изобретать в рабочее время.

Оно обкатается на Федоре и через 5-10 лет если не сдохнет, есть шанс что появится в RHEL

Появится в RHEL(не как доступный пакет которым никто не пользуется а как полная замена ) тогда и обсуждать стоит.

А пока никто не пользуется - зачем руками махать?

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

А пока никто не пользуется

4.2, здесь недавно была куча соплей о внедрении «этого.»

через 5-10 лет если не сдохнет, есть шанс что появится в RHEL

оно уже сейчас не хуже upstart`а, так что подозреваю куда скорее чем 5-10 лет.

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

здесь недавно была куча соплей о внедрении «этого.»

4.2
Были новости что пакет появился а не все сервисы перевели.

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

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

Хм... Однако, в p7 старый init останется и будет использоваться в серверных дистрибутивах. На сколько я в курсе планов.

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

а также просто серьезных людей. Им все это нужно.

Вот зачем это нужно мне ?

$ uptime
23:44:39 up 32 days...

$ uptime
23:45:04 up 364 days...

$ uptime
23:45:50 up 88 days

И так далее. Да вот у этого, который 364 days, на перезагрузке час fsck только работать будет, 2 минуты выигрыша от systemd мне ну никуда не сплющились...

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

Да и мегакомбайн из него делать - перебор.

Это - самое основное, за что надо по пальцам бить.

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

Ну извини — сообщество разработчиков линукса перешло на systemd

Это RH перешёл на systemd. А сообщество потянулось, так как, что не говори, а у RH руки на ключевых пакетах. Учитывая, что и udev втянули в systemd... А, теперь, ещё и журнал притягивают.

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

Остальные фичи типа «Respawning on service crash without losing connectivity» тоже не нужны ?

Да. В первую очередь потому, что не нужен service crash. Его лечить надо, а не скрывать.

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

а также просто серьезных людей

пробку выньте - давление ЧСВ спадет :)

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

Ложная аналогия не является ни аргументом, ни тем более доказательством :)

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

Загрузка компа - это нынче вообще форс-мажор, и принцип KISS тут наиболее важен, как при любой ликвидации последствий форс-мажора.

Вот именно. Systemd это и есть KISS, твой init - тысячи утилит, густо перемешанных, KISS'ом в них и не пахнет.

karbofos
()

Как правило, против Поттеринга приводятся несущественные аргументы

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

fang90 ★★★★★
()

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

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

Системный вызов fork — один из самых затратных в ядре,

скажите, сколько миллисекунд эти пункты занимают? 10? А сколько таких сервисов? 10? А сколько всего будет 10*10? У меня получилось 100, или ДЕСЯТАЯ СЕКУНДЫ. Ускорить загрузку на 0.1сек - это Великая Цель... Да...

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

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

ну да, инициализировать железяку - это мгновенно(особенно удалённую). А вот парсить ОДНУ строчку на этом вашем bash - три года ждать..

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

Эта фича реально экономит время загрузки.

каким образом оно ускоряет работу шлюза моего провайдера? а именно НА ЭТО тратится время.

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

ага... так ты посчитай что-ли...

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

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

КОМУ, кроме красноглазых школьников, нужна быстрая ЗАГРУЗКА? Думаешь эти твои корпорации только и делают, что перезагружают с секундомером, а потом меряются?

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

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

иногда есть - ведомый сервер должен загрузится ПОСЛЕ ведущего. Если на ведомом поставить супербыстрый init, то он взлетит. Без Сети. Т.е. его попросту НЕ БУДЕТ. Конечно можно заставить супербыстрый инит и подождать... А зачем он тогда?

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

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

ППКС

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

По совокупности выгода всегда существенна. Особенно на телефонах и прочих слабых

стесняюсь спросить - ты идиот, и вправду телефон выбираешь по времени перезагрузки?

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