OpenRC
Original author(s) | Roy Marples |
---|---|
Developer(s) | OpenRC Developers |
Initial release | 5 April 2007 |
Stable release | 0.45.2
/ 3 July 2022
|
Repository | |
Written in | C, Shell |
Operating system | Linux, FreeBSD, NetBSD |
Size | ~900 KB |
Type | Init daemon |
License | 2-clause BSD license |
Website | wiki.gentoo.org/wiki/Project:OpenRC |
OpenRC је init систем који је заснован на зависности за оперативне системе рачунара који су слични Unix- у. Креирао га је Рој Марплес, NetBSD програмер који је такође био активан у Gentoo пројекту. [1] [2] Постао је шире прихваћен као init систем изван Gentoo пројекта након одлуке неких Линукс дистрибуција да не усвоје [1]systemd . [3] [4] [5]
Усвајање
[уреди | уреди извор]OpenRC је подразумевани [2]init систем и/или супервизор процеса за:
- [3]Alpine Linux
- Funtoo
- Gentoo Linux
- [4]Hyperbola GNU/Linux-libre
- Maemo Leste
- Nitrux
OpenRCје доступан [5]init систем и/или супервизор процеса за:
Дизајн
[уреди | уреди извор]OpenRC се састоји од неколико модуларних компоненти, од којих су главне init (опционо), основни систем за управљање зависношћу и daemon супервизор (опционо). Написан је у љусци компатибилној са C и POSIX - прихватљив shell програм (Portable Operating System Interface) , што га чини употребљивим на BSD и Линукс системима.
Основни део OpenRC-а се бави управљањем зависностима и рашчлањивањем init скрипте. OpenRC ради тако што скенира нивое покретања, гради графикон зависности, а затим покреће скрипте које су потребне да се изврше . Завршава се тек онда када су скрипте покренуте. OpenRC подразумевано користи модификовану верзију старт-стоп-daemon-а за управљање daemon-има. [7]
Init скрипте своје сличности деле са скриптама које се користе у sysvinit- у, али нуде и неколико функција које служе да се њихово креирање поједностави. Претпоставља се да скрипте имају start()
, stop()
и status()
; а систем користи променљиве које су већ декларисане да би креирао подразумеване функције. [8] Функција зависности се користи за декларисање зависности од других услуга које би се радиле са LSB заглављима у sysvinit-у. Конфигурација и механизам су раздвојени конфигурационим датотекама у директоријуму conf.d и init датотекама у директоријуму init.d.
Openrc-init се први пут појавио у верзији 0.25 као замена за /sbin/init која није обавезна већ опциона. Подржано је неколико других покретача, укључујући sysvinit и [8]Busybox . [9]
Надзирући-daemon се први пут појавио у верзији 0.21 дајући OpenRC могућности надзора. Може се омогућити у init скрипти за надзирућег-daemon да се покрене и надгледа daemon-а. Подржано је неколико других daemon-ских супервизора, укључујући [9]runit [10] и [10]s6 . [11]
Карактеристике
[уреди | уреди извор]- Преносив између Линукс- а, FreeBSD -а и NetBSD -а
- Покретање паралелног сервиса (подразумевано је да је искључено)
- Покретање које је засновано на зависности
- Процес сегрегације кроз [11]cgroups [12]
- Ограничења ресурса по услузи (ulimit)
- Раздвајање кода и конфигурације (init.d / conf.d)
- Прошириве скрипте за покретање
- init скрипте са стањем ( да ли је већ покренута? )
- Комплексне init скрипте за покретање више компоненти ( Самба [smbd and nmbd], NFS [nfsd, portmap, итд. ])
- Аутоматско израчунавање зависности и наручивање услуга
- Модуларна архитектура и раздвајање опционих компоненти ( cron, syslog )
- Експресивно и флексибилно руковање мрежом (укључујући VPN, мостове, итд. )
- Опширни режим за отклањање грешака
Референце
[уреди | уреди извор]- ^ „History”. Приступљено 6. 4. 2020.
- ^ „Developers”. Приступљено 6. 4. 2020.
- ^ „Manjaro OpenRC 0.8.13 - reinventing init without systemd”. DistroWatch Weekly, Issue 612. 1. 6. 2015. Приступљено 2020-04-04.
- ^ „5 Differences Between TrueOS & Linux”. Приступљено 6. 4. 2020.
- ^ „Improving TrueOS: OpenRC”. Приступљено 6. 4. 2020.
- ^ „Devuan ASCII 2.0.0 stable release” (на језику: енглески). Приступљено 2021-01-18.
- ^ „user guide”. Приступљено 6. 4. 2020.
- ^ „service script guide”. Приступљено 6. 4. 2020.
- ^ OpenRC
- ^ „runit guide”. Приступљено 6. 4. 2020.
- ^ „s6 Guide”. Приступљено 6. 4. 2020.
- ^ „CGroups Support”. Приступљено 5. 4. 2020.