Skip to content

Bareflank Hypervisor (2.0)

Compare
Choose a tag to compare
@rianquinn rianquinn released this 29 Jan 15:48
· 125 commits to master since this release

The Bareflank Team is proud to announce version rc2.0.4, with the following new features:

New Build System

Round 3 for our build system, is now based on CMake. With our new build system, we no longer have a dependency on "bash" to compile our code (our dependencies like binutils and newlib still have this dependency). Build times are significantly improved, the source is far easier to read / modify, and we now have the ability to easily support additional architectures like ARM, which is currently being developed. Fingers crossed, this should be the last time we completely re-write the build system. For information on how to use this build system, please see the instructions on the main README.md and our example config

Reorganization

Most of the code has been reorganized and greatly simplified to make it easier to follow the source code, but also provide better support for projects like the hyperkernel without the need for as much duplication of code. To see the source code for the actual hypervisor, please see https://github.com/Bareflank/hypervisor/tree/master/bfvmm. The remaining source code provides support logic like the C runtime, Unwinder (for exception support), Intrinsics for Intel and ARM, the Bareflank Manager for starting / stopping the hypervisor from userspace (optional), the ELF loader, and SDK for various different headers that simplify development.

Delegates

We have moved a lot of the APIs from using inheritance, to using delegates. Inheritance is still used in some places, but switching to delegates has increased performance, reduced memory usage, and greatly simplified our APIs. In addition, the Extended APIs has a more comprehensive set of APIs that are easier to use as a result.

UEFI Support

UEFI support is being added, and will be completed for v2.0. With UEFI support, will provide better Type 1 support, allowing users to start Bareflank from UEFI, and then start your desired operating system including Windows and Linux.

Memory Management

Better memory management will be completed for v2.0. The new memory manager will be modeled after the SLAB / Buddy allocators in Linux reducing external fragmentation, and increasing performance. This new memory manager will also provide the ability to dynamically add memory to the hypervisor from the bfdriver, allowing us to reduce the size of the initial hypervisor, and better scale as the total number of CPUs increases.