Bao轻量级嵌入式虚拟机管理程序
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
评论