OpenRC | |
---|---|
Tip de | demonul init |
Autor | Roy Marples |
Dezvoltator | Dezvoltatori OpenRC |
Scris in | C [1] |
Sistem de operare | Linux , FreeBSD , NetBSD |
Prima editie | 5 aprilie 2007 |
ultima versiune | 0.45.2 (3 iulie 2022) |
Licență | Licență BSD cu 2 clauze |
Site-ul web | GentooWiki , GitWeb |
Fișiere media la Wikimedia Commons |
OpenRC este un sistem init bazat pe dependențe care rulează împreună cu un program init ( /sbin/init ). Este pe deplin compatibil cu scripturile Gentoo , dar poate fi folosit în continuare pe alte distribuții Linux și BSD . A fost creat de Roy Marples, un dezvoltator NetBSD care a fost activ și în proiectul Gentoo. [2] [3]
OpenRC oferă caracteristicile obișnuite așteptate de la un sistem de inițializare modern: încărcare bazată pe dependențe, proces de segregare prin cgroups (pe Linux și alte sisteme, segregare între diferite niveluri de rulare), configurații variabile de mediu .
Sisteme de operare precum Gentoo , Alpine Linux , Hyperbola GNU/Linux-libre , Parabola GNU / Linux-libre , Maemo Leste , TrueOS și alte sisteme asemănătoare Unix folosesc OpenRC , în timp ce altele precum Devuan . Artix Linux oferă acest lucru ca unul singur . dintre opțiunile [4] . Aceasta înseamnă că pachetele software și Daemonul acestor arhitecturi/ distribuții de sistem îl susțin, îl furnizează și/sau utilizează scripturi disponibile.
OpenRC constă din mai multe componente modulare, principalele fiind /init (opțional), sistemul principal de gestionare a dependențelor și demonul supervizor (opțional). Este scris în C și un shell compatibil cu POSIX , ceea ce îl face potrivit pentru utilizare pe sistemele BSD și Linux. Cea mai mare parte a OpenRC se ocupă de gestionarea dependențelor și de analiza execuției scriptului de inițiere. OpenRC funcționează prin scanarea nivelurilor de execuție, construirea unui grafic de dependență și apoi rularea serviciului de scripting necesar . Se iese după rularea scripturilor. În mod implicit, OpenRC utilizează o versiune modificată a start-stop-daemon pentru a gestiona acest serviciu Daemon. [5]
Scripturile sunt similare cu scripturile utilizate în inițializarea SysVinit , dar oferă mai multe caracteristici pentru a le face mai ușor de creat. Scripturile ar trebui să aibă start(), stop() și status() și sistemul folosește variabile deja declarate pentru a crea funcții implicite [6] . Funcția de dependență este folosită pentru a declara dependențe de alte servicii care urmează să fie executate cu antete LSB în SysVinit . Configurația și mecanismul sunt separate prin fișierele de configurare din directorul conf.d și fișierele init din directorul init.d.
Openrc-init a apărut pentru prima dată în versiunea 0.25 ca înlocuitor opțional pentru /sbin/init. Sunt acceptate mai multe alte initări, inclusiv SysVinit și Busybox
Supervise-daemon a apărut pentru prima dată în versiunea 0.21, permițând supravegherea openrc. Poate fi inclus într-un script de inițializare pentru ca un demon de control să pornească și să controleze un demon.Un supervizor de demon este, de asemenea, suportat cu runit [7] și s6 [8] activate .
OpenRC oferă o serie de caracteristici pe care sistemele de inițializare, cum ar fi systemd , GNU Shepherd sau parvenit, le-au făcut inovatoare, cum ar fi rularea de scripturi de inițializare hardware sau suport pentru cgroups . Implementarea unor astfel de funcții nu a necesitat schimbări mari care să schimbe radical designul și dependențele.
BusyBox poate fi folosit pentru a înlocui majoritatea utilităților necesare OpenRC ( awk , shell , init și alte instrumente POSIX ) ca shell principal pentru OpenRC. Toate apelurile ridicate în mod normal de fork și exec vor fi înlocuite de dragul vitezei.
OpenRC