Release av Bareflank hypervisor 3.0, som erbjuder verktyg för snabb utveckling av specialiserade hypervisorer. Bareflank Àr skriven i C++ och stöder C++ STL. Bareflanks modulÀra arkitektur möjliggör enkel utvidgning av befintliga hypervisorfunktioner och skapande av egna varianter av hypervisorer, bÄde de som körs direkt pÄ hÄrdvaran (som Xen) och de som körs i en befintlig programmiljö (som VirtualBox). Det finns möjlighet att köra operativsystemet i vÀrdmiljön i en separat virtuell maskin. Koden för projektet distribueras under LGPL 2.1-licensen.
Bareflank stöder Linux, Windows och UEFI pÄ 64-bitars CPU:er frÄn Intel och AMD. För hÄrdvaruavskiljning av resurser virtuella maskiner anvÀnds Intel VT-x-teknologin. I framtiden planeras stöd för macOS och BSD-system, samt möjligheten att arbeta pÄ ARM64-plattformen. Dessutom utvecklas ett eget drivrutinsprojekt för att ladda VMM (Virtual Machine Manager), en ELF-laddare för att ladda VVM-moduler, samt applikationen bfm för att hantera hypervisorn frÄn anvÀndarrummet. Verktyg för att skriva tillÀgg med element som definieras i specifikationerna C++11/14 tillhandahÄlls, tillsammans med ett bibliotek för stackavveckling (unwind) och ett eget runtime-bibliotek för stöd av anvÀndning av konstruktörer/destruktörer och registrering av undantagshanterare.
Baserat pÄ Bareflank utvecklas virtualiseringssystemet Boxy, som stödjer körning av gÀstsystem och möjliggör anvÀndning av lÀtta virtuella maskiner med Linux och Unikernel för körning av specialiserade tjÀnster eller applikationer. I form av isolerade tjÀnster kan bÄde vanliga webbtjÀnster och applikationer med sÀrskilda krav pÄ tillförlitlighet och sÀkerhet köras, avskilda frÄn vÀrdmiljön (dÀr vÀrdmiljön isoleras i en separat virtuell maskin). Bareflank ligger ocksÄ till grund för hypervisorn MicroV, som Àr avsedd för att köra minimaliska virtuella maskiner (virtuell maskin en applikation), som implementerar KVM-API och Àr lÀmplig för skapande av kritiska system.
De frÀmsta nyheterna i Bareflank 3.0:
- ĂvergĂ„ng till anvĂ€ndning av mikro-kĂ€rnkonceptet. Tidigare hade hypervisorn en monolitisk arkitektur dĂ€r det krĂ€vdes en speciell API för att registrera callback-anrop för att utöka funktionaliteten, vilket försvĂ„rade utvecklingen av tillĂ€gg pĂ„ grund av beroendet av C++ och den interna strukturen. Den nya arkitekturen baserad pĂ„ mikro-kĂ€rnor innebĂ€r en uppdelning av hypervisorn i kĂ€rnkomponenter som körs i skyddsnivĂ„ noll och tillĂ€gg som körs pĂ„ tredje nivĂ„n (anvĂ€ndarutrymme). BĂ„da delarna arbetar i root-lĂ€ge VMX, medan allt annat, inklusive vĂ€rdmiljön, körs i icke-root-lĂ€ge VMX. TillĂ€gg i anvĂ€ndarutrymmet implementerar funktionaliteten hos en virtuell maskindirektör (VMM) och interagerar med hypervisorns kĂ€rna genom systemanrop, för vilka bakĂ„tkompatibilitet erbjuds. TillĂ€gg kan skapas pĂ„ alla programmeringssprĂ„k, inklusive anvĂ€ndning av Rust.
- ĂvergĂ„ngen till att anvĂ€nda det egna BSL-biblioteket med stöd för Rust och C++ har genomförts, vilket ersĂ€tter de externa biblioteken libc++ och newlib. Avskaffandet av externa beroenden har möjliggjort att Bareflank fĂ„r inbyggt stöd för kompilering i Windows för att förenkla utvecklingen pĂ„ denna plattform.
- Stöd för AMD-processorer har lagts till. Dessutom utvecklas Bareflank nu pÄ ett system med AMD CPU och porteras först senare för Intel CPU.
- I bootloadern har stöd för ARMv8-arkitekturen lagts till, och anpassningen av hypervisorn för detta kommer att slutföras i en av de kommande versionerna.
- ĂverensstĂ€mmelse med kraven för utveckling av kritiska system som formulerats av organisationerna AUTOSAR och MISRA har sĂ€kerstĂ€llts.
KĂ€lla: opennet.ru
