Az utolsó nagy változat megalkotása után két évvel, – jelentették be, amikor közzétette az indulást a szolgáltatáskezelő új verziója GNU Shepherd 0.9 (korábbi nevén dmd), amely folyamatban van amelyet a GNU Guix disztribúció fejlesztői fejlesztettek ki a rendszerfüggőség-tudatos SysV-init inicializálás alternatívájaként.
Pásztor szolgáltatásként aszinkron módon biztosítja a felhasználói terület funkcionalitását, amelyek a Shepherdben általános függvények és objektumadattípusok, amelyeket a Shepherd exportál az alap operációs rendszer valamilyen meghatározott módon történő kiterjesztésére. A systemd-től eltérően a felhasználói terület megfigyelési folyamata az adott felhasználóként fut.
Pásztorról
A felhasználói tér inicializálásának Shepherd modelljének középpontjában a kiterjesztés fogalma áll, amely a kompozíció egy olyan formája, amelyben a szolgáltatásokat úgy alakítják ki, hogy más szolgáltatásokat lefedjenek, tetszőlegesen kidolgozottabb vagy speciálisabb viselkedéssel kiegészítve azokat. Ez a sok modern rendszerindító rendszerben megtalálható példányosítási alapú függőségi kapcsolatokat fejezi ki, amelyek modulárissá teszi a rendszert, de lehetővé teszi a szolgáltatások változó interakcióját is egymással szolgáltatások önkényesen.
Pásztor úgynevezett virtuális szolgáltatásokat is nyújt amelyek lehetővé teszik a dinamikus küldést a kapcsolódó szolgáltatásobjektumok osztályán, például azokon, amelyek egy levélátviteli ügynököt (MTA) példányosítanak a rendszer számára.
A Shepherd démon által vezérelt rendszer a felhasználói terét irányított aciklikus gráfként ábrázolhatja, ahol a "rendszerszolgáltatás" (amely a korai rendszerindítási és indítási fázisért felelős) rootként, az összes későbbi inicializált szolgáltatás pedig a rendszerszolgáltatás funkcionalitásának kiterjesztése. , akár közvetlenül, akár tranzitív módon más szolgáltatásokon keresztül.
Guile Scheme-ben írva és konfigurálva, A GNU Shepherd jól programozható legyen a rendszergazda által, de a nem privilegizált démonok és szolgáltatások felhasználónkénti profiljának kezelésére is használható.
A szolgáltatásait és beállításait egységesen rendszerkódként tároljuk objektum-orientált, és bár az alapvető Guix rendszerrel a szolgáltatások alapvető halmaza biztosított, tetszőleges új szolgáltatások rugalmasan deklarálhatók, és a Guile objektumrendszerén, a GOOPS-on keresztül a meglévő szolgáltatások újradefiniálhatók a felhasználó belátása szerint, megkérve a Shepherd-et, hogy dinamikusan írja át a szolgáltatásokat a példányosítás konkrét módjai.
A GNU Shepherd-et eredetileg a GNU Hurddal való együttműködésre tervezték, majd később a Guix rendszer vette át.
A GNU Shepherd 0.9 fő újdonságai
Ebben a bemutatott új verzióban kiemelik, hogy az ideiglenes szolgáltatások koncepciója valósul meg (tranziens), amelyek a folyamatlezárás vagy a "stop" metódushívás miatti leállás után automatikusan megszakadnak, amelyre olyan szintetizált szolgáltatások esetén lehet szükség, amelyeket a megszűnés után nem lehet újraindítani.
A másik kiemelkedő változás az a "#:log-file" paraméter nélküli szolgáltatásokhoz, kimenet a sysloghoz biztosított és a "#:log-file" paraméterrel rendelkező szolgáltatások esetében a napló egy külön fájlba kerül, amely jelzi a naplózás idejét a $XDG_DATA_DIR könyvtárban tárolt, privilegizált Shepherd folyamatban.
Ezen túlmenően meg kell jegyezni, hogy a "make-inetd-constructor" eljárást hozzáadták az inetd-hez hasonló szolgáltatások létrehozásához, valamint a "make-systemd-constructor" eljárást a hálózati tevékenységben aktivált szolgáltatások létrehozásához ( stílus systemd socket aktiválás).
A többi változás közül amelyek kiemelkednek ebből az új verzióból:
- Eljárás hozzáadva a háttérszolgáltatás elindításához:
- „:supplementary-groups”, „#:create-session” és „#:resource-limits” paraméterek hozzáadva a „make-forkexec-constructor” eljáráshoz.
- Garantált zármentes működés a PID fájlok várakozása közben.
- Eltávolítottuk a Guile 2.0-val történő fordítás támogatását. Javítva a Guile 3.0.5-3.0.7-es verzióival kapcsolatos problémák.
- A Fibers könyvtár 1.1.0-s vagy újabb verziója szükséges a működéshez.
- Továbbfejlesztett dokumentáció és példák
- Shepherd már nem építhető Guile 2.0-val
- Javítás a Guile 3.0 fordító hibájában.[5-7]
- Frissített fordítások
Végül ha érdekel, hogy többet tudjon meg róla vagy szeretné megszerezni ezt az új verziót, tekintse meg a részleteket, a dokumentációt és töltse le a webhelyet a következő link.