hypervisor release , which provides tools for the rapid development of specialized hypervisors. Bareflank is written in C++ and supports C++ STL. The modular architecture of Bareflank makes it easy to expand existing hypervisor capabilities and create your own hypervisor options, both running on top of hardware (like Xen) and running in an existing software environment (like VirtualBox). It is possible to run the operating system of the host environment in a separate virtual machine. Project code licensed under LGPL 2.1.
Bareflank now supports Linux, Windows and UEFI on 64-bit Intel CPUs. Intel VT-x technology is used for hardware-based resource sharing of virtual machines. Support is planned for the future. macOS and BSD systems, as well as the ability to run on ARM64 and AMD platforms. The project also develops 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. It also provides tools for writing extensions using elements defined in the C++11/14 specifications, an exception stack unwinding library (unwind), and a runtime library to support the use of constructors/destructors and the registration of exception handlers.
Based on Bareflank, a virtualization system is being developed , which supports running guest systems and allows the use of lightweight virtual machines with Linux and Unikernel for running specialized services or applications. Both regular web services and applications with special reliability and security requirements can be run as isolated services, free from the influence of the host environment (the host environment is isolated in a separate virtual machine).
The main innovations of Bareflank 2.0:
- Added support for launching Bareflank directly from UEFI for subsequent execution of the operating system in a virtual machine;
- A new memory management manager has been implemented, designed in analogy with the SLAB/Buddy memory managers in LinuxThe new memory manager demonstrates reduced fragmentation, enables higher performance, and supports dynamic memory allocation to the hypervisor through , which allows you to reduce the initial size of the hypervisor and optimally scale depending on the number of CPU cores;
- New build system based on CMake, independent of the command interpreter, which allows to achieve significant acceleration of hypervisor compilation and simplifies future support of additional architectures, such as ARM;
- The code was reorganized and the structure of the source texts was simplified. Improved support for related projects such as hyperkernel without the need for code duplication. More clearly separated code , unwind libraries, runtime, control toolkit, bootloader and SDK;
- Most of the API, instead of the previously used inheritance mechanisms in C ++, has been transferred to the use of , which allowed us to simplify the API, improve performance and reduce resource consumption.
Source: opennet.ru
