You can edit almost every page by Creating an account. Otherwise, see the FAQ.

OpenRC

Материал из EverybodyWiki Bios & Wiki
Перейти к:навигация, поиск

Ошибка скрипта: Модуля «Unsubst» не существует. 
Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.Ошибка скрипта: Модуля «Transclude» не существует.
Шаблон:Карточка/название
Шаблон:Wikidata
Шаблон:Wikidata

Шаблон:Сортировка: по изображениямШаблон:ИТ:Общие проверки

OpenRC — система инициализации на основе зависимостей, которая работает вместе с программой инициализации init. Она полностью совместима со сценариями Gentoo, но, тем не менее, может использоваться и в других дистрибутивах Linux и BSD. Он был создан Роем Марплсом, разработчиком NetBSD, который также принимал активное участие в проекте Gentoo.[1][2]

OpenRC предоставляет обычные функции, ожидаемые от современной системы инициализации: загрузка на основе зависимостей, процесс сегрегации через cgroups (в Linux и других системах — разделение между разными уровнями запуска), конфигурации переменных среды.

Такие операционные системы как Gentoo, Alpine Linux, Ошибка скрипта: Модуля «Не переведено» не существует., Parabola GNU/Linux-libre, Maemo Leste, TrueOS и ряд других unix-подобных систем используют OpenRC, в то время как некоторые другие, такие как Devuan, Artix Linux предлагают её как один из вариантов[3]. Это означает, что программные пакеты и демоны этих операционных систем/дистрибутивов поддерживают его, поставляют и/или используют доступные скрипты.

Дизайн[править]

OpenRC состоит из нескольких модульных компонентов, основными из которых является init (необязательная), основная система управления зависимостями и supervise-daemon (необязательно). Он написан на C и POSIX-совместимой оболочке, что делает его пригодным для использования в системах BSD и Linux. Основная система OpenRC занимается управлением зависимостями и анализом выполнения сценария инициализации. OpenRC работает путем сканирования уровней запуска, построения графа зависимостей и последующего запуска необходимой сценарной службы. Он завершается после запуска скриптов. По умолчанию OpenRC использует модифицированную версию start-stop-daemon для управления демонами.[4]

Скрипты имеют сходство со скриптами, используемыми в системе инициализации SysVinit, но предлагают несколько функций, упрощающих их создание. Предполагается, что сценарии имеют start(), stop() и status(), и система использует уже объявленные переменные для создания функций по умолчанию[5]. Функция зависимостей используется для объявления зависимостей от других служб, которые будут выполняться с заголовками LSB в SysVinit. Конфигурация и механизм инициализации разделены файлами настройки конфигурации в каталоге conf.d и файлами настройки инициализации в каталоге init.d.

Openrc-init впервые появился в версии 0.25 в качестве опциональной замены для init. Поддерживается несколько других систем инициализации, включая SysVinit и Busybox

Supervise-daemon впервые появился в версии 0.21, дающей возможность супервизора в openrc. Он может быть включен в init скрипте для supervise-daemon, чтобы он запускал и контролировал демоном. Поддерживаются так же другие супервизоры демонов, включая runit[6] и s6[7].

Особенности[править]

OpenRC обеспечивает ряд особенностей, которые преподносили инновационными такие системы инициализации, как systemd, GNU Shepherd или upstart, например, запуск аппаратных сценариев инициализации или поддержка cgroups. Реализация подобных функций не потребовала больших изменений, радикально изменяющих дизайн и зависимости.

  • Переносимость между Linux, TrueOS, FreeBSD и NetBSD
  • Параллельный запуск служб (по умолчанию отключен)
  • Загрузка на основе зависимостей
  • Разделение процессов через контрольные группы (cgroups)[8]
  • Ограничения ресурсов для каждой службы (ulimit)
  • Разделение кода и конфигурации (init.d / conf.d)
  • Расширяемые сценарии запуска
  • Скрипты инициализации с отслеживанием состояния (он уже запущен?(да))
  • Сложные сценарии инициализации для запуска нескольких компонентов ( Samba (smbd и nmbd), NFS (nfsd, portmap и Т. Д.))
  • Автоматический расчет зависимостей и определение порядка запуска служб
  • Модульная архитектура и разделение дополнительных компонентов ( Cron , syslog )
  • Выразительная и гибкая работа с сетью (включая VPN , Сетевые мосты и Т. Д.)
  • Подробный режим отладки

Интеграция Busybox и OpenRC[править]

BusyBox может использоваться, чтобы заменить большинство утилит, необходимых OpenRC (awk, shell, init, и другие POSIX-инструменты), в качестве основной оболочки. Все вызовы, как правило, возбуждаемые fork и exec, будут заменены ради повышения скорости.

См. также[править]

Примечания[править]

  1. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  2. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  3. Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.
  4. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  5. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  6. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  7. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  8. Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.

Ссылки[править]


This article "OpenRC" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:OpenRC. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[править]