Bao轻量级嵌入式虚拟机管理程序

联合创作 · 2023-10-01 08:38

Bao 是一个轻量级、开源的嵌入式虚拟机管理程序,旨在提供强大的隔离和实时保证。Bao 提供了分区管理程序架构的最小的实现。

Bao 主要针对混合临界系统而设计,非常注重隔离以实现故障遏制和实时行为。它的实现仅包括一个小的特权软件层,利用 ISA 虚拟化支持来实现静态分区管理程序架构:资源在 VM 实例化时被静态分区和分配;使用两阶段翻译静态分配内存;IO 仅为直通;虚拟中断直接映射到物理中断;它实现了虚拟 CPU 到物理 CPU 的 1-1 映射,无需调度程序。

Bao 没有外部依赖性,它包含一个小得多的 TCB。

支持的平台

支持的平台的完整列表如下所示:

Armv8-A

  • Xilinx Zynq UltraScale+ MPSoC ZCU102
  • Xilinx Zynq UltraScale+ MPSoC ZCU104
  • Ultra96 Zynq UltraScale+ ZU3EG
  • NXP MCIMX8QM-CPU
  • NVIDIA Jetson TX2
  • 96Boards HiKey 960
  • 树莓派 4
  • QEMU 虚拟机

RISC-V

  • QEMU virt (rv64)

下载并设置工具链

为目标架构下载最新的编译工具链:

a) 对于 Armv8-A,使用 aarch64-none-elf-工具链。

从 Arm 开发人员的网站下载它。

b) 对于 RISC-V,使用 riscv64-unknown-elf-工具链。

从 SiFive 的 Freedom Tools GitHub 仓库下载它。

安装工具链。然后,使用参考工具链前缀路径设置 CROSS_COMPILE 环境变量:

export CROSS_COMPILE=/path/to/toolchain/install/dir/bin/your-toolchain-prefix-

搭建基础环境

克隆这个 repo 并 cd 到它:

git clone https://github.com/bao-project/bao-demos
cd bao-demos

根据目标平台和演示, 使用附录 I 中的 ID设置 PLATFORM 和 DEMO 环境变量。

export PLATFORM=zcu102
export DEMO=linux+freertos
浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报