A SystemD init és szolgáltatáskezelő 259 verziója megjelent

Megjelent a Linux ökoszisztéma egyik legelterjedtebb init- és szolgáltatáskezelőjének a Systemd-nek a legfrisebb 259-es verziószámú kiadása, mely az év utolsó kiadásaként egyszerre hoz fejlesztői szempontból érdekes újdonságokat, kényelmi fejlesztéseket és néhány olyan változást is, amely előrejelzi, hogy milyen irányban halad tovább a népszerű init- és szolgáltatáskezelő fejlesztése.

systemd

A 259 kiadás egyik újdonsága, hogy kísérleti jelleggel megnyitja az utat a musl libc-vel történő fordítás felé, vagyis a szoftver kísérleti jelleggel glibc helyett musl libc-vel is fordítható. Ezt a fejlesztők kifejezetten óvatosan kezelik: a kiadási megjegyzések alapján musl alatt több funkció eleve nem érhető el, más részek pedig csak korlátozásokkal használhatók, és az sem ígéret, hogy ez a vonal hosszú távon biztosan megmarad. A folytatás attól függ, mennyi karbantartási többletet jelent, milyen hibák jönnek elő, és a disztribúciók részéről mekkora tényleges igény mutatkozik rá. A kiadásban a service manager Varlink IPC-je is sokat bővült: több információt és több műveletet ér el rajta keresztül, így a D-Bus mellett már reális alternatívának tűnik vezérlésre és lekérdezésre is.

Az OOM-események követése: új számlálók a unitoknál

A systemd 259 a hibakeresést azzal teszi pontosabbá, hogy a unitoknál megjelennek az OOMKills és ManagedOOMKills számlálók. Ezekből utólag kiderül, történt-e memórianyomás miatti folyamatkilövés, és ha igen, azt a kernel OOM kezelése vagy a systemd-oomd kezdeményezte-e. A naplók átnézését ez nem váltja ki, viszont gyorsan jelzi, hogy erőforráshiányról van szó, vagy inkább más irányban érdemes tovább keresni a problémát.

Kíméletesebb partíciós újraolvasás és párhuzamos kernelmodul-betöltés

A systemd 259-ben a systemd-udevd és a systemd-repart másképp olvassa újra a partíciós táblákat. A cél az, hogy ne egy nagy, mindent érintő újratöltés történjen. Inkább csak ott nyúljon hozzá a kernelben nyilvántartott partíciókhoz, ahol tényleg változás történt. Ez akkor fontos, amikor a partíciós tábla módosítása a telepítés, image-készítés vagy automatizált karbantartás része, és közben a lemez már használatban van.

Ezzel párhuzamosan a systemd-modules-load is gyorsulhat bizonyos helyzetekben. A konfigurált kernelmodulokat most már párhuzamosan is be tudja tölteni. Ha sok modult kell indításkor betölteni, ez csökkentheti az inicializálás idejét.

Naplózás, bootfolyamat, konténeres függőségek – és a SysV-szkriptek kivezetése

A systemd 259-ben a journal mostantól „persistent” módban dolgozik, tehát külön beállítás nélkül is tartósan, lemezre ír. Eddig az „auto” logika döntött, és a környezettől (például a /var/log/journal meglététől) függött, mi lesz a végeredmény.

A systemd-boot mostantól naplószinteket is kezel, így jobban követhető, mi történik a rendszerindítás során, és könnyebb a hibakeresés és a finomhangolás. A systemd-boot és a systemd-stub többé nem támogatja a TPM 1.2-t, a továbbiakban kizárólag a TPM 2.0 használatára építenek.

Konténeres környezetben rugalmasabbá vált a függőségek kezelése. Számos opcionális komponens mostantól a dlopen() függvény segítségével, igény szerint töltődik be, így egy adott könyvtár csak akkor válik tényleges függőséggé, ha a hozzá tartozó funkciót valóban használja a rendszer. Ez csökkentheti a konténerképek méretét és a kötelezően magukkal vitt könyvtárak számát.

Az új kiadásban a SysV szolgáltatásszkriptek támogatása elavult státuszba került, a tervek szerint a systemd 260-ban pedig végleg kivezetik. Ahol még ilyen szkriptek indítják a szolgáltatásokat, ott érdemes mielőbb natív systemd unitokra átállni, hogy a későbbi frissítések ne okozzanak kompatibilitási problémákat.

A részletes changelog a projekt GitHub oldalán olvasható.