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 обязательно


Обсуждение (23) 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 +/
    > Код написан на языке Си

    Хорошо же :)

     
     
  • 2.23, Аноним (-), 12:20, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Си создан как раз для таких хеловордов. В проекте всего 2k строк кода, можно целиком держать в голове.
     
  • 2.42, Аноним (42), 17:17, 23/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Но очень небезопасно!
     

  • 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.32, Аноним (32), 15:00, 23/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У него есть еще пара хороших утилит, например: mblaze, snooze. И спасательный live-iso на базе void с поддержкой ZFS: hrmpf(правда без графики, но это можно легко самому исправить)

    https://github.com/leahneukirchen/leahutils

    https://github.com/leahneukirchen/hrmpf

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

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

    Или tun/tap от qemu

     
  • 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
    Добавить, Поддержать, Вебмастеру