Skip to content

Commit 36f8191

Browse files
committed
更新了 README
1 parent a8f5cbc commit 36f8191

File tree

2 files changed

+41
-40
lines changed

2 files changed

+41
-40
lines changed

README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ English | [中文](README_CN.md)
2020

2121
# Introduction
2222

23-
AxVisor is a hypervisor implemented based on the ArceOS unikernel framework. Its goal is to leverage the foundational operating system features provided by ArceOS to implement a unified modular hypervisor.
23+
AxVisor is a Hypervisor implemented based on the ArceOS unikernel framework. Its goal is to leverage the basic operating system functionalities provided by ArceOS as a foundation to build a unified and componentized Hypervisor.
2424

25-
"Unified" refers to using the same codebase to support x86_64, Arm (aarch64), and RISC-V architectures simultaneously, in order to maximize the reuse of architecture-independent code and simplify development and maintenance costs.
25+
**Unified** means using the same codebase to support three architectures—x86_64, Arm (aarch64), and RISC-V—maximizing the reuse of architecture-agnostic code and simplifying development and maintenance efforts.
2626

27-
"Modular" means that the functionality of the hypervisor is decomposed into multiple modules, each implementing a specific function. The modules communicate with each other through standard interfaces to achieve decoupling and reuse of functionality.
27+
**Componentized** means that the Hypervisor's functionalities are decomposed into multiple independently usable components. Each component implements a specific function, and components communicate through standardized interfaces to achieve decoupling and reusability.
2828

2929
## Architecture
3030

@@ -40,7 +40,7 @@ Currently, AxVisor has been verified on the following platforms:
4040

4141
- [x] QEMU ARM64 virt (qemu-max)
4242
- [x] Rockchip RK3568 / RK3588
43-
- [x] 黑芝麻华山 A1000
43+
- [x] PhytiumPi
4444

4545
## Guest VMs
4646

@@ -50,10 +50,6 @@ Currently, AxVisor has been verified in scenarios with the following systems as
5050
- [Starry-OS](https://github.com/Starry-OS)
5151
- [NimbOS](https://github.com/equation314/nimbos)
5252
- Linux
53-
- currently only Linux with passthrough device on aarch64 is tested.
54-
- single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts)
55-
- smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts)
56-
5753

5854
# Build and Run
5955

@@ -77,6 +73,8 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a
7773

7874
## Load and run from file system
7975

76+
Loading from the filesystem refers to the method where the AxVisor image, Linux guest image, and its device tree are independently deployed in the filesystem on the storage. After AxVisor starts, it loads the guest image and its device tree from the filesystem to boot the guest.
77+
8078
### NimbOS as guest
8179

8280
1. Execute script to download and prepare NimbOS image.
@@ -98,27 +96,28 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a
9896

9997
4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU.
10098

101-
### More
99+
### More guest
100+
102101
TODO
103102

104103
## Load and run from memory
105-
### linux as guest
106104

107-
1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) to get Image and rootfs.img.
105+
Loading from memory refers to a method where the AxVisor image, guest image, and its device tree are already packaged together during the build phase. Only AxVisor itself needs to be deployed in the file system on the storage device. After AxVisor starts, it loads the guest image and its device tree from memory to boot the guest.
108106

109-
2. Modify the configuration items in the corresponding `./configs/vms/<ARCH_CONFIG>.toml`
107+
### linux as guest
110108

109+
1. Prepare working directory
111110
```console
112111
mkdir -p tmp
113-
cp configs/vms/linux-qemu-aarch64-mem.toml tmp/
112+
cp configs/vms/linux-aarch64-qemu-smp1.toml tmp/
113+
cp configs/vms/linux-aarch64-qemu-smp1.dts tmp/
114114
```
115115

