Bareflank 3.0 hypervisor has been released, providing tools for quick development of specialized hypervisors. Bareflank is written in C++ and supports C++ STL. Its modular architecture allows for easy extension of existing hypervisor capabilities and the creation of custom hypervisor variants, both running on hardware (like Xen) and operating in existing software environments (like VirtualBox). There is an option to run the host OS in a separate virtual machine. The project code is distributed under the LGPL 2.1 license.
Bareflank supports Linux, Windows, and UEFI on 64-bit Intel and AMD CPUs. For hardware resource partitioning, virtual machines Intel VT-x technology is used. Future support for macOS and BSD systems is planned, as well as the ability to operate on the ARM64 platform. Additionally, the project is developing its own driver for loading the VMM (Virtual Machine Manager), an ELF loader for loading VVM modules, and the bfm application for managing the hypervisor from user space. Tools are provided for writing extensions using elements defined in C++11/14 specifications, a stack unwinding library, and a runtime library to support the use of constructors/destructors and exception handler registration.
Based on Bareflank, the Boxy virtualization system is being developed, which supports the launch of guest systems and allows for lightweight virtual machines with Linux and Unikernel to run specialized services or applications. In the form of isolated services, both regular web services and applications with strict requirements on reliability and security can be executed, free from the host environment's influence (the host environment is isolated in a separate virtual machine). Bareflank is also the foundation for the MicroV hypervisor, designed to run minimalist virtual machines for one application, implementing the KVM API and suitable for creating critical systems.virtual machine The main innovations in Bareflank 3.0:
De vigtigste innovationer i Bareflank 3.0:
- Overgangen til brugen af mikrokerne-konceptet. Tidligere havde hypervisoren en monolitisk arkitektur, hvor det krævede et specielt API til registrering af callback-opkald for at udvide funktionaliteten, hvilket gjorde det vanskeligt at udvikle udvidelser på grund af tilknytningen til C++ og den interne struktur. Den nye arkitektur baseret på mikrokerner indebærer en opdeling af hypervisoren i kernekomponenter, der kører i nul-ring beskyttelse, og udvidelser, der kører i tredje ring (brugerrum). Begge dele arbejder i root-mode VMX, mens alt andet, inklusive vært-miljøet, fungerer i ikke-root mode VMX. Udvidelserne i brugerrummet implementerer funktionaliteten af den virtuelle maskindriver (VMM) og interagerer med hypervisorens kerne via systemopkald, der sikrer bagudkompatibilitet. Udvidelser kan oprettes i forskellige programmeringssprog, herunder støtte for Rust-sproget.
- Overgangen til brugen af det egenudviklede bibliotek BSL med understøttelse af Rust og C++ er gennemført, hvilket har afløst de eksterne biblioteker libc++ og newlib. Afskeden med eksterne afhængigheder har gjort det muligt at implementere indbygget støtte til kompilering i Windows i Bareflank for at forenkle udviklingen på denne platform.
- Understøttelse af AMD-processorer er blevet tilføjet. Desuden foregår udviklingen af Bareflank nu på et system med AMD CPU'er, før det senere porteres til Intel CPU'er.
- Loaderen har fået tilføjet støtte til ARMv8-arkitektur, og tilpasningen af hypervisoren til denne vil være færdiggjort i en af de kommende udgivelser.
- Overholdelse af kravene til udvikling af kritiske systemer, formuleret af organisationerne AUTOSAR og MISRA, er sikret.
Kilde: opennet.ru
