Priča iza 'init' i 'systemd': Zašto je 'init' trebalo zamijeniti s 'systemd' u Linuxu


Pretplaćen sam na nekoliko popisa za slanje e-pošte povezanih s raznim Linux distribucijama i aplikacijama samo kako bih bio u tijeku s onim što se gdje događa. Koji su novi bugovi? Što su izdane zakrpe? Što se očekuje u sljedećem izdanju? i puno drugih stvari. Ovih je dana lista za slanje e-pošte jako popunjena s "Odaberite svoju stranu na Linux Divide", uglavnom na listi za slanje e-pošte Debiana, zajedno s nekoliko drugih.

O čemu se zapravo radi u "Odaberi svoju stranu u Linuxu Divide"?

Demon init bit će zamijenjen demonom systemd na nekim distribucijama Linuxa, dok ga je puno njih već implementiralo. Ovo je/će stvoriti veliki jaz između tradicionalnog Unix/Linux Guarda i New Linux Guarda – programera i administratora sustava.

U ovom ćemo članku raspravljati i rješavati sve upite jedan po jedan.

  1. Što je init?
  2. Što je systemd?
  3. Zašto je init trebao biti zamijenjen?
  4. Koje će značajke imati systemd.

Što je init?

U Linuxu, init je kratica za Initialization. Init je demonski proces koji se pokreće čim se računalo pokrene i nastavlja raditi dok se ne isključi. U stvari, init je prvi proces koji se pokreće kada se računalo podigne, što ga izravno ili neizravno čini nadređenim za sve ostale pokrenute procese i stoga mu se obično dodjeljuje “pid=1“.

Ako se na neki način init demon ne može pokrenuti, nijedan proces se neće pokrenuti i sustav će doći u fazu zvanu “Kernel Panic“. init se najčešće naziva System V init. System V je prvi dizajniran komercijalni UNIX operativni sustav i upotreba init-a na većini današnjih distribucija Linuxa identična je System V OS-u uz nekoliko iznimaka kao što je Slackware koji koristi BSD stil i Gentoo koji koristi prilagođeni init .

Potreba da se init zamijeni nečim savršenijim osjećala se dugo vremena i s vremena na vrijeme razvijeno je nekoliko alternativa, od kojih su neke postale izvorna init zamjena distribucije, a neke od njih su:

  1. Upstart – Init zamjenski demon implementiran u Ubuntu GNU/Linux i dizajniran za asinkrono pokretanje procesa.
  2. Epoha – Init zamjenski demon izgrađen oko jednostavnosti i upravljanja uslugom, dizajniran za pokretanje procesa u jednoj niti.
  3. Mudar – Init zamjenski demon napisan u Pythonu, implementiran na Pardus GNU/Linux i dizajniran za asinkrono pokretanje procesa.
  4. systemd – Init zamjenski demon dizajniran za pokretanje procesa paralelno, implementiran u niz standardnih distribucija – Fedora, OpenSuSE, Arch, RHEL, CentOS itd.

Što je systemd?

systemd je demon upravljanja sustavom nazvan UNIX konvencijom za dodavanje 'd' na kraj demona. Tako da se mogu lako prepoznati. U početku je izdana pod GNU općom javnom licencom, ali sada se izdanja objavljuju pod GNU manjom općom javnom licencom. Slično init-u, systemd je nadređeni za sve druge procese izravno ili neizravno i prvi je proces koji se pokreće pri dizanju pa mu se obično dodjeljuje “pid=1“.

systemd se može odnositi na sve pakete, pomoćne programe i biblioteke oko demona. Osmišljen je da prevlada nedostatke init. On sam po sebi je pozadinski proces koji je dizajniran za pokretanje procesa paralelno, čime se smanjuje vrijeme pokretanja i računalni troškovi. Ima puno drugih značajki u usporedbi s initom.

Zašto je postojala potreba za zamjenom init-a?

Proces pokretanja započinje serijski, tj. jedan zadatak počinje tek nakon što je pokretanje zadnjeg zadatka bilo uspješno i ako je učitan u memoriju. To je često dovodilo do odgođenog i dugog vremena pokretanja sustava. Međutim, systemd nije dizajniran za brzinu, već za uredno obavljanje stvari čime se zauzvrat izbjegavaju sva kašnjenja koja su UN-u potrebna.

