This article also has an English version.
本系列文章主要记录我在尝试用 Rust 实现一个 Hypervisor 的过程。目录:
- 用 Rust 实现极简 VMM - 基础
- 用 Rust 实现极简 VMM - 模式切换
- 用 Rust 实现极简 VMM - 运行真实的 Linux Kernel
- 用 Rust 实现极简 VMM - 实现 Virtio 设备
本文是系列的第四篇,会从零实现 Virtio Queue,并使用 TAP 作为 backend 实现 virtio-net 设备;为了把这些组件更好地组装起来,还会做一些组件,类似 Bus、EventLoop。
下一篇可能会支持 PCI 设备和 VF 设备直通(如果我有时间的话)。
之前的三篇文章都完成于 2022 年下半年,本章节以及对应的实验代码一直以草稿的形式闲置,直到最近(现在是 2024 年)我想要将这个坑填上,于是抽了几个周末较为细致地补充了一些代码,并完成本文。