项目简介
本项目是基于C语言的ARM架构虚拟机项目,结合了SICS Thin Hypervisor (STH)软件。STH是为ARM架构设计的小型便携式虚拟机管理程序,借助虚拟化的隔离特性提升嵌入式系统的安全性。项目提供了一个模拟和调试ARM架构处理器、内存管理、外设等的平台,适用于教学、研究和开发。
项目的主要特性和功能
- 安全性提升:利用隔离特性,由运行在处理器特权模式的超轻量级软件层(虚拟机管理程序)管理和维护资源分配及访问策略,限制访客权限,实现不同组件间的隔离,可在不同执行环境运行通用操作系统内核(如Linux)及其用户应用程序和可信安全服务。
- 硬件模拟:模拟ARM处理器、内存、外设等硬件组件,并提供连接和通信功能。
- 内存管理:提供动态内存分配和释放功能,支持伙伴系统、内存池等多种内存管理策略。
- 外设接口:模拟和连接UART、定时器、中断控制器等各种外设,并提供相应接口和驱动。
- 调试工具:具备调试器、断点管理、观察点、变量管理等功能,辅助开发者调试和测试。
- 模拟执行:支持从ELF格式的二进制文件中加载程序并模拟执行。
- 测试框架:提供测试框架和工具,用于验证和测试模拟器的功能和正确性。
安装使用步骤
环境准备
STH虚拟机管理程序目前可在32位ARM v5和v7架构上运行,只要具备内存管理单元(MMU),也可轻松移植到大多数32位或64位架构。建议查看 /doc
子目录下的 STH.pdf
文档附录A.1获取推荐的交叉编译器和工具信息。
配置
- 该虚拟机管理程序可针对不同平台进行构建,在根源代码树的目标文件中指定平台和软件配置。需准确定义一个
PLATFORM
和一个SOFTWARE
才能成功构建,例如: ```makefile
PLATFORM=ovp_arm9
PLATFORM=ovp_integratorCP
PLATFORM=u8500_ref
PLATFORM=beagleboard
PLATFORM=beaglebone
SOFTWARE=minimal
SOFTWARE = trusted linux
SOFTWARE = linux
Enable this if you want to compile for OVP
SIMULATION_OVP = 1
``
此配置为BeagleBoard平台构建虚拟机管理程序,以可信应用程序和Linux内核作为访客。若要在OVP上编译特定平台进行模拟,取消
SIMULATION_OVP的注释。
2. 在切换目标平台或软件之前,务必执行
make clean` 命令,避免旧的残留目标文件导致错误。
编译
配置好目标文件后,在源代码树的根目录执行 make
命令以构建虚拟机管理程序。
运行
构建完成后,所有输出文件将存储在 /core/build
子目录中,根据平台不同,会输出 sth_*platform*.fw.img
这一U-boot可引导镜像文件,可将其加载到真实硬件中,或使用Qemu或OVP(开放虚拟平台)进行模拟。
文档参考
/doc
子目录中的 STH.pdf
包含了关于STH虚拟机管理程序、其API、配置、构建说明以及半虚拟化Linux访客的更详细信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】