Zoeken op website

6 beste moderne Linux 'init'-systemen (1992-2023)


In Linux en andere Unix-achtige besturingssystemen is het init (initialisatie) proces het eerste proces dat door de kernel wordt uitgevoerd tijdens het opstarten, en dat een proces ID heeft (PID) van 1, dat op de achtergrond wordt uitgevoerd totdat het systeem wordt uitgeschakeld.

Het init proces start alle andere Linux-processen, dat wil zeggen daemons, services en andere achtergrondprocessen, en is daarom de moeder van alle andere processen op het systeem.

Een proces kan vele andere onderliggende processen op het systeem starten, maar als een ouderproces sterft, wordt init de ouder van het weesproces.

Door de jaren heen zijn er veel init-systemen verschenen in de belangrijkste Linux-distributies en in deze handleiding zullen we enkele van de beste init-systemen bekijken waarmee je kunt werken op het Linux-besturingssysteem.

1. Systeem V-init

Systeem V (SysV) is een volwassen en populair init-schema op Unix-achtige besturingssystemen, het is de ouder van alle processen op een Unix/Linux-systeem. SysV is het eerste commerciële Unix-besturingssysteem dat is ontworpen.

Bijna alle Linux-distributies gebruikten eerst het SysV init-schema behalve Gentoo dat een aangepaste init heeft en Slackware dat het BSD-stijl init-schema gebruikt.

Naarmate de jaren verstreken, zijn er, als gevolg van enkele onvolkomenheden, verschillende SysV init vervangingen ontwikkeld in de zoektocht naar efficiëntere en perfectere init-systemen voor Linux.

Hoewel deze alternatieven SysV proberen te verbeteren en waarschijnlijk nieuwe functies bieden, zijn ze nog steeds compatibel met originele SysV init-scripts.

2. SysteemD

SystemD is een relatief nieuw init-schema op het Linux-platform. Geïntroduceerd in Fedora 15, is het een assortiment gereedschappen voor eenvoudig systeembeheer. Het belangrijkste doel is het initialiseren, beheren en bijhouden van alle systeemprocessen tijdens het opstartproces en terwijl het systeem actief is.

Systemd init onderscheidt zich volledig van andere traditionele Unix init-systemen, in de manier waarop het systeem- en servicebeheer praktisch benadert. Het is ook compatibel met SysV- en LBS-init-scripts.

Het heeft enkele van de volgende opvallende kenmerken:

  • Strak, eenvoudig en efficiënt ontwerp
  • Gelijktijdige en parallelle verwerking bij het opstarten
  • Betere APIv
  • Maakt het verwijderen van optionele processen mogelijk
  • Ondersteunt gebeurtenisregistratie met behulp van journald
  • Ondersteunt taakplanning met behulp van systeemkalendertimers
  • Opslag van logs in binaire bestanden
  • Behoud van de systeemstatus voor toekomstig gebruik
  • Betere integratie met GNOME en nog veel meer

3. Parvenu

Upstart is een op gebeurtenissen gebaseerd init-systeem ontwikkeld door de makers van Ubuntu als vervanging voor het SysV init-systeem. Het start verschillende systeemtaken en -processen, inspecteert deze terwijl het systeem actief is en stopt ze tijdens het afsluiten van het systeem.

Het is een hybride init-systeem dat zowel SysV opstartscripts als Systemd-scripts gebruikt. Enkele van de opvallende kenmerken van het Upstart init-systeem zijn:

  • Oorspronkelijk ontwikkeld voor Ubuntu Linux, maar kan op alle andere distributies draaien
  • Op gebeurtenissen gebaseerd starten en stoppen van taken en services
  • Gebeurtenissen worden gegenereerd tijdens het starten en stoppen van taken en services
  • Gebeurtenissen kunnen door andere systeemprocessen worden verzonden
  • Communicatie met het init-proces via D-Bus
  • Gebruikers kunnen hun processen starten en stoppen
  • Opnieuw voortbrengen van diensten die abrupt sterven en nog veel meer

4. Open RC

OpenRC is een op afhankelijkheid gebaseerd init-schema voor Unix-achtige besturingssystemen. Het is compatibel met SysV init. Hoewel het enkele verbeteringen aan Sys V met zich meebrengt, moet je in gedachten houden dat OpenRC geen absolute vervanging is voor het bestand /sbin/init.

Het biedt een aantal illustere functies, waaronder:

  • Het kan op veel andere Linux-distributies draaien, waaronder Gentoo en ook op BSD
  • Ondersteunt door hardware geïnitieerde init-scripts
  • Ondersteunt een enkel configuratiebestand
  • Er worden geen configuraties per service ondersteund
  • Draait als een daemon
  • Opstarten van parallelle services en nog veel meer

5. runit

runit is ook een platformonafhankelijk init-systeem dat kan draaien op GNU/Linux, Solaris, *BSD en Mac OS X en het is een alternatief voor SysV init, dat servicesupervisie biedt.

Het heeft een aantal voordelen en opmerkelijke componenten die niet voorkomen in SysV init en mogelijk ook in andere init-systemen in Linux, waaronder:

  • Servicetoezicht, waarbij elke service is gekoppeld aan een servicedirectory
  • Een schone processtatus garandeert dat elk proces een schone staat heeft
  • Het heeft een betrouwbare houtkapfaciliteit
  • Snel opstarten en afsluiten van het systeem
  • Het is ook draagbaar
  • Verpakkingsvriendelijk
  • Kleine codegrootte en nog veel meer

6. s6

s6 biedt een compacte set tools voor UNIX, op maat gemaakt voor processupervisie, vergelijkbaar met daemontools en runit. Het vergemakkelijkt bewerkingen op processen en daemons.

Ontworpen als een toolkit voor servicebeheer op laag niveau, biedt s6 diverse tools die onafhankelijk of binnen het raamwerk ervan kunnen functioneren. Wanneer deze tools worden gecombineerd, leveren ze robuuste functionaliteit met minimale code.

Zoals ik eerder had vermeld, start en beheert het init-systeem alle andere processen op een Linux-systeem. Bovendien is SysV het primaire init-schema op Linux-besturingssystemen, maar vanwege enkele zwakke punten in de prestaties hebben systeemprogrammeurs er verschillende vervangingen voor ontwikkeld.

Hier hebben we naar een paar van die vervangingen gekeken, maar er kunnen andere init-systemen zijn waarvan je denkt dat ze de moeite waard zijn om in deze lijst te vermelden. U kunt ons hiervan op de hoogte stellen via het commentaar hieronder.