Majdnem egy évvel azután, hogy a Multikernel projekt megosztotta a Linux kernel kódját és beküldte az első javítócsomagokat ellenőrzésre, a csapat most először tette nyilvánosan elérhetővé a Multikernel Linux kernel-fáját. Ez a kiadás a Linux 7.0-ra épül, és a projekt kernel fájában v7.0-mk2 jelöléssel szerepel. Jelenleg hivatalosan csak az x86_64 architektúrát támogatják.
Ha még nem találkoztál vele: a Multikernel egy új megközelítés a Linux használatára nagy, sokmagos rendszereken. Nem egyetlen Linux kernel futtat mindent, hanem több, egymástól független Linux kernel fut egymás mellett ugyanazon a hardveren.
A fő elképzelés egyszerű. Egy Linux példány gazdaként működik, és kezeli a CPU-k, a memória és a PCI-eszközök készletét. Ezeket az erőforrásokat csoportokra oszthatja, és minden csoportban elindíthat egy másik Linux kernel-t. A virtuális gépekkel ellentétben ezek a plusz kernelek nem egy hypervisoron futnak. Mindegyik saját fizikai CPU-kat, memóriát és eszközöket kap, és közvetlenül a hardveren fut.
Az erőforrások sincsenek véglegesen lekötve. A projekt szerint le lehet állítani egy-egy példányt, a CPU-it, memóriáját és eszközeit vissza lehet adni a gazdának, majd szükség esetén új példányokat lehet indítani akár másik kernel-val is.
Ezzel a kiadással a projekt teljesítmény-összehasonlításokat is közzétett, amelyek megmutatják, hol tudja a bare-metal megközelítés felülmúlni a hagyományos virtualizációt. Az egyik lmbench tesztcsomagban a Multikernel egy gondosan hangolt KVM virtuális géppel mérkőzött meg. Mindkettő ugyanazt a kernel buildet használta, két CPU-magot és 1 GB memóriát kapott egy kétfoglalatos Intel Xeon Gold 5418Y rendszeren.
Az eredmények szerint a memória késleltetése és sávszélessége szinte azonos volt, ami érthető, hiszen a modern hardveres virtualizáció nagyon hatékony. A nagyobb különbségek azoknál a feladatoknál jelentek meg, amelyek sok átmenetet és CPU-felébresztést igényelnek.
Például a mérések szerint egy kétfolyamatos kontextusváltás 1,37 mikroszekundumig tartott Multikernel alatt, szemben az alapértelmezett KVM vendég 3,42 mikroszekundumával. A pipe késleltetése 3,24 mikroszekundum volt 7,06 helyett, a Unix socket késleltetése pedig 4,81 mikroszekundum 7,48-cal szemben.
A fejlesztők ugyanakkor hangsúlyozzák, hogy ezek a számok nem azt jelentik, hogy a Multikernel mindig többszörösen gyorsabb a KVM-nél. A különbség nagy része abból adódik, hogyan kezelik az üresjáratban lévő virtuális CPU-kat. Alapértelmezett KVM beállításnál egy üres vCPU felébresztése kilépést és visszalépést jelent a virtuális gépből. A Multikernel ezzel szemben közvetlenül kezeli a fizikai CPU-magokat.
A hátránya, hogy ezek a CPU-magok a gazda szemében folyamatosan terheltnek látszanak, és több energiát fogyasztanak. A projekt ebben a felállásban körülbelül 19 watt többletfogyasztást mért. Ha a vendég nagyobb beleszólást kapott a CPU-k energiagazdálkodásába, az tovább javította a késleltetést, de továbbra is együtt járt energia- és erőforrásbeli kompromisszumokkal.
Az első nyilvános kiadásnál a fejlesztők szerint az x86_64 architektúrát tesztelték a legalaposabban. Más architektúrák támogatása később érkezhet. Az architektúraspecifikus interfészeket már most szétválasztották, hogy a jövőbeni portolást megkönnyítsék, de egyiket sem tekintik még hivatalosan támogatottnak.
További részletekért olvasd el a bejelentést. A Multikernel Linux forráskódja elérhető a GitHub oldalon. A projekt egy rövid útmutatót is kínál azoknak, akik szeretnék kipróbálni a technológiát.

