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 je init sistem koji je zasnovan na zavisnosti za operativne sisteme računara koji su slični Unix- u. Kreirao ga je Roj Marples, NetBSD programer koji je takođe bio aktivan u Gentoo projektu. [1] [2] Postao je šire prihvaćen kao init sistem izvan Gentoo projekta nakon odluke nekih Linuks distribucija da ne usvoje [1]systemd . [3] [4] [5]
Usvajanje
[uredi | uredi izvor]OpenRC je podrazumevani [2]init sistem i/ili supervizor procesa za:
- [3]Alpine Linux
- Funtoo
- Gentoo Linux
- [4]Hyperbola GNU/Linux-libre
- Maemo Leste
- Nitrux
OpenRCje dostupan [5]init sistem i/ili supervizor procesa za:
Dizajn
[uredi | uredi izvor]OpenRC se sastoji od nekoliko modularnih komponenti, od kojih su glavne init (opciono), osnovni sistem za upravljanje zavisnošću i daemon supervizor (opciono). Napisan je u ljusci kompatibilnoj sa C i POSIX - prihvatljiv shell program (Portable Operating System Interface) , što ga čini upotrebljivim na BSD i Linuks sistemima.
Osnovni deo OpenRC-a se bavi upravljanjem zavisnostima i raščlanjivanjem init skripte. OpenRC radi tako što skenira nivoe pokretanja, gradi grafikon zavisnosti, a zatim pokreće skripte koje su potrebne da se izvrše . Završava se tek onda kada su skripte pokrenute. OpenRC podrazumevano koristi modifikovanu verziju start-stop-daemon-a za upravljanje daemon-ima. [7]
Init skripte svoje sličnosti dele sa skriptama koje se koriste u sysvinit- u, ali nude i nekoliko funkcija koje služe da se njihovo kreiranje pojednostavi. Pretpostavlja se da skripte imaju start()
, stop()
i status()
; a sistem koristi promenljive koje su već deklarisane da bi kreirao podrazumevane funkcije. [8] Funkcija zavisnosti se koristi za deklarisanje zavisnosti od drugih usluga koje bi se radile sa LSB zaglavljima u sysvinit-u. Konfiguracija i mehanizam su razdvojeni konfiguracionim datotekama u direktorijumu conf.d i init datotekama u direktorijumu init.d.
Openrc-init se prvi put pojavio u verziji 0.25 kao zamena za /sbin/init koja nije obavezna već opciona. Podržano je nekoliko drugih pokretača, uključujući sysvinit i [8]Busybox . [9]
Nadzirući-daemon se prvi put pojavio u verziji 0.21 dajući OpenRC mogućnosti nadzora. Može se omogućiti u init skripti za nadzirućeg-daemon da se pokrene i nadgleda daemon-a. Podržano je nekoliko drugih daemon-skih supervizora, uključujući [9]runit [10] i [10]s6 . [11]
Karakteristike
[uredi | uredi izvor]- Prenosiv između Linuks- a, FreeBSD -a i NetBSD -a
- Pokretanje paralelnog servisa (podrazumevano je da je isključeno)
- Pokretanje koje je zasnovano na zavisnosti
- Proces segregacije kroz [11]cgroups [12]
- Ograničenja resursa po usluzi (ulimit)
- Razdvajanje koda i konfiguracije (init.d / conf.d)
- Proširive skripte za pokretanje
- init skripte sa stanjem ( da li je već pokrenuta? )
- Kompleksne init skripte za pokretanje više komponenti ( Samba [smbd and nmbd], NFS [nfsd, portmap, itd. ])
- Automatsko izračunavanje zavisnosti i naručivanje usluga
- Modularna arhitektura i razdvajanje opcionih komponenti ( cron, syslog )
- Ekspresivno i fleksibilno rukovanje mrežom (uključujući VPN, mostove, itd. )
- Opširni režim za otklanjanje grešaka
Reference
[uredi | uredi izvor]- ^ „History”. Pristupljeno 6. 4. 2020.
- ^ „Developers”. Pristupljeno 6. 4. 2020.
- ^ „Manjaro OpenRC 0.8.13 - reinventing init without systemd”. DistroWatch Weekly, Issue 612. 1. 6. 2015. Pristupljeno 2020-04-04.
- ^ „5 Differences Between TrueOS & Linux”. Pristupljeno 6. 4. 2020.
- ^ „Improving TrueOS: OpenRC”. Pristupljeno 6. 4. 2020.
- ^ „Devuan ASCII 2.0.0 stable release” (na jeziku: engleski). Pristupljeno 2021-01-18.
- ^ „user guide”. Pristupljeno 6. 4. 2020.
- ^ „service script guide”. Pristupljeno 6. 4. 2020.
- ^ OpenRC
- ^ „runit guide”. Pristupljeno 6. 4. 2020.
- ^ „s6 Guide”. Pristupljeno 6. 4. 2020.
- ^ „CGroups Support”. Pristupljeno 5. 4. 2020.