LINUX.ORG.RU
ФорумTalks

Принципиально новая система инициализации

 ,


2

1

Намедни проснулся, хотел подняться с дивана - и тут меня осенило: что суть есть система инициализации? Это сущность, управляющая процессом загрузки системы, запуском системных сервисов в зависимости друг от друга, опционально распараллеливающая запуск тех сервисов, которые друг на друга не завязаны. Стоп, но есть же кое-что, что изначально было спроектировано как менеджер зависимостей с возможностью распараллеливания - это ж Make! И переделок больших не нужно - все, что могут обычные шелл-скрипты, в рамках Makefile возможно. Собственно, эта мысль так меня потрясла, что с дивана я так и не поднялся. Интересно было бы услышать мнения по этому поводу, а также ответ на вопрос, почему это никому раньше в голову не пришло (честно искал - не нашел)

почему это никому раньше в голову не пришло

Ты в этом уверен?

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

systemd. как его представляют альтернативномыслющие. Или оптимизация init, как её представляют разумные люди.

ziemin ★★ ()

Makefile
шелл-скрипты

Извращенцы.

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

Искал - не нашел. Может, плохо искал, конечно

https://wiki.debian.org/BootProcessSpeedup#Parallelizing_init.d_scripts

Parallel concurrent booting (using startpar) should now be active by default. Check that CONCURRENCY=makefile is set in /etc/init.d/rc.

i-rinat ★★★★★ ()
Ответ на: комментарий от ziemin

Это не совсем то. Systemd же не запускает непосредственно make, и sysvinit с openrc тоже. У них есть механизмы разруливания зависимостей и параллельного запуска, но я говорю как раз о замене этих своих механизмов на изначально предназначенный для этой задачи инструмент. Или они все-таки под капотом могут использовать GNU Make?

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

Кому и кобыла невеста, а некоторые вообще - страшно сказать - systemd используют

Barracuda72 ★★ ()
Ответ на: комментарий от i-rinat

Это я видел, но оно ведь все равно использует обычные shell-скрипты, разве не так?

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

Шелл скрипты та ещё кобыла, это да.

Deleted ()

Тег «хочется странного» добавь, пусть другие любители подтянутся.

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

но оно ведь все равно использует обычные shell-скрипты, разве не так?

А есть разница?

i-rinat ★★★★★ ()
Ответ на: комментарий от Barracuda72

Ты имеешь в виду предкомпиляцию? В смысле при каждом обновлении обновлять скрипты? Ну дык

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

Это я видел, но оно ведь все равно использует обычные shell-скрипты, разве не так?

Лучше это, чем ужасные хтонические Makefiles.

shimon ★★★★★ ()

БЫСТРО УДАЛИ ТЕМУ!!!! А то Поцеринг увидит и встроит в systemd свой велосипед аналогичный make! Может даже scons и PERL интегрирует!

Quasar ★★★★★ ()

а что-то в этой идее есть определённо...

только ты себе представляешь, как ужасно этот Makefile будет выглядеть?

Harald ★★★★★ ()

мысль любопытная на первый взгляд.

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

Ну так в том и разница, что Make изначально нацелен на разруливание всей этой непотребщины, а в том же sysvinit оно где-то сбоку прикручено - зависимости в комментариях в скрипте записаны, как там параллельность работает - я даже и не знаю

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

И снова я не въезжаю, чего ты имел в виду. Эта прекомпиляция там есть или ты ее добавить предлагаешь?

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

Леннарт берет проверенные годами решения и выбрасывает их на помойку, заменяя своим УГ. Я наоборот предлагаю заменить часть системы инициализации на решение, десятилетиями затачивавшееся для общего вида подобной задачи. Анти-леннарт, что ли... :)

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

а как ты, например, собираешься создавать правила для поднятия сетевых интерфейсов? Или загрузку/выгрузку random seed в /dev/random?

Harald ★★★★★ ()

Буду краток:

$ egrep "^CONCURRENCY=" /etc/init.d/rc
CONCURRENCY=makefile
DELIRIUM ☆☆☆☆☆ ()
Ответ на: комментарий от DELIRIUM

только к make(1) этот makefile не имеет никакого отношения.

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

Это как раз makefile-style concurrent boot. Сделано там по такому же принципу, как параллелит задачи make.

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

Интересно было бы услышать мнения по этому поводу, а также ответ на вопрос, почему это никому раньше в голову не пришло (честно искал - не нашел)

Потому что ты школьник. Школьникам часто приходят в голову (потому что там пусто) Идеи Вселенского Значения, Никем До Этого Не Открытые.

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

Это уже детали. Все, что возможно в рамках shell-скриптов, возможно и в Make-файлах

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