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 |
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.
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] .
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 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.
OpenRC