ACRN 简介
1 整体架构简介
1.1 三种类型的 VM
- 先启动 VM:专有硬件资源;
- Server VM:直接访问硬件资源,提供device mode
- 后启动 VM :通过 device mode 共享硬件资源。
1.2 三种场景
场景用来描述 ACRN 管理程序、VM 和软硬件资源的系统配置
-
共享场景
-
分区场景
-
混合场景
1.3 设备共享架构(device mode)
server VM 中 device mode 的三个子系统
- 设备仿真
- I/O 路径
- 设备驱动
1.4 设备直通
直通设备由指定 VM 独占,与其他 VM 隔离
2 配置过程
2.1 ACRN 的构建
ACRN 的构建依赖目标板配置文件和场景配置文件。
ACRN 管理程序源代码提供了一个 makefile 来构建 ACRN 管理程序 bin 文件和相关组件。
2.2 目标板配置文件
使用工具:Board Inspector 生成目标板的硬件信息
2.3 场景配置文件
使用 ACRN acrn_configurator.py
图形化配置工具定义场景
场景配置文件包含了 hypervisor 、server vm 和 pre launch vm 的静态配置。
server vm 和 先启动 vm 只能在场景配置文件中静态配置, server vm 使用 acrn 提供的 Linux 内核源码来构建 server vm OS内核镜像。Linux 版本为:5.10.52 ,Ubuntu 镜像大小:2.4G
2.4 启动脚本
启动脚本用来启动 user vm,启动脚本由 ACRN 图形化配置工具生成,启动脚本定义了 user vm 的动态配置信息,在启动脚本中可以配置共享设备和直通设备。
3 ACRN 启动过程
4 在 USER VM 上运行 SylixOS
-
获取 bspx86.elf 文件;
-
构建 GRUB2 引导程序生成 EFI 文件;
-
制作启动镜像文件 SylixOS.img;
-
设置 gurb 配置文件 grub.cfg;
-
在启动脚本中指定 SylixOS 启动镜像的存放路径;
acrn-dm -A -m $mem_size -s 0:0,hostbridge -U 615db82a-e189-4b4f-8dbb-d321343e4ab3 \ --mac_seed $mac_seed \ $logger_setting \ -s 7,virtio-blk,/home/acrn/acrn-work/SylixOS.img \ -s 8,virtio-net,tap_YaaG3 \ -s 6,virtio-console,@stdio:stdio_port \ --ovmf /usr/share/acrn/bios/OVMF.fd \ -s 1:0,lpc \ $vm_name
-
在 server vm 中运行启动脚本;