littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于C语言的ARM架构虚拟机项目

项目简介

本项目是基于C语言的ARM架构虚拟机项目,结合了SICS Thin Hypervisor (STH)软件。STH是为ARM架构设计的小型便携式虚拟机管理程序,借助虚拟化的隔离特性提升嵌入式系统的安全性。项目提供了一个模拟和调试ARM架构处理器、内存管理、外设等的平台,适用于教学、研究和开发。

项目的主要特性和功能

  1. 安全性提升:利用隔离特性,由运行在处理器特权模式的超轻量级软件层(虚拟机管理程序)管理和维护资源分配及访问策略,限制访客权限,实现不同组件间的隔离,可在不同执行环境运行通用操作系统内核(如Linux)及其用户应用程序和可信安全服务。
  2. 硬件模拟:模拟ARM处理器、内存、外设等硬件组件,并提供连接和通信功能。
  3. 内存管理:提供动态内存分配和释放功能,支持伙伴系统、内存池等多种内存管理策略。
  4. 外设接口:模拟和连接UART、定时器、中断控制器等各种外设,并提供相应接口和驱动。
  5. 调试工具:具备调试器、断点管理、观察点、变量管理等功能,辅助开发者调试和测试。
  6. 模拟执行:支持从ELF格式的二进制文件中加载程序并模拟执行。
  7. 测试框架:提供测试框架和工具,用于验证和测试模拟器的功能和正确性。

安装使用步骤

环境准备

STH虚拟机管理程序目前可在32位ARM v5和v7架构上运行,只要具备内存管理单元(MMU),也可轻松移植到大多数32位或64位架构。建议查看 /doc 子目录下的 STH.pdf 文档附录A.1获取推荐的交叉编译器和工具信息。

配置

  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】