OpenRC

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. srpna 2018; kontroly vyžadují 15 úprav .
OpenRC
Typ init démon
Autor Roy Marples
Vývojář Vývojáři OpenRC
Zapsáno v C [1]
Operační systém Linux , FreeBSD , NetBSD
První vydání 5. dubna 2007 ( 5. dubna 2007 )
Nejnovější verze 0.45.2 (3. července 2022)
Licence 2-klauzule BSD licence
webová stránka GentooWiki , GitWeb
 Mediální soubory na Wikimedia Commons

OpenRC  je init systém založený na závislostech , který běží spolu s init programem ( /sbin/init ). Je plně kompatibilní se skriptováním Gentoo , ale stále může být použit na jiných distribucích Linuxu a BSD . Vytvořil ho Roy Marples, vývojář NetBSD, který byl také aktivní v projektu Gentoo. [2] [3]

OpenRC poskytuje obvyklé funkce očekávané od moderního init systému: načítání založené na závislostech, proces segregace prostřednictvím cgroups (v Linuxu a jiných systémech, segregace mezi různými úrovněmi běhu), konfigurace proměnných prostředí .

Operační systémy jako Gentoo , Alpine Linux , Hyperbola GNU/Linux-libre , Parabola GNU / Linux-libre , Maemo Leste , TrueOS a další unixové systémy používají OpenRC , zatímco některé další jako Devuan . Artix Linux to nabízí jako jeden z možností [4] . To znamená, že softwarové balíčky a démon těchto systémových architektur/ distribucí jej podporují, dodávají a/nebo používají dostupné skripty.

Design

OpenRC se skládá z několika modulárních komponent, z nichž hlavní jsou /init (volitelně), hlavní systém správy závislostí a dozorčí démon (volitelně). Je napsán v C a v shellu kompatibilním s POSIX , takže je vhodný pro použití na systémech BSD a Linux. Většina OpenRC se zabývá správou závislostí a analýzou provádění init skriptů . OpenRC funguje tak, že skenuje úrovně běhu, vytváří graf závislostí a poté spouští potřebnou skriptovací službu. Ukončí se po spuštění skriptů. OpenRC standardně používá ke správě této služby démona upravenou verzi start-stop-daemon. [5]

Skripty jsou podobné skriptům používaným při inicializaci SysVinit , ale nabízejí několik funkcí, které usnadňují jejich vytváření. Skripty mají mít start(), stop() a status() a systém používá již deklarované proměnné k vytvoření výchozích funkcí [6] . Funkce závislostí se používá k deklaraci závislostí na jiných službách, které mají být spouštěny pomocí hlaviček LSB v SysVinit . Konfigurace a mechanismus jsou odděleny konfiguračními soubory v adresáři conf.d a init soubory v adresáři init.d.

Openrc-init se poprvé objevil ve verzi 0.25 jako volitelná náhrada za /sbin/init. Je podporováno několik dalších init, včetně SysVinit a Busybox

Supervise-daemon se poprvé objevil ve verzi 0.21 umožňující openrc dohled. Může být zahrnut do init skriptu pro řídicího démona pro spuštění a řízení démona.Správce démona je také podporován s povoleným runitem [7] a s6 [8] .

Funkce

OpenRC poskytuje řadu funkcí, které init systémy jako systemd , GNU Shepherd nebo upstart učinily inovativními, jako je spouštění hardwarových init skriptů nebo podpora pro cgroups . Implementace takových funkcí nevyžadovala velké změny, které radikálně mění design a závislosti.

Busybox a integrace OpenRC

BusyBox lze použít k nahrazení většiny utilit, které potřebuje OpenRC ( awk , shell , init a další nástroje POSIX ) jako hlavní shell pro OpenRC. Všechna volání normálně vyvolaná fork a exec budou nahrazena kvůli rychlosti.

Viz také

Poznámky

  1. Projekt open_rc Open Source na Open Hub: Stránka jazyků - 2006.
  2. Historie OpenRC . GitHub . Staženo 30. srpna 2020. Archivováno z originálu 18. února 2018.
  3. „Vývojáři NetBSD“. (Staženo 30. srpna 2020). Získáno 30. srpna 2020. Archivováno z originálu dne 19. července 2011.
  4. "Stabilní vydání Devuan ASCII 2.0.0". 17. července 2018 , devuan.org  (08/06/18). Archivováno z originálu 23. září 2018. Staženo 30. srpna 2020.
  5. Uživatelská příručka  (anglicky) . GitHub . - "Start-Stop-Daemon OpenRC má svou vlastní upravenou verzi ssd, která je historicky příbuzná a většinou syntaxe kompatibilní s ssd Debianu, ale byla přepsána od začátku." Získáno 30. srpna 2020. Archivováno z originálu dne 11. prosince 2021.
  6. Reference skriptů, Uživatelská příručka, Základní  funkce . GitHub . - "Předpokládá se, že všechny servisní skripty mají následující funkce: start() stop() status()". Získáno 11. března 2022. Archivováno z originálu dne 11. listopadu 2020.
  7. Průvodce  spuštěním . GitHub (6. dubna 2020). Získáno 30. srpna 2020. Archivováno z originálu dne 8. března 2021.
  8. manuál s6  (anglicky) . GitHub (30. srpna 2020). Získáno 30. srpna 2020. Archivováno z originálu dne 6. března 2019.
  9. "Podpora CGroups".  (Staženo 5. dubna 2020). Archivováno z originálu 25. ledna 2021. Staženo 30. srpna 2020.

Odkazy

OpenRC