Az egyedi magok olyan speciális rendszerképek, ahol az összes folyamat azonos memóriaterülettel rendelkezik , amelyeket operációs rendszer könyvtárak segítségével hoztak létre . A fejlesztő moduláris készletből kiválaszt egy minimális könyvtárkészletet, amely megfelel az alkalmazás futtatásához szükséges operációs rendszer szolgáltatásainak . Ezek a könyvtárak majd összeállítani a kérelmet és konfigurációk létrehozásához egy célra állóképek közvetlenül futtatható egy hypervisor vagy hardver beavatkozása nélkül egy operációs rendszer , például Linux vagy a Windows .
A könyvtár operációs rendszerében a védelmi korlátokat alacsonyabb szintekre tolják , lehetővé téve:
Az első ilyen rendszerek az 1990- es évek végén az Exokernel és a "Nemesis" voltak .
A könyvtári operációs rendszerek architektúrájának számos előnye és hátránya van a hagyományosabb rendszerek tervezéséhez képest. Az egyik előnye az, hogy mivel csak egy címtér van , a felhasználói rendszer és a kerneltér közötti privilégiumátmenetekre , amelyek a hagyományos rendszereken szabályosak, nincs szükség. Így a könyvtár operációs rendszere jobb teljesítményt nyújthat azáltal, hogy kontextusváltás nélkül közvetlen hozzáférést biztosít a hardverhez . Az egyik hátrány az, hogy mivel nincs szétválasztás, nehéz több alkalmazást együtt futtatni egy könyvtár operációs rendszerben erőforrásszigeteléssel. Ezen felül hardver illesztőprogramokra van szükség ahhoz a géphez, amelyen az operációs rendszer fut. A gyakori hardveres változtatások miatt problémát jelent az illesztőprogramok rendszeres átírása.
A virtualizáció lehetővé teszi a közös hardver ezen negatív pontjainak elkerülését. A modern hipervizorok lehetővé teszik a virtuális gépek egyszerű kezelését az általuk elfogyasztott processzoridő mellett, miközben erős elszigeteltséget biztosítanak . A virtuális gépen futó könyvtári operációs rendszernek csak a hipervizor által biztosított stabil virtuális hardver illesztőprogramjait kell implementálnia, és a valódi hardver kezelésének összetett feladatát a hipervizorra bízhatja. A hálózati protokollok használatát lehetővé tevő könyvtárakra azonban továbbra is szükség van egy hagyományosabb operációs rendszer által nyújtott szolgáltatások helyettesítésére. Ezeknek a protokollkönyvtáraknak a létrehozása jelenti a modern könyvtári operációs rendszer megvalósításának legnagyobb részét.
Az unikerneleknek számos előnye van, de hátránya is a hagyományos operációs rendszerekhez képest.
Ezek az előnyök arra kényszerítik az egyedi szolgáltatásokat, hogy szolgáltatás-orientált rendszerként vagy mikroszolgáltatásként használják.
A magas szintű specializáció azonban azt jelenti, hogy az egyedi magok nem alkalmasak általános felhasználású számítástechnikára , több felhasználóval, amelyekhez hagyományos operációs rendszereket használnak. A funkcionalitás hozzáadása vagy a lefordított unikernel módosítása általában nem lehetséges, és az elfogadott megközelítés egy új unikernel újrafordítása és telepítése a kívánt változtatásokkal.
Számos új megközelítés létezik az egyedi magok építéséhez, amelyek különböző fokozatúak.
A ClickOS egy nagy teljesítményű virtualizált platform készülékek számára , amely egy nyílt forráskódú virtualizációs rendszeren alapul . A teljesítményanalízisek azt mutatják, hogy a ClickOS virtuális gépek kicsiek ( 5 MB ), gyorsan indulnak (akár 20 milliszekundumig), kevés késést adnak a célalkalmazáshoz (45 mikroszekundum), és több mint 100 futhat egyidejűleg, 10 Gb-os felületet telítve egy standard olcsó szerver .
A Clive egy operációs rendszer, amelyet elosztott számítástechnika és felhőalapú számítástechnika környezetében történő működésre terveztek, a Go programozási nyelven írva .
A Drawbridge egy kutatási prototípus az alkalmazás homokozós virtualizációjának új formájához . A Drawbridge két alapvető technológiát ötvöz : egy pikoprocesszust, amely egy folyamatszintű izolációs konténer, minimális kernel API felülettel , és egy könyvtári operációs rendszert, amely a Windows olyan változata, amely módosítva van ahhoz, hogy hatékonyan futtasson egy pikoprocesszust.
Grafén egy Linux-kompatibilis könyvtár operációs rendszer, amely összpontosítja erőfeszítéseit biztosítására örökölt több folyamat , szerver vagy kagyló- típusú alkalmazásokat . A grafén egy többfolyamatos alkalmazást különít el több pico-folyamat felett, a folyamatok közötti absztrakciókat ( jelek , sorok , szemaforok stb.) Egyetlen folyamokban koordinálják . Többféle biztonsági elvű alkalmazások esetén a Graphene dinamikusan képes homokozni a kitett pikoprocesszust.
A HaLVM (Haskell könnyűsúlyú virtuális gép) a Glasgow Haskell Compiler portja , amely lehetővé teszi a fejlesztők számára, hogy magas szintű, könnyű virtuális gépeket írjanak , amelyek a Xen hipervizoron futnak .
Az IncludeOS egy minimalista, szolgáltatás-orientált, nyílt forráskódú és beágyazható operációs rendszer a felhőszolgáltatásokhoz. Jelenleg ez egy kutatási projekt, amely lehetővé teszi a C ++ kód virtuális hardveren történő működését.
A LING egy Erlang / OTP alapú unikernel, amely képes értelmezni a .beam fájlokat. A fejlesztők létrehozhatnak Erlang kódot, és LING unikernelként telepíthetik. LING eltávolítja a legtöbb vektor fájlokat , csak akkor használja a három külső könyvtárakat, és nem használ OpenSSL .
A MirageOS egy olyan könyvtári operációs rendszer, amely lehetővé teszi egyedi magok létrehozását nagy teljesítményű, biztonságos hálózati alkalmazásokhoz sokféle mobil platformon vagy a felhőben. Jelenleg több mint száz MirageOS könyvtár és egyre több kompatibilis könyvtár található az OCaml ökoszisztémában .
Az OSV (in) a Cloudius Systems által kifejezetten a felhőben lévő virtuális gépek számára tervezett operációs rendszer. Másodpercnél rövidebb időn belül képes elindítani az OSv-t, amelynek egyetlen célja egy alkalmazás futtatása bármely hipervizoron, amely jobb teljesítményt és egyszerűbb kezelést kínál. Az OSv nem módosított Linux futtatható fájlokat futtathat (bizonyos korlátozásokkal), és támogatja a C , C ++ , Ruby , Node.js és JVM alapú nyelveket .
Runprun egy szoftver stack , amely lehetővé teszi, hogy futtatni módosítatlan POSIX szoftver egy unikernel. A Rumprun több platformot is támogat, beleértve a hardveren és a hipervizorokon, például a Xen vagy a KVM , közvetlen működést . Kernel rump (in) -en alapul, amely ingyenes , alkatrészekre szétválasztva hordozható szoftver-illesztőprogramokat és minőséget kínál, beleértve a fájlrendszereket , a POSIX hívórendszerek kezelőit , a pilóta hardveres PCI-t , az akkumulátor SCSI protokollját , a virtio-t és a TCP / IP- verem .
A Runtime.js egy nyílt forráskódú könyvtári operációs rendszer a felhő számára, amely a JavaScript virtuális gépen fut , és amely egy alkalmazáshoz mellékelhető, és könnyű, változhatatlan virtuális képként telepíthető. A Runtime.js a V8 javascript motorra épül, és jelenleg támogatja a QEMU / KVM hipervizort .