A TikTok szolgáltatást fejlesztő kínai ByteDance közzétett a Linux kernel fejlesztői levél listáján egy Pártitioned Kernel (Parker) rendszer megvalósítására vonatkozó javítást, amely lehetővé teszi több Linux kernel egyidőben történő futtatását egy számítógépen hagyományos virtualizáció nélkül. A Parker a megoldandó feladatok terén hasonlít a néhány nappal ezelőtt bemutatott Multikernel projektre, de architektúrájában és megvalósításában különbözik tőle.
A Parker a meglévő CPU, memória és eszközök szekcionálását alkalmazza. Minden elindított kernel egy közös kernel kép alapján működik, de különböző beállításokat és optimalizálásokat használhat. Az elsőként betöltött kernel (Boot Kernel) végzi a hardvereszközök elosztását és szekcionálását. A további Linux kernel példányok (Application Kernel) csak a hozzájuk rendelt CPU magokkal, memóriával és bemeneti/kimeneti eszközökkel működnek.
A kezdeti változatban a költségek csökkentése és a megvalósítás egyszerűsítése érdekében nincs irányító mechanizmus, és minden kernel egy közös izolációs területet használ (domain), így a kernel bármelyik példányában fellépő hiba problémákat okozhat az egész rendszerben. A jövőben külön hardveres lehetőségek bevonását tervezik a kernel példányok izolálására. A Parker alkalmazási területeként említik azokat a számítógépeket, amelyek nagy számú CPU maggal rendelkeznek, és ahol a feladatok skálázása problémákba ütközik.
A Parker vezérlésére a kernfs alapú interfész van megvalósítva, és a további kernel példányok betöltésére a foglalt memória területekben a kexec használatos. Az additional kernel-ek indítása előtt az elsődleges kernel felszabadítja a CPU magokat, lefoglalja a fizikai memóriát, és leválasztja a PCI-eszközöket azok szekcionált kernelben való használatához. Minden kernel mögött saját PCIe-eszköznek kell elhelyezkednie, például NVMe tárolónak vagy hálózati adapternek. A kernel példány indítása után az nem tud kölcsönhatásba lépni más kernel-ekkel.
Forrás: opennet.ru
