OpenRC

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 5 august 2018; verificările necesită 15 modificări .
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 ( 05-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.

Design

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 .

Caracteristici

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.

Integrarea Busybox și OpenRC

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.

Vezi și

Note

  1. Proiectul open_rc Open Source pe Open Hub: Pagina de limbi - 2006.
  2. Istoria OpenRC . GitHub . Preluat la 30 august 2020. Arhivat din original la 18 februarie 2018.
  3. „Dezvoltatori NetBSD”. (Preluat la 30 august 2020). Preluat la 30 august 2020. Arhivat din original la 19 iulie 2011.
  4. „Devuan ASCII 2.0.0 stable release”. 17 iulie 2018 , devuan.org  (08/06/18). Arhivat din original pe 23 septembrie 2018. Preluat la 30 august 2020.
  5. Ghidul utilizatorului  (engleză) . GitHub . - „Start-Stop-Daemon OpenRC are propria sa versiune modificată de ssd, care este legată din punct de vedere istoric și în mare parte compatibilă cu sintaxele ssd-ului Debian, dar a fost rescrisă de la zero.” Preluat la 30 august 2020. Arhivat din original la 11 decembrie 2021.
  6. Referință Script, Ghidul utilizatorului,  Funcții de bază . GitHub . - „Se presupune că toate scripturile de serviciu au următoarele funcții: start() stop() status()”. Preluat la 11 martie 2022. Arhivat din original la 11 noiembrie 2020.
  7. Ghid  de lansare . GitHub (6 aprilie 2020). Preluat la 30 august 2020. Arhivat din original la 8 martie 2021.
  8. s6 manual  (eng.) . GitHub (30 august 2020). Preluat la 30 august 2020. Arhivat din original la 6 martie 2019.
  9. „Suport pentru CGroups”.  (Preluat la 5 aprilie 2020). Arhivat din original pe 25 ianuarie 2021. Preluat la 30 august 2020.

Link -uri

OpenRC