Bao輕量級嵌入式虛擬機管理程序
Bao 是一個輕量級、開源的嵌入式虛擬機管理程序,旨在提供強大的隔離和實時保證。Bao 提供了分區(qū)管理程序架構(gòu)的最小的實現(xiàn)。
Bao 主要針對混合臨界系統(tǒng)而設計,非常注重隔離以實現(xiàn)故障遏制和實時行為。它的實現(xiàn)僅包括一個小的特權軟件層,利用 ISA 虛擬化支持來實現(xiàn)靜態(tài)分區(qū)管理程序架構(gòu):資源在 VM 實例化時被靜態(tài)分區(qū)和分配;使用兩階段翻譯靜態(tài)分配內(nèi)存;IO 僅為直通;虛擬中斷直接映射到物理中斷;它實現(xiàn)了虛擬 CPU 到物理 CPU 的 1-1 映射,無需調(diào)度程序。
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)
下載并設置工具鏈
為目標架構(gòu)下載最新的編譯工具鏈:
a) 對于 Armv8-A,使用 aarch64-none-elf-工具鏈。
從 Arm 開發(fā)人員的網(wǎng)站下載它。
b) 對于 RISC-V,使用 riscv64-unknown-elf-工具鏈。
從 SiFive 的 Freedom Tools GitHub 倉庫下載它。
安裝工具鏈。然后,使用參考工具鏈前綴路徑設置 CROSS_COMPILE 環(huán)境變量:
export CROSS_COMPILE=/path/to/toolchain/install/dir/bin/your-toolchain-prefix-
搭建基礎環(huán)境
克隆這個 repo 并 cd 到它:
git clone https://github.com/bao-project/bao-demos
cd bao-demos
根據(jù)目標平臺和演示, 使用附錄 I 中的 ID設置 PLATFORM 和 DEMO 環(huán)境變量。
export PLATFORM=zcu102
export DEMO=linux+freertos
評論
圖片
表情
