GNU Shepherd, a Guix által kifejlesztett szolgáltatásmenedzser

Két évvel az utolsó főverzió megjelenése után bejelentették a GNU Shepherd szolgáltatáskezelő 0.9-es (korábbi nevén dmd) új verziójának megjelenését. A GNU Guix disztribúció fejlesztői fejlesztik a rendszerfüggőség-tudatos SysV-init inicializálás alternatívájaként.

A Shepherd aszinkron módon biztosít felhasználói térbeli funkciókat szolgáltatásokként , amelyek a Shepherd esetében általános függvények és objektumadattípusok, amelyeket a Shepherd exportál az alap operációs rendszer meghatározott módon történő kibővítéséhez. A systemd-vel ellentétben a felhasználói tér monitorozási folyamat az adott felhasználó nevében fut.

Pásztorról

Shepherd felhasználói térbeli inicializálási modelljének lényege a kiterjesztés koncepciója, amely az összevonhatóság egy formája, amelyben a szolgáltatások úgy vannak megtervezve, hogy átfedjék egymást más szolgáltatásokkal, kiegészítve azokat bonyolultabb vagy specializáltabb viselkedésekkel, igény szerint. Ez kifejezi a számos modern init rendszerben megtalálható példányosításon alapuló függőségi kapcsolatokat, modulárissá téve a rendszert, de lehetővé téve a szolgáltatások számára, hogy tetszőleges módon változó módon interakcióba lépjenek más szolgáltatásokkal.

A Shepherd úgynevezett virtuális szolgáltatásokat is nyújt , amelyek lehetővé teszik a dinamikus kézbesítést egy kapcsolódó szolgáltatásobjektum-osztályon keresztül, például mindazokon, amelyek a rendszerhez tartozó levéltovábbító ügynök (MTA) példányait hozzák létre.

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.

Mivel Guile Scheme nyelven íródott és konfigurált, a GNU Shepherd rendszergazda által könnyen programozható , de a felhasználónkénti, nem privilégiumozott démonok és szolgáltatások profiljainak kezelésére is használható.

Szolgáltatásai és konfigurációja egységesen objektumorientált Scheme kódként tárolódik , és bár az alap Guix rendszer tartalmaz egy alapvető szolgáltatáskészletet, 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 a felhasználó belátása szerint újradefiniálhatók azáltal, hogy a Shepherd-et arra kéri, hogy dinamikusan írja át a szolgáltatásokat meghatározott módon a példányosításkor.

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

Ez az új verzió kiemeli az ideiglenes (tranziens) szolgáltatások koncepciójának megvalósítását , amelyek automatikusan lekapcsolódnak a folyamat leállása vagy a "stop" metódus hívása miatti leállás után, amire szükség lehet a leállás után nem újraindítható szintetizált szolgáltatásokhoz.

Egy másik figyelemre méltó változás , hogy a "#:log-file" paraméter nélküli szolgáltatások kimenete a syslog-ba kerül , a "#:log-file" paraméterrel rendelkező szolgáltatások esetében pedig a napló egy külön fájlba kerül, amely jelzi a naplók időpontját a nem privilegizált Shepherd folyamatban, és amely a $XDG_DATA_DIR könyvtárban tárolódik.

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).

Az új verzió további jelentős változásai a következők:

  • 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 többet szeretne megtudni , vagy szeretné megszerezni ezt az új verziót, a következő linken megtekintheti a részleteket, a dokumentációt és letöltheti azt.


Hozzáadás előnyben részesített forrásként a Google-ben