116-
- `image_location="memory"` indicates loading from the memory.
117-
- `kernel_path` kernel_path specifies the path of the kernel image in the workspace.
118-
- `dtb_path` specifies the path of the dtb file in the workspace.
119-
- others
116+
2. [See Linux build help](https://github.com/arceos-hypervisor/guest-test-linux) to get the guest Image and rootfs.img, then copy them to the `tmp` directory.
120117

121-
3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example:
118+
3. Execute `dtc -O dtb -I dts -o tmp/linux-aarch64-qemu-smp1.dtb tmp/linux-aarch64-qemu-smp1.dts` to build the guest device tree file
119+
120+
4. Execute `./axvisor.sh defconfig`, then edit the `.hvconfig.toml` file, set the `vmconfigs` item to your guest machine configuration file path, with the following content:
122121

123122
```toml
124123
arceos_args = [
@@ -129,12 +128,13 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a
129128
"QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"",
130129
"DISK_IMG=\"tmp/rootfs.img\"",
131130
]
132-
vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"]
131+
vmconfigs = [ "tmp/linux-aarch64-qemu-smp1.toml"]
133132
```
134133

135134
4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU.
136135

137-
### More
136+
### More guest
137+
138138
TODO
139139

140140
# Contributing

README_CN.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<h2 align="center">AxVisor</h1>
88

9-
<p align="center">一个基于 ArceOS 的统一模块化虚拟机管理程序</p>
9+
<p align="center">一个基于 ArceOS 的统一组件化虚拟机管理程序</p>
1010

1111
<div align="center">
1212

@@ -20,15 +20,15 @@
2020

2121
# 简介
2222

23-
AxVisor 是基于 ArceOS unikernel 框架实现的 Hypervisor。其目标是利用 ArceOS 提供的基础操作系统功能作为基础,实现一个统一的模块化 Hypervisor。
23+
AxVisor 是基于 ArceOS unikernel 框架实现的 Hypervisor。其目标是利用 ArceOS 提供的基础操作系统功能作为基础,实现一个统一的组件化 Hypervisor。
2424

25-
“统一”指使用同一套代码同时支持 x86_64、Arm(aarch64) 和 RISC-V 三种架构,以最大化复用架构无关代码,简化代码开发和维护成本。
25+
**统一**是指使用同一套代码同时支持 x86_64、Arm(aarch64) 和 RISC-V 三种架构,以最大化复用架构无关代码,简化代码开发和维护成本。
2626

27-
“模块化”指 Hypervisor 的功能被分解为多个模块,每个模块实现一个特定的功能,模块之间通过标准接口进行通信,以实现功能的解耦和复用。
27+
**组件化**是指 Hypervisor 的功能被分解为多个可独立使用的组件,每个组件实现一个特定的功能,组件之间通过标准接口进行通信,以实现功能的解耦和复用。
2828

2929
## 架构
3030

31-
AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都是一个独立的模块,模块之间通过标准接口进行通信
31+
AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都是一个独立的组件,组件之间通过标准接口进行通信
3232

3333
![Architecture](https://arceos-hypervisor.github.io/doc/assets/arceos-hypervisor-architecture.png)
3434

@@ -40,7 +40,7 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都
4040

4141
- [x] QEMU ARM64 virt (qemu-max)
4242
- [x] Rockchip RK3568 / RK3588
43-
- [x] 黑芝麻华山 A1000
43+
- [x] 飞腾派
4444

4545
## 客户机
4646

@@ -50,9 +50,6 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都
5050
- [Starry-OS](https://github.com/Starry-OS)
5151
- [NimbOS](https://github.com/equation314/nimbos)
5252
- Linux
53-
- currently only Linux with passthrough device on aarch64 is tested.
54-
- single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts)
55-
- smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts)
5653

5754
# 构建及运行
5855

@@ -76,7 +73,9 @@ cargo install cargo-binutils
7673

7774
## 从文件系统加载运行
7875

79-
### 使用 NimbOS 作为客户机
76+
从文件系统加载是指将 AxVisor 镜像和 Linux 客户机镜像及其设备树独立部署在存储器上的文件系统中,AxVisor 启动后从文件系统中加载客户机镜像及其设备树进而启动客户机的方式。
77+
78+
### NimbOS 作为客户机
8079

8180
1. 执行仓库内的脚本下载并准备 NimbOS 镜像:
8281

@@ -98,26 +97,27 @@ cargo install cargo-binutils
9897
4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。
9998

10099
### 更多客户机
100+
101101
TODO
102102

103103
## 从内存加载运行
104104

105-
### 使用 linux 作为客户机
106-
1. [参见 linux 构建帮助。](https://github.com/arceos-hypervisor/guest-test-linux) 获取 Image 和 rootfs.img。
105+
从内存加载是指在构建时已经将 AxVisor 镜像与客户机镜像及其设备树打包在了一起,而只需要将 AxVisor 本身部署在存储器上文件系统中,AxVisor 启动后从内存中加载客户机镜像及其设备树进而启动客户机的方式。
107106

108-
2. 修改对应的 `./configs/vms/<ARCH_CONFIG>.toml` 中的配置项
107+
### Linux 作为客户机
109108

109+
1. 准备工作目录及相关文件
110110
```console
111111
mkdir -p tmp
112-
cp configs/vms/linux-qemu-aarch64-mem.toml tmp/
112+
cp configs/vms/linux-aarch64-qemu-smp1.toml tmp/
113+
cp configs/vms/linux-aarch64-qemu-smp1.dts tmp/
113114
```
114115

115-
- `image_location="memory"` 表示从内存加载
116-
- `kernel_path` 指定内核镜像在工作空间中的路径
117-
- `dtb_path` 指定 dtb 文件在工作空间中的路径
118-
- 其他
116+
2. [参见 linux 构建帮助](https://github.com/arceos-hypervisor/guest-test-linux)获取客户机 Image 和 rootfs.img,然后复制到 `tmp` 目录中。
119117

120-
3. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如:
118+
3. 构建客户机设备树 `dtc -O dtb -I dts -o tmp/linux-aarch64-qemu-smp1.dtb tmp/linux-aarch64-qemu-smp1.dts`
119+
120+
4. 执行 `./axvisor.sh defconfig`,然后编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如:
121121

122122
```toml
123123
arceos_args = [
@@ -128,12 +128,13 @@ cargo install cargo-binutils
128128
"QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"",
129129
"DISK_IMG=\"tmp/rootfs.img\"",
130130
]
131-
vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"]
131+
vmconfigs = [ "tmp/linux-aarch64-qemu-smp1.toml"]
132132
```
133133

134134
4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动。
135135

136136
### 更多客户机
137+
137138
TODO
138139

139140
## 启动示例

0 commit comments

Comments
 (0)