En grupp forskare frĂ¥n Virginia Polytechnic University (USA), Qualcomm och Aachen Rhine-Westphalia Technical University (Tyskland) de utvecklas den lätta kärnan Hermitux, motsvarande unikernelparadigmet.
HermiTux är avsedda att tillĂ¥ta att applikationer körs direkt pĂ¥ hypervisor utan behov av ytterligare lager, vilket ger binär kompatibilitet med Linux-applikationer pĂ¥ ABI-nivĂ¥.
HermiTux-koden Den är skriven pĂ¥ C-programmeringssprĂ¥ket och distribueras under BSD-licensen.
HermiTux ger en minimal operativsystemmiljö med sin egen kärna (unikernel), vilken förbrukar mycket mindre resurser än när du skapar miljöer baserade pĂ¥ en vanlig Linux-kärna.
Med det här lĂ¥ter dig snabbt starta applikationer pĂ¥ hypervisor: starttiden överstiger inte 0,1 sekunder.
I HermiTux-prestandatester, cirka 3% släpar efter i miljöer med en vanlig Linux-kärna pĂ¥ grund av att I / O vidarebefordrar till värdssidan.
Minneskonsumtionen i testmiljön var 9 MB, vilket är tio gĂ¥nger mindre än när man använder Linux-kärnan (Docker-förbrukningen var cirka 10 MB pĂ¥ grund av att man använde en vanlig kärna med värdmiljön utan att använda fullständig virtualisering).
Om HermiTux
Hermitux sticker ut som avsedd att ha förmĂ¥gan att köra omodifierade applikationer skapad för Linux, detta görs genom stöd för ELF-format, implementering av Linux-systemanrop och emulering av virtuella filsystem.
I det nuvarande skedet av HermiTux-utvecklingen är detta implementerar 83 systemanrop. Totalt tillhandahĂ¥ller Linux-kärnan mer än 350 systemanrop, men endast en liten del av dem används i riktiga applikationer (för att täcka 90% av programmen för vanliga distributioner räcker det att genomföra 200 systemanrop) .
För att minska förseningar under bearbetning av systemanrop implementeras en valfri mekanism för att omdefiniera (skriva om) systemanrop för att anropa typiska kärnfunktioner.
För statiskt relaterade applikationer, det är möjligt att ersätta syscall-uttalanden med funktionsanrop i en körbar fil.
För dynamiskt relaterade applikationer görs byte pĂ¥ standardbiblioteksnivĂ¥.
Dessutom, verktyg har förberetts för att analysera systemanrop som är involverade i körbara filer som lĂ¥ter dig samla in en minimal HermiTux-bild som endast innehĂ¥ller den kod som krävs för att endast behandla de systemanrop som används i applikationen.

HermiTux-funktioner
Hermitux använder en lätt KVM-baserad hypervisor som laddar Linux-binären tillsammans med ett minimalt lager operativsystemet i en virtuell maskin med en enda adressutrymme. Vid körning fĂ¥ngas systemanropen frĂ¥n applikationen av HermiTux-kärnan.
Valfritt, HermiTux tillhandahĂ¥ller en mekanism för att skriva om anropet av systemanrop pĂ¥ vanliga kärnfunktionssamtal, vilket minskar systemets samtalslatens avsevärt.
Ur skyddssynpunkt, nämnda modularitet tillĂ¥terOchIstället för att filtrera, oanvända systemanrop (till exempel via seccomp) till uteslut dem helt frĂ¥n kärnan.
Applikationen körs i ett delat adressutrymme (HermiTux är utformad för att köras ovanpĂ¥ en enda applikationshypervisor).
Grundläggande trĂ¥dstöd (Pthreads Embedded) tillhandahĂ¥lls.
Som filsystem föreslĂ¥s MiniFS, där filer placeras i RAM (RAM-disk) och vissa element i virtuella filsystem (/ dev / zero, proc / cpuinfo, etc.) emuleras.
TCP / IP-stacken baseras pĂ¥ LWIP-projektet och en modifierad version av Musl-projektet används som ett standard C-bibliotek.
HermiTux kräver ingen Ă¥termontering av applikationer och lĂ¥ter dig köra bĂ¥de kompilerade körbara filer (statiskt och dynamiskt relaterade) och applikationer pĂ¥ tolkade sprĂ¥k (Python, Lua, etc.).