vydání hypervizora , poskytující nástroje pro rychlý vývoj specializovaných hypervizorů. Bareflank je napsán v jazyce C++, podporuje C++ STL. Modulární architektura Bareflank umožňuje snadno rozšiřovat stávající funkce hypervizoru a vytvářet vlastní varianty hypervizorů, ať už běžících na hardwarové úrovni (jako Xen), nebo spuštěných v existujícím softwarovém prostředí (jako VirtualBox). Je k dispozici možnost běhu operačního systému hostitelského prostředí v samostatné virtuální machine. Kód projektu je licencován pod LGPL 2.1.
Bareflank podporuje Linux, Windows a UEFI na 64bitových CPU Intel. Pro hardwarové oddělení zdrojů virtuálních strojů se používá technologie Intel VT-x. Do budoucna je plánována podpora macOS a BSD systémů, stejně jako možnost fungování na platformách ARM64 a AMD. Navíc projekt vyvíjí vlastní ovladač pro načítání VMM (Virtual Machine Manager), ELF načítač pro načítání modulů VVM, aplikaci bfm pro správu hypervizoru z uživatelského prostoru. Poskytuje se nástroj pro psaní rozšíření pomocí prvků definovaných ve specifikacích C++11/14, knihovna pro přesměrování zásobníku výjimek (unwind), stejně jako vlastní runtime knihovna pro podporu použití konstruktorů/destruktorů a registraci zpracovatelů výjimek.
Na základě Bareflank se vyvíjí virtualizační systém , který podporuje spuštění hostitelských systémů a umožňuje používat lehké virtuální stroje s Linuxem a Unikernel pro spuštění specializovaných služeb nebo aplikací. Ve formě izolovaných služeb lze spouštět jak běžné webové služby, tak aplikace, které kladou zvláštní požadavky na spolehlivost a bezpečnost, zbavené vlivu hostitelského prostředí (hostitelské prostředí je izolováno v samostatné virtuální machine).
Hlavní novinky Bareflank 2.0:
- Byla přidána podpora pro spuštění Bareflank přímo z UEFI pro následné spuštění operačního systému ve virtuální machine;
- Byl implementován nový správce paměti, navržený po vzoru správců paměti SLAB/Buddy v systému Linux. Nový správce paměti vykazuje snížení fragmentace, umožňuje dosáhnout vyšší výkonnosti a podporuje dynamické přidělování paměti hypervizoru prostřednictvím , což umožňuje snížit počáteční velikost hypervizoru a optimálně se škálovat v závislosti na počtu jader CPU;
- Nový systém sestavení založený na CMake, nezávislý na příkazovém interpretru, což umožňuje výrazné zrychlení kompilace hypervizoru a usnadňuje podporu budoucích architektur, jako je ARM;
- Došlo k reorganizaci kódu a zjednodušení struktury zdrojových textů. Byla vylepšena podpora souvisejících projektů, jako je hyperkernel, bez potřeby duplicitního kódu. Kód je nyní více oddělen , unwind-knihovny, runtime, řídicího nástroje, načítače a SDK;
- Většina API byla přesunuta z dříve používaných mechanizmů dědění v C++ na použití , což umožnilo zjednodušit API, zvýšit výkonnost a snížit spotřebu zdrojů.
Zdroj: opennet.ru
