OpenRC | |
---|---|
Type | init dæmon |
Forfatter | Roy Marples |
Udvikler | OpenRC-udviklere |
Skrevet i | C [1] |
Operativ system | Linux , FreeBSD , NetBSD |
Første udgave | 5. april 2007 |
nyeste version | 0.45.2 (3. juli 2022) |
Licens | 2-klausul BSD-licens |
Internet side | GentooWiki , GitWeb |
Mediefiler på Wikimedia Commons |
OpenRC er et afhængighedsbaseret init-system , der kører sammen med et init-program ( /sbin/init ). Den er fuldt ud kompatibel med Gentoo scripting , men kan stadig bruges på andre Linux- og BSD- distributioner . Det blev skabt af Roy Marples, en NetBSD-udvikler, som også var aktiv i Gentoo-projektet. [2] [3]
OpenRC giver de sædvanlige funktioner, der forventes af et moderne init-system: afhængighedsbaseret indlæsning, adskillelsesproces via cgroups (på Linux og andre systemer, adskillelse mellem forskellige runlevels), miljøvariable konfigurationer .
Operativsystemer som Gentoo , Alpine Linux , Hyperbola GNU/Linux-libre , Parabola GNU / Linux-libre , Maemo Leste , TrueOS og andre unix-lignende systemer bruger OpenRC , mens nogle andre som Devuan . Artix Linux tilbyder dette som én af mulighederne [4] . Dette betyder, at softwarepakkerne og Dæmonen for disse systemarkitekturer/ distributioner understøtter det, leverer det og/eller bruger tilgængelige scripts.
OpenRC består af flere modulære komponenter, de vigtigste er /init (valgfrit), det primære afhængighedsstyringssystem og supervisor- dæmonen (valgfrit). Den er skrevet i C og en POSIX -kompatibel shell, hvilket gør den velegnet til brug på BSD- og Linux-systemer. Størstedelen af OpenRC håndterer afhængighedsstyring og analyse af init -scriptudførelse.OpenRC fungerer ved at scanne runlevels, bygge en afhængighedsgraf og derefter køre den nødvendige scripting -tjeneste. Den afsluttes efter at have kørt scripts. Som standard bruger OpenRC en ændret version af start-stop-daemon til at administrere denne Daemon-tjeneste. [5]
Scripts ligner de scripts, der bruges i SysVinit- initialisering , men tilbyder flere funktioner, der gør dem nemmere at oprette. Scripts formodes at have start(), stop() og status(), og systemet bruger allerede erklærede variabler til at skabe standardfunktioner [6] . Afhængighedsfunktionen bruges til at erklære afhængigheder af andre tjenester, der skal udføres med LSB -headere i SysVinit . Konfigurationen og mekanismen er adskilt af konfigurationsfiler i conf.d-mappen og init-filer i init.d-mappen.
Openrc-init dukkede først op i version 0.25 som en valgfri erstatning for /sbin/init. Flere andre inits er understøttet, inklusive SysVinit og Busybox
Supervise-daemon dukkede først op i version 0.21, der muliggjorde openrc-overvågning. Det kan inkluderes i et init -script for en kontrol- dæmon at starte og styre en dæmon En dæmon - supervisor understøttes også med runit [7] og s6 [8] aktiveret .
OpenRC giver en række funktioner, som init-systemer såsom systemd , GNU Shepherd eller upstart har gjort innovative, såsom at køre hardware init - scripts eller understøttelse af cgroups . Implementeringen af sådanne funktioner krævede ikke store ændringer, der radikalt ændrede design og afhængigheder.
BusyBox kan bruges til at erstatte de fleste af de værktøjer, der er nødvendige for OpenRC ( awk , shell , init og andre POSIX -værktøjer) som hovedskal til OpenRC. Alle opkald, der normalt rejses af gaffel og exec , vil blive erstattet af hensyn til hastigheden.
OpenRC