Historien bag init og systemd: Hvorfor init har brug for at blive erstattet med systemd i Linux


Jeg abonnerer på flere mailinglister relateret til forskellige Linux-distributioner og applikationer bare for at holde mig opdateret med, hvad der foregår hvor. Hvad er de nye bugs? Hvad er patches frigivet? Hvad forventes i næste udgivelse? og en hel masse andre ting. I disse dage er postlisten stærkt befolket med "Vælg din side på Linux Divide", hovedsageligt på Debian Mailing-liste sammen med et par andre.

init dæmonen vil blive erstattet med dæmon systemd på nogle af Linux-distributioner, mens mange af dem allerede har implementeret det. Dette skaber/vil skabe et stort hul mellem traditionel Unix/Linux Guard og New Linux Guard - programmører og systemadministratorer.

I denne artikel vil vi diskutere og løse følgende spørgsmål en efter en.

  1. Hvad er init?
  2. Hvad er systemd?
  3. Hvorfor skulle init udskiftes?
  4. Hvilke funktioner systemd vil eje.

I Linux er init en forkortelse for initialisering. init er en dæmonproces, der starter, så snart computeren starter og fortsætter med at køre, indtil den lukker ned. Faktisk init er den første proces, der starter, når en computer starter, hvilket gør den til forælder til alle andre kørende processer direkte eller indirekte, og derfor tildeles den typisk " pid = 1 ".

Hvis init dæmonen på en eller anden måde ikke kunne starte, startes ingen proces, og systemet når et trin kaldet “ Kernel Panic “. init betegnes oftest som System V init . System V er det første kommercielle UNIX-operativsystem designet og anvendelser af init på det meste af nutidens Linux-distribution er identiske med System V OS med nogle få undtagelser som Slackware ved hjælp af BSD-stil og Gentoo ved hjælp af brugerdefineret init .

Behovet for at erstatte init med noget mere perfekt blev mærket fra lang tid, og flere alternativer blev udviklet fra tid til anden, hvoraf nogle blev distributionens native init-erstatning, hvoraf nogle er:

  1. Upstart - En init-udskiftnings-dæmon implementeret i Ubuntu GNU/Linux og designet til at starte processen asynkront.
  2. Epoke - En init-udskiftningsdemon, der er bygget op omkring enkelhed og servicestyring, designet til at starte processen med enkelt tråd.
  3. Mudar - En init-udskiftnings-dæmon skrevet i Python, implementeret på Pardus GNU/Linux og designet til at starte processen asynkront.
  4. systemd - En init-udskiftningsdemon designet til at starte processen parallelt, implementeret i en række standarddistribution - Fedora, OpenSuSE, Arch, RHEL, CentOS osv.

En systemd er en System Management Daemon navngivet med UNIX-konventionen for at tilføje ' d ' i slutningen af daemon. Så at de let kan genkendes. Oprindeligt blev det frigivet under GNU General Public License, men nu frigives frigivelserne under GNU Lesser General Public License. I lighed med init er systemd overordnet til alle andre processer direkte eller indirekte og er den første proces, der starter ved opstart, og derved typisk tildelt en " pid = 1 ".

En systemd henviser muligvis til alle pakker, hjælpeprogrammer og biblioteker omkring dæmonen. Det var designet til at overvinde manglerne ved init. Det er i sig selv en baggrundsprocesser, der er designet til at starte processer parallelt, hvilket reducerer opstartstiden og beregningsomkostningerne. Det har mange andre funktioner sammenlignet med init.

En init-proces starter serielt, dvs. en opgave starter først, efter at den sidste opgavestart var vellykket, og den blev indlæst i hukommelsen. Dette resulterede ofte i forsinket og lang opstartstid. Systemd var dog ikke designet til hastighed, men til at få tingene gjort pænt, hvilket igen undgår al FN-nødvendig forsinkelse.

  1. Rent, stateforward og effektivt design.
  2. Enklere opstartsproces.
  3. Samtidig og parallel behandling ved opstart.
  4. Bedre API.
  5. Enkel enhedssyntaks.
  6. Evne til at fjerne valgfri komponenter.
  7. Fodspor med lav hukommelse.
  8. Forbedret teknik til at udtrykke afhængigheder.
  9. Initialiseringsinstruktion skrevet i konfigurationsfil og ikke i shell-script.
  10. Brug Unix Domain Socket.
  11. Jobplanlægning ved hjælp af systemd Kalendertimere.
  12. Hændelseslogning med journald.
  13. Valg af logning Systemhændelser med systemd såvel som syslog.
  14. Logfiler gemmes i binær fil.
  15. systemd-tilstand kan bevares for at blive kaldt senere i fremtiden.
  16. Spor processen ved hjælp af kernens cgroup og ikke PID.
  17. Bruger login administreret af systemd-logind.
  18. Bedre integration med Gnome for interoperabilitet.

  1. Alt på ét sted.
  2. Ikke POSIX-standard.

Linus Torvalds, chefarkitekt for Linux-kernen, føler holdning hos nøgleudvikler af systemd til brugere, og fejlrapporter synes ikke ok. Det blev også rapporteret, at systemfilosofi er underlig og en fremmed måde at kontrollere systemprocesser på. Det samme er optaget fra Patric Volkerding og andre bemærkelsesværdige Linux-brugere og -udviklere såvel som via onlineforum, tid til anden.

Alt, der kører som pid = 1, må ikke gå i stykker, må ikke være rodet og skal styres af brugerne effektivt og effektivt. Mange-en-bruger mener, at udskiftning af init til systemd ikke er andet end at genopfinde hjulet hver gang som en bivirkning af Linux. Men dette er den mangfoldige karakter af Linux. Dette skyldes, at Linux er så meget kraftfuldt. Forandring er god, og vi må sætte pris på det, hvis det er af en god grund.

Det er alt for nu. Jeg kommer her igen med en anden interessant artikel, som du vil elske at læse. Indtil da hold dig opdateret og tilsluttet Tecmint. Glem ikke at give os din værdifulde feedback i kommentarerne nedenfor.