LINUX.ORG.RU
ФорумTalks

Почему вместо systemd не используют make ?

 ,


0

2

В systemd есть «цели», которые надо «достичь» (т.е. в терминологии make обновить/собрать). Можно сказать, что задача состоит в том, чтобы собрать систему в память. И это как раз подошло бы для make.

Казалось бы unix way - это использовать уже́ то, что есть, грамотно скомбинировав с подходящими другими средствами.

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

не верю. Автора бы запинали за них. У него однозначно были весомые аргументы.

Einstok_Fair ★★☆ ()

У systemd гибридная система из зависимостей и событий, одним make тут не обойтись.

Язабан. Тупняк.

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

Потому что задача systemd не ограничивается «запустить группу процессов». Их ещё нужно уметь корректно завершать, если настроено – перезапускать, и проч.

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

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

пришлось бы написать ещё кучу костылей.

А разве не было уже таких готовых костылей в SysVinit ?

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

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

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

А разве не было уже таких готовых костылей в SysVinit ?

Чтобы получить тот же sysvinit, вид сбоку?

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

Единственный профит от systemd - распараллеливание. Вот его одно и надо было добавить, не переписывая всё

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

Единственный профит от systemd - распараллеливание

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

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

One of the main problems is, with System V init, all processes are started serially, one after another

Даже если опустить, что это личное мнение автора статьи, – это уж никак не переводится как «Единственный профит от systemd - распараллеливание». Более того, сам автор systemd пишет, что скорость загрузки не являлась главным приоритетом:

Myth: systemd is about speed.

Yes, systemd is fast (A pretty complete userspace boot-up in ~900ms, anyone?), but that’s primarily just a side-effect of doing things right. In fact, we never really sat down and optimized the last tiny bit of performance out of systemd. Instead, we actually frequently knowingly picked the slightly slower code paths in order to keep the code more readable. This doesn’t mean being fast was irrelevant for us, but reducing systemd to its speed is certainly quite a misconception, since that is certainly not anywhere near the top of our list of goals.

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

Myth: systemd is about speed.

Именно так этот рак и рекламировали изо всех щелей. Когда выяснилось, что это не так, решили отыграть назад и сделать вид, будто этого никогда не было. Но я-то помню. Я помню!

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

Поюсую тупак и забан, достаточно погуглить цели и задачи системд

cobold ★★ ()

Потому что systemd изначально позициониров себя как просто инит система замыливала всем глаза, ловко начав расширять свой функционал и вдруг стало именовать себя как системный менеджер. То есть как комбайн всего что только будет нужно и вся. Когда опомнились и начали хейтить по явным причинам было уже поздно. Позиция же разработчиков была ультимативна «Вы ничего не поняли, мы хорошие, а вы говно»

LINUX-ORG-RU ()

Для начала, ответьте на вопрос, почему сам make никто не использует - все сидят на CMake, под капотом которого к тому же тот же самый make. Что говорит о том, что make недостаточно высокоуровневый.

//я бы, кстати, сделал наоборот: систему сборки с синтаксисом systemd

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

~900ms, anyone?

Я! Я!

3 года назад 700мс до фула включая несколько процессов старт которого зависит от сетевой комуникации...

а вообще бред, таких чисел для системд не существует...

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

Я из cmake генерю ninja, а не make, тогда быстрее сборка и особенно пересборка идет.

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

кстати, многие так делают, причём давно, что тоже намекает на уровень нужности make

next_time ★★★★★ ()

Напиши нам proof of concept на Make, мы посмотрим и, если будет лучше systemd, перейдём на твой костыль. А пока это всё пустые бредни.

hateyoufeel ★★★★★ ()
  1. make падает, если одну из целей не удалось собрать, а от системы инициализации всё же ожидается, что всё, что можно стартовать, она стартует. Сисадмин будет гораздо счастливее, если демон SSH стартует несмотря на ошибку запуска nginx, а пользователь десктопа будет очень рад, если его DE сможет запуститься несмотря на сбой в работе cups. Ведь чем больше сервисов запустятся, тем проще будет чинить то, что сломалось. Конечно, бывают редкие исключения, когда нужно «всё или ничего», это, вероятно, в первую очередь встраиваемые решения, не предполагающие обслуживание в принципе (и то обычно лучше урезать доступный функционал, чем отказаться стартовать совсем), однако в этом случае используются кастомные решения для инициализации, либо можно заморочиться и настроить нужное поведение с помощью зависимостей между юнитами systemd. Ах да, ошибки бывают не только при исполнении команд инициализации, но и в самом синтаксисе makefile.

  2. systemd не только стартует всё, что нужно, но ещё и реагирует на события в реальном времени. Например, перезапускает упавшие сервисы, реагирует на изменения конфигурации оборудования и сети (некоторые сервисы могут запускаться только при подключении или отключении сети, например). Что-то выразить с помощью make можно, но большая часть use-case будет очень костыльной

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

make падает, если одну из целей не удалось собрать

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

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

Ты поехавший что ли?

С разморозкой. Этот поциент генерирует либо тупняк, либо бред. Я удивляюсь, как его до сих пор не забанили.

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

Почитал статью, в чем стыд не понял. Какое-то нытьё. make мож и не лучший, но вполне нормальный инструмент.

sergej ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)