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


Pretplaćen sam na nekoliko mailing lista vezanih za različite Linux distribucije i aplikacije samo da bih bio u toku s tim što se gdje događa. Koje su nove greške? Šta su objavljeni zakrpe? Šta se očekuje u sljedećem izdanju? i puno drugih stvari. Ovih je dana mailing lista prepuna “Odaberi svoju stranu na Linux Divide-u”, uglavnom na Debian Mailing listi zajedno s nekoliko drugih.

O čemu se radi "Odaberite svoju stranu na Linux Divide"-u?

Demon init će biti zamijenjen demonom systemd na nekim Linux distribucijama, dok ga je većina njih već implementirala. Ovo je/će stvoriti ogroman jaz između tradicionalnog Unix/Linux Guard-a i novog Linux Guard-a – programera i sistemskih administratora.

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

  1. Šta je init?
  2. Šta je systemd?
  3. Zašto je init trebalo zamijeniti?
  4. Koje karakteristike će systemd posjedovati.

Šta je init?

U Linuxu, init je skraćenica za Inicijalizaciju. init je demonski proces koji počinje čim se računar pokrene i nastavlja da radi sve dok se ne isključi. U stvari, init je prvi proces koji počinje kada se računar pokrene, što ga čini roditeljem svih ostalih pokrenutih procesa direktno ili indirektno i stoga mu se obično dodjeljuje „pid=1“.

Ako na neki način init demon ne može da se pokrene, nijedan proces neće biti pokrenut i sistem će dostići fazu koja se zove „Kernel Panic“. init se najčešće naziva System V init. System V je prvi komercijalni UNIX operativni sistem dizajniran i upotreba init na većini Linux distribucije danas je identična sa System V OS sa nekoliko izuzetaka kao što je Slackware koji koristi BSD stil i Gentoo koristeći prilagođeni init .

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

  1. Upstart – Init zamjenski demon implementiran u Ubuntu GNU/Linux i dizajniran za asinhrono pokretanje procesa.
  2. Epoha – Init zamjenski demon izgrađen oko jednostavnosti i upravljanja uslugama, dizajniran da pokrene proces jednonitnim.
  3. Mudar – Init zamjenski demon napisan u Pythonu, implementiran na Pardus GNU/Linux i dizajniran za asinhrono pokretanje procesa.
  4. systemd – Init zamjenski demon dizajniran za paralelno pokretanje procesa, implementiran u brojnim standardnim distribucijama – Fedora, OpenSuSE, Arch, RHEL, CentOS, itd.

Šta je systemd?

systemd je Demon za upravljanje sistemom nazvan po UNIX konvenciji za dodavanje 'd' na kraju demona. Tako da se mogu lako prepoznati. U početku je objavljen pod GNU Općom javnom licencom, ali sada su izdanja pod GNU manjom općom javnom licencom. Slično init-u, systemd je roditelj svih ostalih procesa direktno ili indirektno i prvi je proces koji počinje pri pokretanju, pa mu se obično dodjeljuje „pid=1“.

systemd, može se odnositi na sve pakete, uslužne programe i biblioteke oko demona. Dizajniran je da prevaziđe nedostatke init-a. To je sam pozadinski proces koji je dizajniran da pokreće procese paralelno, čime se smanjuje vrijeme pokretanja i računski troškovi. Ima mnogo drugih karakteristika u odnosu na init.

Zašto je postojala potreba za zamjenom init?

Init proces počinje serijski, tj. jedan zadatak počinje tek nakon što je zadnji zadatak bio uspješan i učitao se u memoriju. To je često rezultiralo kašnjenjem i dugim vremenom pokretanja. Međutim, systemd nije dizajniran za brzinu, već za uredno obavljanje stvari što zauzvrat izbjegava sva odlaganja koja su neophodna UN-u.

Karakteristike systemd-a
  1. Čist, napredan i efikasan dizajn.
  2. Jednostavniji proces pokretanja.
  3. Istovremena i paralelna obrada pri pokretanju.
  4. Bolji API.
  5. Jednostavna sintaksa jedinica.
  6. Mogućnost uklanjanja opcionih komponenti.
  7. Mala količina memorije.
  8. Poboljšana tehnika izražavanja zavisnosti.
  9. Instrukcija za inicijalizaciju napisana u konfiguracionoj datoteci, a ne u shell skripti.
  10. Iskoristite Unix Domain Socket.
  11. Planiranje poslova pomoću systemd kalendarskih tajmera.
  12. Evidentiranje događaja sa dnevnikom.
  13. Izbor evidentiranja sistemskih događaja sa systemd-om kao i syslog-om.
  14. Dnevnici se pohranjuju u binarnom fajlu.
  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 sa Gnomeom za interoperabilnost.
Uska grla systemd
  1. Sve na jednom mestu.
  2. Nije POSIX standard.

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 po defaultu imati systemd

Gentoo

Da, ali mora se preuzeti, instalirati i konfigurirati uz prilagođeno init

OpenSUSE

Da

Slack

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

Ubuntu

Da, potrebno je instalirati i konfigurirati uz Upstream.

Kontroverza

Linus Torvalds, glavni arhitekta Linux kernela, smatra da odnos ključnog programera systemd-a prema korisnicima i izvještaji o greškama ne izgledaju u redu. Takođe je objavljeno da je sistemska filozofija čudan i strani način kontrole sistemskih procesa. Isto je snimljeno od Patrica 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 mora biti kontrolirano od strane korisnika efektivno i efikasno. Mnogi korisnici vjeruju da zamjena init-a za systemd nije ništa drugo do iznova izmišljanje kotača svaki put kao nuspojava Linuxa. Ali ovo je raznolika priroda Linuxa. To je zato što je Linux toliko moćan. Promjena je dobra i moramo je cijeniti ako postoji dobar razlog.

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