5 najboljših sodobnih sistemov Linux init (1992-2015)


V Linuxu in drugih Unixu podobnih operacijskih sistemih je postopek init (inicializacija) prvi postopek, ki ga jedro izvede ob zagonu. Ima ID procesa (PID) 1, izvaja se v ozadju, dokler se sistem ne izklopi.

Init proces zažene vse druge procese, to so demoni, storitve in drugi procesi v ozadju, zato je mati vseh drugih procesov v sistemu. Proces lahko zažene številne druge podrejene procese v sistemu, toda v primeru, da nadrejeni proces umre, postane init nadrejeni osirotelemu procesu.

Z leti se je v glavnih distribucijah Linuxa pojavilo veliko sistemov init, v tem priročniku pa si bomo ogledali nekaj najboljših sistemov init, s katerimi lahko delate v operacijskem sistemu Linux.

1. Sistem V Init

System V (SysV) je zrela in priljubljena init shema v Unixu podobnih operacijskih sistemih, je nadrejena vsem procesom v sistemu Unix/Linux. SysV je prvi komercialni operacijski sistem Unix, zasnovan.

Skoraj vse distribucije Linuxa so najprej uporabile shemo init SysV, razen Gentoo, ki ima po meri init in Slackware, ki uporablja shemo init v slogu BSD.

Ker so minila leta, je bilo zaradi nekaterih pomanjkljivosti v misijah razvitih več nadomestkov initov SysV, da bi ustvarili učinkovitejše in popolnejše sisteme init za Linux.

Čeprav te alternative želijo izboljšati SysV in verjetno ponujajo nove funkcije, so še vedno združljive z izvirnimi skripti za vstop v SysV.

2. SystemD

SystemD je razmeroma nova init shema na platformi Linux. Predstavljen v Fedori 15, predstavlja vrsto orodij za enostavno upravljanje sistema. Glavni namen je inicializirati, upravljati in spremljati vse sistemske procese v zagonskem procesu in med delovanjem sistema.

Systemd init se popolnoma razlikuje od drugih tradicionalnih sistemov Unix init, saj se praktično približuje upravljanju sistema in storitev. Združljiv je tudi s skriptoma inicij SysV in LBS.

Ima nekaj naslednjih pomembnih lastnosti:

  1. Čist, neposreden in učinkovit dizajn
  2. Sočasna in vzporedna obdelava ob zagonu
  3. Boljši APIv
  4. Omogoča odstranjevanje neobveznih procesov
  5. Podpira beleženje dogodkov z uporabo časopisa
  6. Podpira razporejanje opravil z uporabo sistemskih časovnikov koledarja
  7. Shranjevanje dnevnikov v binarnih datotekah
  8. Ohranjanje sistemskega stanja za nadaljnjo uporabo
  9. Boljša integracija z GNOME in še veliko več

Preberite pregled Systemd init: https://fedoraproject.org/wiki/Systemd

Preberite tudi: Zgodba zadaj: Zakaj je bilo treba "init" v Linuxu nadomestiti z "systemd"

3. Upstart

Upstart je sistem dogodkov, ki temelji na dogodkih, ki so ga razvili proizvajalci Ubuntuja kot nadomestek za sistem SysV init. Zažene različne sistemske naloge in procese, jih pregleda med delovanjem sistema in ustavi med zaustavitvijo sistema.

Gre za hibridni sistem init, ki uporablja tako zagonske skripte SysV kot tudi skripte Systemd, nekatere pomembne značilnosti sistema init Upstart pa vključujejo:

  1. Prvotno razvit za Ubuntu Linux, vendar se lahko izvaja v vseh drugih distribucijah
  2. Zagon in ustavljanje nalog in storitev na podlagi dogodkov
  3. Dogodki se ustvarijo med zagonom in ustavitvijo nalog in storitev
  4. Dogodke lahko pošiljajo drugi sistemski procesi
  5. Komunikacija s postopkom init prek D-Bus
  6. Uporabniki lahko zaženejo in ustavijo lastne procese
  7. Ponovno drstenje storitev, ki nenadoma umrejo, in še veliko več

Obiščite domačo stran: http://upstart.ubuntu.com/index.html

4. OpenRC

OpenRC je shema init, ki temelji na odvisnosti, za Unix podobne operacijske sisteme in je združljiva s SysV init. Kolikor prinaša nekatere izboljšave sistema Sys V, ne pozabite, da OpenRC ni popolna zamenjava za datoteko/sbin/init.

Ponuja nekaj imenitnih lastnosti, ki vključujejo:

  1. Lahko se izvaja v drugih številnih distribucijah Linuxa, vključno z Gentoo in tudi na BSD
  2. Podpira skripte init, ki jih sproži strojna oprema
  3. Podpira eno konfiguracijsko datoteko
  4. Ni podprta nobena konfiguracija za storitev
  5. Deluje kot demon
  6. Zagon vzporednih storitev in še veliko več

Obiščite domačo stran: https://wiki.gentoo.org/wiki/OpenRC

5. runit

runit je tudi medinformacijski sistem init, ki se lahko izvaja na GNU/Linux, Solaris, * BSD in Mac OS X, in je alternativa za SysV init, ki ponuja nadzor nad storitvami.

Na voljo je z nekaterimi prednostmi in izjemnimi komponentami, ki jih ni mogoče najti v SysV init in morda drugih sistemih init v Linuxu, mednje pa spadajo:

  1. Nadzor storitve, kjer je vsaka storitev povezana z imenikom storitev
  2. Čisto stanje procesa, vsakemu procesu zagotavlja čisto stanje
  3. Ima zanesljiv objekt za sečnjo
  4. Hiter zagon in izklop sistema
  5. Je tudi prenosljiv
  6. Embalaži prijazno
  7. Majhna velikost kode in še veliko več

Obiščite domačo stran: http://smarden.org/runit/

Kot sem že omenil, se sistem init zažene in upravlja z vsemi drugimi procesi v sistemu Linux. Poleg tega je SysV glavna init shema v operacijskih sistemih Linux, vendar so zaradi nekaterih pomanjkljivosti v delovanju sistemski programerji zanjo razvili več nadomestkov.

Tu smo si ogledali nekaj teh nadomestkov, vendar bi lahko obstajali tudi drugi init sistemi, za katere menite, da jih je vredno omeniti na tem seznamu. Sporočite nam jih lahko v spodnjem oddelku za komentarje.