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.
- Mi az init?
- Mi az a systemd?
- Miért kellett az init-et cserélni?
- 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:
- Upstart – Az Ubuntu GNU/Linux rendszerben megvalósított, a folyamat aszinkron indítására tervezett init-cseredémon.
- 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.
- Mudar – Python nyelven írt init helyettesítő démon, Pardus GNU/Linux rendszeren implementálva, és a folyamat aszinkron indítására tervezték.
- 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
- Letisztult, előremutató és hatékony kialakítás.
- Egyszerűbb indítási folyamat.
- Párhuzamos és párhuzamos feldolgozás rendszerindításkor.
- Jobb API.
- Egyszerű egység szintaxis.
- Lehetőség az opcionális alkatrészek eltávolítására.
- Alacsony memóriaterület.
- Továbbfejlesztett technika a függőségek kifejezésére.
- Az inicializálási utasítás a konfigurációs fájlban van írva, nem pedig a shell scriptben.
- Használja a Unix Domain Socketet.
- Munkaütemezés rendszeres naptári időzítőkkel.
- Eseménynaplózás a naplóval.
- Választható a rendszeresemények naplózása a systemd és a syslog segítségével.
- A naplókat bináris fájlban tárolják.
- A systemd állapot megőrizhető, hogy később hívható legyen.
- Kövesse nyomon a folyamatot a kernel cgroup és nem PID használatával.
- A felhasználók bejelentkezését a systemd-login kezeli.
- Jobb integráció a Gnome-mal az interoperabilitás érdekében.
Szűk keresztmetszetek systemd
- Minden egy helyen.
- 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.