The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Первый выпуск минималистичной системы инициализации Nitro

23.08.2025 09:34

Опубликован первый публичный выпуск проекта Nitro, развивающего минималистичную систему инициализации c функциями контроля над выполнением процессов. Проект развивает Лия Нойкирхен (Leah Neukirchen), одна из сопровождающих пакеты в дистрибутиве Void Linux. Код написан на языке Си и распространяется под лицензий 0BSD.

Nitro может применяться как в качестве init-процесса (pid 1), так и в форме непривилегированного процесса, контролирующего бесперебойное выполнение приложений в пространстве пользователя и перезапускающего задачи в случае сбоев. Поддерживается работа в Linux и FreeBSD, возможно применение в окружениях на базе стандартной Си-библиотеки Musl. В качестве областей применения упоминаются встраиваемые системы, образы ram-дисков (initramfs), контейнеры (Docker/Podman/LXC/Kubernetes), а также рабочие станции и серверные системы. Для управления работой сервисов и взаимодействия с init-процессом поставляется утилита командной строки nitroctl.

Вместо составных скриптов инициализации в Nitro применяется модель на основе выноса каждой функции в отдельный скрипт. Для каждого сервиса в иерархии /etc/nitro создаётся подкалог, в котором могут размещаться следующие скрипты: setup - содержит команды, выполняемые до запуска сервиса; run - определяет сценарий запуска сервиса; finish - включает команды, выполняемые после завершения сервиса. Для организации ведения лога применяется символическая ссылка с именем log, указывающая на другой сервис, которому будет перенаправлен вывод. Для отключения автозапуска сервиса достаточно создать в его каталоге файл с именем "down", а для игнорирования сервиса следует добавить символ "@" к имени каталога.