Značajke systemd
  1. Čist, napredan i učinkovit dizajn.
  2. Jednostavniji postupak pokretanja.
  3. Konkurentna i paralelna obrada pri dizanju.
  4. Bolji API.
  5. Jednostavna sintaksa jedinica.
  6. Mogućnost uklanjanja opcijskih komponenti.
  7. Niska količina memorije.
  8. Poboljšana tehnika za izražavanje ovisnosti.
  9. Upute za inicijalizaciju napisane su u konfiguracijskoj datoteci, a ne u skripti ljuske.
  10. Iskoristite Unix Domain Socket.
  11. Zakazivanje poslova pomoću systemd kalendarskih mjerača vremena.
  12. Zapisivanje događaja s dnevnikom.
  13. Izbor bilježenja događaja sustava pomoću systemd kao i syslog.
  14. Dnevnici se pohranjuju u binarnu datoteku.
  15. systemd stanje se može sačuvati za pozivanje kasnije u budućnosti.
  16. Pratite proces koristeći cgroup kernela, a ne PID.
  17. Prijavom korisnika upravlja systemd-logind.
  18. Bolja integracija s Gnomeom za interoperabilnost.
Sustav uskih grla
  1. Sve na jednom mjestu.
  2. Nije standard POSIX.

Systemd i Distro integracija

Linux Distribution

Integracija

Fedora

Da, prva distribucija koja je usvojila systemd

Arch

Da

RedHat

Da

CentOS

Da

Debian

Da, Debian 8 kodno ime Jessie će prema zadanim postavkama imati systemd

Gentoo

Da, ali treba ga preuzeti, instalirati i konfigurirati s prilagođenim init-om

OpenSUSE

Da

Slack

Ne (Iako do sada nije usvojen u Slackware-u, Patric Volkerding nije pokazao nikakve naznake hoće li biti usvojen ili ne)

Ubuntu

Da, potrebno ga je instalirati i konfigurirati uz Upstream.

Polemika

Linus Torvalds, glavni arhitekt Linux kernela, smatra da stav ključnog programera systemd-a prema korisnicima i izvještajima o greškama nije u redu. Također je objavljeno da je systemd filozofija čudan i stran način kontrole procesa sustava. Isto je zabilježeno od Patric Volkerdinga i drugih značajnih Linux korisnika i programera, kao i preko online foruma, s vremena na vrijeme.

systemd vs init

Features init systemd
DBus Dependency – Mandatory No Yes
Device based Activation No Yes
Device dependency configuration with udev No Yes
Timer based Activation Cron/at Proprietary
Quota Management No Yes
Automatic Service Dependency Handling No Yes
Kills users Process at logout No Yes
Swap Management No Yes
SELinux integration No Yes
Support for Encrypted HDD No Yes
Static kernle module loading No Yes
GUI No Yes
List all the child processes No Yes
Sysv compatible Yes Yes
Interactive booting No Yes
Portable to non x86 Yes No
Adopted on Several Distro Several Distro
Parallel service startup No Yes
Resource limit per service No Yes
Easy extensible startup script Yes No
Separate Code and Configuration File Yes No
Automatic dependency calculation No Yes
Verbose debug Yes No
Version N/A V44+
Size 560 KB N/A
Number of Files 75 files 900 files + glib + DBus
Lines of code – LOC 15000 (Approx) 224000 (Approx) (inc Codes, comments and white space) 125000 (Approx) (acctual code)

Zaključak

Sve što radi kao pid=1 ne smije se pokvariti, ne smije biti nered i korisnici ga moraju učinkovito i djelotvorno kontrolirati. Mnogi korisnici vjeruju da zamjena init-a za systemd nije ništa drugo nego svaki put ponovno izmišljanje kotača kao nuspojava Linuxa. Ali to je raznolika priroda Linuxa. To je zato što je Linux toliko moćan. Promjena je dobra i moramo je cijeniti ako je za nju dobar razlog.

To je sve za sada. Ponovno ću biti ovdje s još jednim zanimljivim člankom koji ćete voljeti pročitati. Do tada ostanite s nama i povezani na Tecmint. Ne zaboravite nam dati svoje vrijedne povratne informacije u komentarima ispod.