Weboldal keresés

Az „init” és a „systemd” mögötti történet: Miért kellett az „init”-et „systemd”-re cserélni Linuxban


Feliratkoztam a különféle Linux disztribúciókhoz és alkalmazásokhoz kapcsolódó levelezőlistára, hogy mindig naprakész legyek, hol és hol történik. Mik az új hibák? Mik a kiadott javítások? Mi várható a következő kiadásban? és egy csomó más cucc. Napjainkban a levelezőlistán a „Choose your side on Linux Divide” felirat szerepel, főként a Debian levelezőlistán, és néhány mással együtt.

Miről szól a „Válaszd az oldaladat a Linux Divide-on”?

Az init démon a systemd démonra cserélődik néhány Linux disztribúción, miközben sokan már megvalósították. Ez óriási szakadékot teremt/ fog teremteni a hagyományos Unix/Linux Guard és az Új Linux Guard – programozók és rendszergazdák – között.

Ebben a cikkben az összes lekérdezést egyenként tárgyaljuk és oldjuk meg.

  1. Mi az init?
  2. Mi az a systemd?
  3. Miért kellett az init-et cserélni?
  4. Milyen funkciók lesznek a systemd birtokában.

Mi van benne?

Linuxban az init az inicializálás rövidítése. Az init egy démonfolyamat, amely azonnal elindul, amint a számítógép elindul, és addig fut, amíg le nem áll. Valójában az init az első olyan folyamat, amely a számítógép indításakor indul el, így közvetlenül vagy közvetve az összes többi futó folyamat szülőjévé válik, ezért általában „pid=1” van hozzárendelve.

Ha az init démon valahogy nem tud elindulni, akkor nem indul el a folyamat, és a rendszer eléri a „Kernel Panic” nevű szakaszt. Az init-et leggyakrabban System V initként említik. A System V az első olyan kereskedelmi UNIX operációs rendszer, amelyet a mai Linux disztribúció nagy részén terveztek, és az init használata a legtöbb Linux disztribúcióban megegyezik a System V OS rendszerrel, néhány kivétellel, mint például a BSD-stílusú Slackware és a Gentoo egyéni init-ot használ. .

Régóta érezhető volt az igény, hogy az init-et valami tökéletesebbre cseréljék, és időről időre több alternatívát is kidolgoztak, amelyek közül néhány a disztribúció natív init helyettesítője lett, amelyek közül néhány:

  1. Upstart – Az Ubuntu GNU/Linux rendszerben megvalósított, a folyamat aszinkron indítására tervezett init-cseredémon.
  2. Epoch – Init helyettesítő démon, amely az egyszerűség és a szolgáltatáskezelés köré épül, és a folyamat egyszálas indítására készült.
  3. MudarPython nyelven írt init helyettesítő démon, Pardus GNU/Linux rendszeren implementálva, és a folyamat aszinkron indítására tervezték.
  4. systemd – Init helyettesítő démon, amelyet a folyamat párhuzamos indítására terveztek, számos szabványos disztribúcióban implementálva – Fedora, OpenSuSE, Arch, RHEL, CentOS stb.

Mi az a systemd?

A systemd egy rendszerfelügyeleti démon, amelynek UNIX-konvenciója szerint a „d” a démon végén található. Így könnyen felismerhetők. Kezdetben GNU General Public License alatt adták ki, de mára a kiadások GNU Lesser General Public License alatt készülnek. Az inithez hasonlóan a systemd az összes többi folyamat szülője közvetlenül vagy közvetve, és ez az első olyan folyamat, amely rendszerindításkor indul, ezért általában hozzá van rendelve egy „pid=1”.

A systemd utalhat a démon körüli összes csomagra, segédprogramra és könyvtárra. Úgy tervezték, hogy kiküszöbölje az init hiányosságait. Ez maga egy háttérfolyamat, amely párhuzamos folyamatok indítására szolgál, így csökkentve a rendszerindítási időt és a számítási többletterhelést. Az inithez képest sok más funkcióval rendelkezik.