Автором проекта отмечаются следующие достоинства Nitro по сравнению с другими системами инициализации:

  • Всё состояние хранятся в ОЗУ, что упрощает работу в окружениях c дисковыми разделами в режиме только для чтения.
  • Архитиктура на основе обработки событий, не использующая опрос в режиме полинга (polling).
  • Отсутствие операций выделения памяти во время работы (все буферы выделяются при запуске).
  • Ограниченное использование файловых дескрипторов во время работы.
  • Поставка в форме одного самодостаточного исполняемого файла и утилиты для управления системой.
  • Отсутствие стадий компиляции конфигурации - работу сервиса определяют простые скрипты в связанном с сервисом каталоге.
  • Наличие функции перезапуска сервисов после сбоя.
  • Наличие механизма ведения логов, которые могут включаться как по умолчанию, так и выборочно для отдельных сервисов.
  • Возможность построения цепочки обработки лога, охватывающей несколько сервисов.
  • Работа не зависит от точности выставления системных часов.
  • Поддержка запуска во FreeBSD через /etc/ttys.
  • Возможность сборки в форме миниатюрного статически скомпилированного исполняемого файла при использовании musl libc.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Новые версии сервисного менеджера s6-rc и системы инициализации s6-linux-init
  3. OpenNews: Системный менеджер InitWare, форк systemd, портирован для OpenBSD
  4. OpenNews: Выпуск системы инициализации SysVinit 3.14
  5. OpenNews: Доступна система инициализации Finit 4.0
  6. OpenNews: Выпуск UIRD 2.0, унифицированной системы инициализации для модульных Linux-систем
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63764-init
Ключевые слова: init, nitro
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Анонимус_б67 (?), 10:18, 23/08/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –8 +/
     

  • 1.2, Аноним (2), 10:20, 23/08/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.5, Аноним (5), 10:24, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ещё чуть-чуть и до bsd init дорастут.
     
  • 1.6, Аноним (6), 10:28, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    > Код написан на языке Си

    Хорошо же :)

     

  • 1.13, Бегемот (?), 10:58, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    0BSD? Уважаемо. Мало кто лицензирует библиотеки под такими лицензиями. Никакой юридической мороки для пользователей вроде "включить текст лицензии" и т.п
     
  • 1.21, Alex154 (ok), 11:33, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Я не понимаю все эти системы инициализации. Для меня есть Systemd и Runit.

    А как вы относитесь к этим инитам? Я после того как узнал про Runit, на любые другие альтернативные иниты не смотрю. Что то минималистичное, что это.

     
     
  • 2.22, Бегемот (?), 11:38, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лицензия хорошая например у этого
     
  • 2.34, Аноним (34), 15:13, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >после того как узнал про Runit

    ну, справедливости ради, runit гадость. Ложка дегтя в бочке мёда (void).

     
  • 2.38, Аноним (38), 16:29, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Для меня есть Systemd

    Мир "немного" больше системды.

     
     
  • 3.44, Аноним (44), 17:49, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кавычки лишние.
     
  • 3.50, Аноним (-), 19:27, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Для меня есть Systemd
    > Мир "немного" больше системды.

    Какой мир? Мир васянов и нетакусей?
    Ну и "больше" не значит "лучше". Так то да, есть куча старого легаси от дидов, васяноподелок и прочего мусора. Ну и вот выродили очередное поделие.


     
  • 2.48, Аноним (48), 18:44, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    openrc гентугшная очень даже неплоха. И достаточно давно протестирована чтоб можно было не боятся багов.
    Сабж кстати весьма полезен ибо systemd мир перегружен слишком.
     

  • 1.25, Аноним (-), 12:45, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В качестве областей применения упоминаются встраиваемые системы

    Спасибо, я лучше с системдой пешком постою. Там "reset to factory" есть сразу. А в этой штуке - мне самому все это кодить? Во спасибо, time to market сразу так улучшается.

     
  • 1.26, Аноним (26), 13:36, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    *однО из сопровождающих
     
  • 1.27, НяшМяш (ok), 13:40, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    По списку достоинств выглядит прямо как системда (всё в памяти, один самодостаточный бинарник), но только всратая (пирамида скриптов).
     
     
  • 2.30, 12yoexpert (ok), 14:25, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    системда это где автопродление systemctl полтора часа занимает?
     
     
  • 3.36, Аноним (-), 16:22, 23/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.28, gregh (?), 13:45, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    "Архит_и_ктуру" только поправьте!
     

  • 1.29, kknight (ok), 14:23, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Никакая она не Лия, а бывший мужик.
     
     
  • 2.31, 12yoexpert (ok), 14:26, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну вот видишь, бывший
     
  • 2.33, Отсутствуют данные в поле Name (?), 15:07, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    это не он и не она, это оно
     
  • 2.39, Аноним (44), 17:01, 23/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.40, Аноним (40), 17:04, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > бывший мужик

    А что уже научились заменять Y-хромосому на X-хромосому в всём организме человека без летальных последствий?

     

  • 1.32, Аноним (32), 15:00, 23/08/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.35, Аноним (35), 15:34, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оно от runit из void отличается setup файлом и линком log вместо директории. Мне хоть openrc, хоть runit, лишь бы не systemd.

    Правда раздражает сетевая настройка, типа ifupdown-ng .
    Мол за вас все написано, только настраивайте. Но любое
    движение в сторону и iface manual со своими командами.

    Или tun/tap от qemu

     
  • 1.41, Аноним (42), 17:15, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, но какую пользу это пренисёт нашей Великой Стране!?
     
     
  • 2.43, Аноним (43), 17:25, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >пренисёт

    Тебе лично ничего. А Великая Страна - это Китай что ли? Потому ваша - так себе, непонятные просторы на карте, которыми рулит шайка гопоты из разноцветных башенок.

     
     
  • 3.45, Аноним (42), 18:06, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы очень агрессивно распространяете ненависть вас посадят за это и будут больно допрашивать
     
     
  • 4.49, Бубыльместер (?), 19:09, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже, он за пределами той территории, в которой за личное мнение могут посадить.
     
     
  • 5.55, Аноним (42), 20:37, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не обязательно именно на той территории садить, есть же международное сотрудничество и экстрадиция в ковре, сначала пусть ответит чей Тайвань и чей Крым.
     

  • 1.52, Аноним (52), 19:56, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пока что для контейнеров лучше tini ничего не придумали.
     
  • 1.53, Аноним (44), 19:59, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Опять demontools изобрели.
     
  • 1.54, Аноним (54), 20:21, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Концепция-то весьма здравая: логика на скриптах, остальное на Сях = удобно!
    Посмотрим чего-как дальше будет.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру