hypervisor release , providing tools for rapid development of specialized hypervisors. Bareflank is written in C++, supporting the C++ STL. Its modular architecture allows for easy extension of existing hypervisor capabilities and the creation of custom hypervisor variants, working either directly on hardware (like Xen) or running within existing software environments (like VirtualBox). There is an option to execute the host environment's operating system in a separate virtual machine. The project code is licensed under LGPL 2.1.
Bareflank supports Linux, Windows, and UEFI on 64-bit Intel CPUs. Intel VT-x technology is used for hardware resource partitioning of virtual machines. Future plans include support for macOS and BSD systems, as well as operation on ARM64 and AMD platforms. Additionally, the project is developing its own driver for loading the VMM (Virtual Machine Manager), an ELF loader for loading VVM modules, and a bfm application for managing the hypervisor from user space. Tools are provided for writing extensions using elements defined in the C++11/14 specifications, an unwind library for stack exception unwinding, and its own runtime library to support constructors/destructors and exception handler registration.
A virtualization system is being developed based on Bareflank , supporting the launch of guest systems and allowing the use of lightweight virtual machines with Linux and Unikernel to run specialized services or applications. Both ordinary web services and applications that require special reliability and security are executed in the form of isolated services, free from the influence of the host environment (the host environment is isolated in a separate virtual machine).
Key innovations in Bareflank 2.0:
- Support has been added 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 similarly to the SLAB/Buddy memory managers in Linux. The new memory manager demonstrates reduced fragmentation, enables higher performance, and supports dynamic memory allocation for the hypervisor through , allowing for a reduction in the initial size of the hypervisor and optimal scaling based on the number of CPU cores;
- A new build system based on CMake, independent of the command interpreter, allows for significant acceleration of hypervisor compilation and simplifies future support for additional architectures, such as ARM;
- The code has been reorganized and the structure of the source texts has been simplified. Support for related projects, such as hyperkernel, has been improved without the need for code duplication. The code is more clearly separated , unwind libraries, runtime, management tools, bootloaders, and SDK;
- Most of the API has been transitioned from the previously used C++ inheritance mechanisms to , which has simplified the API, increased performance, and reduced resource consumption.
Source: opennet.ru