Miért volt szükség az init cseréjére?

Az init folyamat sorozatosan indul, azaz egy feladat csak azután indul el, hogy az utolsó feladatindítás sikeres volt és betöltődött a memóriába. Ez gyakran késleltetett és hosszú indítási időt eredményezett. A systemd-t azonban nem a gyorsaságra tervezték, hanem arra, hogy a dolgokat szépen elvégezzék, amivel elkerülhető az ENSZ által szükséges késedelem.

A systemd jellemzői
  1. Letisztult, előremutató és hatékony kialakítás.
  2. Egyszerűbb indítási folyamat.
  3. Párhuzamos és párhuzamos feldolgozás rendszerindításkor.
  4. Jobb API.
  5. Egyszerű egység szintaxis.
  6. Lehetőség az opcionális alkatrészek eltávolítására.
  7. Alacsony memóriaterület.
  8. Továbbfejlesztett technika a függőségek kifejezésére.
  9. Az inicializálási utasítás a konfigurációs fájlban van írva, nem pedig a shell scriptben.
  10. Használja a Unix Domain Socketet.
  11. Munkaütemezés rendszeres naptári időzítőkkel.
  12. Eseménynaplózás a naplóval.
  13. Választható a rendszeresemények naplózása a systemd és a syslog segítségével.
  14. A naplókat bináris fájlban tárolják.
  15. A systemd állapot megőrizhető, hogy később hívható legyen.
  16. Kövesse nyomon a folyamatot a kernel cgroup és nem PID használatával.
  17. A felhasználók bejelentkezését a systemd-login kezeli.
  18. Jobb integráció a Gnome-mal az interoperabilitás érdekében.
Szűk keresztmetszetek systemd
  1. Minden egy helyen.
  2. Nem POSIX szabvány.

Systemd és Distro integráció

Linux Distribution

Integráció

Fedora

Igen, az első disztribúció, amely a systemd-t elfogadja

Arch

Igen

RedHat

Igen

CentOS

Igen

Debian

Igen, a Debian 8 kódnév Jessie alapértelmezés szerint rendszeres lesz

Gentoo

Igen, de le kell tölteni, telepíteni kell és be kell állítani az oldalt egyéni inittel

OpenSUSE

Igen

Slack

Nem (Bár ezidáig nem alkalmazták a slackware-ben, Patric Volkerding nem mutatott semmilyen utalást, hogy elfogadják-e vagy sem)

Ubuntu

Igen, az Upstream szolgáltatással kell telepíteni és konfigurálni.

Vita

Linus Torvalds, a Linux kernel fő építésze úgy érzi, hogy a systemd kulcsfontosságú fejlesztőjének hozzáállása a felhasználókhoz, és a hibajelentések nem tűnnek megfelelőnek. Azt is közölték, hogy a systemd filozófia furcsa és idegen módja a rendszerfolyamatok irányításának. Ugyanezt rögzítette Patric Volkerding és más jelentős Linux-felhasználók és fejlesztők, valamint az online fórumokon, időről időre.

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)

Következtetés

Bármi, ami pid=1-ként fut, nem törhet el, nem lehet rendetlen, és azt a felhasználóknak hatékonyan és hatékonyan kell ellenőrizniük. Sokan úgy gondolják, hogy az init lecserélése systemd-re nem más, mint a kerék minden alkalommal újrafeltalálása a Linux mellékhatásaként. De ez a Linux sokszínűsége. Ez azért van, mert a Linux olyan erős. A változás jó, és értékelnünk kell, ha jó oka van annak.

Ez minden most. Ismét itt leszek egy másik érdekes cikkel, amelyet szívesen olvastok majd. Addig is maradjon velünk, és csatlakozzon a Tecminthoz. Ne felejtse el megadni nekünk értékes visszajelzését az alábbi megjegyzésekben.