Bareflank 3.0 管理程序发布

Bareflank 3.0 hypervisor 已经发布,为快速开发专用的 hypervisor 提供了一个工具包。 Bareflank 是用 C++ 编写的,支持 C++ STL。 Bareflank 的模块化架构使扩展现有管理程序功能和创建自己的管理程序选项变得容易,既可以在硬件(如 Xen)之上运行,也可以在现有软件环境(如 VirtualBox)中运行。 可以在单独的虚拟机中运行主机环境的操作系统。 项目代码在 LGPL 2.1 许可证下分发。

Bareflank 在 64 位 Intel 和 AMD CPU 上提供对 Linux、Windows 和 UEFI 的支持。 Intel VT-x技术用于虚拟机资源的硬件分区。 未来计划支持 macOS 和 BSD 系统,以及在 ARM64 平台上工作的能力。 此外,该项目还开发了自己的用于加载 VMM(虚拟机管理器)的驱动程序、用于加载 VVM 模块的 ELF 加载程序以及用于从用户空间控制管理程序的 bfm 应用程序。 提供了一个工具包,用于使用 C++11/14 规范中定义的元素编写扩展,一个异常堆栈展开库 (unwind),以及它自己的运行时库,以支持构造函数/析构函数的使用和异常处理程序的注册。

在 Bareflank 的基础上,正在开发 Boxy 虚拟化系统,它支持启动来宾系统,并允许使用带有 Linux 和 Unikernel 的轻量级虚拟机来运行专门的服务或应用程序。 以隔离服务的形式,既可以运行普通的Web服务,也可以运行对可​​靠性和安全性有特殊要求的应用程序,不受宿主环境的影响(宿主环境隔离在单独的虚拟机中)。 Bareflank 也是 MicroV hypervisor 的核心,旨在运行实现 KVM API 的简约虚拟机(单应用程序虚拟机),适用于构建关键任务系统。

Bareflank 3.0的主要创新点:

  • 过渡到使用微内核概念。 以前,hypervisor 是单体架构,为了扩展功能,需要使用特殊的 API 来注册回调调用,由于绑定到 C++ 语言和内部结构,很难开发扩展. 新的基于微内核的架构将管理程序拆分为运行在零保护环上的内核组件和运行在第三环(用户空间)上的扩展。 这两个部分都以 VMX root 模式运行,而其他所有部分(包括主机环境)都以非 root VMX 模式运行。 用户空间扩展实现虚拟机管理器 (VMM) 功能并通过向后兼容的系统调用与管理程序内核交互。 可以使用任何编程语言创建扩展,包括使用 Rust 语言。
  • 我们转而使用我们自己的支持 Rust 和 C++ 的 BSL 库,它取代了外部库 libc++ 和 newlib。 删除外部依赖项允许 Bareflank 实现本机 Windows 编译支持以简化此平台上的开发。
  • 添加了对 AMD 处理器的支持。 而且现在Bareflank的开发是在AMD CPU的系统上进行的,然后才移植到Intel CPU上。
  • 引导加载程序中添加了对 ARMv8 架构的支持,将在下一个版本中完成 hypervisor 适配。
  • 符合 AUTOSAR 和 MISRA 组织制定的关键系统开发要求。

来源: opennet.ru

添加评论