虚拟化学习的一点经验之谈
我是首先了解了一点内核再去学习虚拟化的,总体来说,虚拟化还是一个很有趣的方向,而且在云计算等产业中也有很强的应用。 因为自身的水平原因,这里的教程主要侧重于 kvm 相关的东西。
教材
Hardware and Software Support for Virtualization : 作者Edouard Bugnion 是 VMware 的创始人之一,绝对的经典。 (虽然我还没有看)
参考书籍
深度探索 Linux 系统虚拟化 是基于 kvmtool 的。kvmtool 移除掉 QEMU 中对于二进制翻译的支持,也不支持设备的模拟,其定位是 microvm, 所以代码量很小,而且很整洁, 这本书讲解也更加的清晰,我推荐这本书作为开始。
QEMU/KVM 源码解析与应用 总体来说是作者自己的 blog 的整理,是基于 QEMU 的。kvmtool 实际上在工业上的使用并不多,学习使用 QEMU 是必须的, 但是 QEMU 更加复杂,市面上这是唯一一本比较详细的分析 QEMU 的书籍(中文和英文范围内)。但是这本书也有缺点,那就是不过凝练,很多时候都是代码流程的分析。
Virtual Machines: Versatile Platforms for Systems and Processes 写于 2005 ,没有介绍 qemu 和 kvm ,有时间的话 可以翻一翻。
minimal kvm example
- LWN: Using the KVM API
- https://github.com/dpw/kvm-hello-world
- Learning KVM - implement your own kernel
- kvmsample : 几百行,guest 就是一个三行的汇编
- kvmtool : 基本不怎么维护, 大约 20000 行,其实也不小,但是和 QEMU 比起来还是很 minimal 的。
minimal hypervisor / virtual machine example
- https://github.com/calinyara/asor
- https://github.com/ionescu007/SimpleVisor : Window Driver 或者 UEFI driver 方式执行的 hypervisor
- Write your Own Virtual Machine
- mvisor : 一个 QEMU 的 mini 替代,可以运行 Windows 的图形界面
- Hypervisor-101-in-Rust
一些补充资料
- cpu internals 是 intel SDM 的笔记,其中覆盖了 intel CPU 在硬件上如何支持虚拟化的, 阅读 kvm 的时候可以配合这阅读一下。
- ASPLOS IOMMU tutorial 介绍了 IOMMU,学习 vt-d 之前可以阅读一下。
一些有用的 blog
- Hypervisor From Scratch :star: :star:
- KVM forum :star: :star: :star: kvm forum 每年的会议 slides 都是精华
- kernelgo
- https://kernelnote.com/ : 技术水平很高
- terenceli :star:
- kvm forum
- 值得一个个的翻阅, 在 youtube 上有对应的录像
- Redhat blog 的 virtualization 板块
- 陈伟任的笔记
- Stefan Hajnoczi
- opengers : kvm ceph 之类的
- mpolednik : redhat 工程师,vfio 之类的
- stefano garzarella : redhat 工程师
- 知乎专栏 : 河马虚拟化
- 知乎专栏 : 虚拟化笔记
- kraxel : 主要关于 GPU 之类的
- 空客的 QEMU 源码分析
- futurewei-cloud : 主要是 ARM 相关的
- Qemu KVM(Kernel Virtual Machine)学习笔记 : 很多内容都没有补全,而且停止更新了,
- luzhixing12345
一些有意思的项目
- VivienneVMM : 使用 vmx 实现的调试器
- hypervisor-development-in-rust
- gunyah-hypervisor : 高通的实现 hypervisor
手册
如果是解决或者理解一些具体的问题,最后各家的手册是免不了的。
整理这个东西
- https://www.reddit.com/r/virtualization/comments/1eevxsj/virtualization_engineer_learning_path/
- https://www.virtualbox.org/wiki/Downloads : 原来 virtualbox 是开源的,虽然这个代码基本没有办法看
- https://github.com/VirtualBox/virtualbox : 2025-07-09 源码现在放到这里了
- https://news.ycombinator.com/item?id=38538100
- 好家伙啊,在 andorid 里面搞虚拟机
-
https://chromium.googlesource.com/chromiumos/platform/crosvm
- https://github.com/projectacrn/acrn-hypervisor 这个是需要了解的
https://threedots.ovh/blog/ : 很深入,很有趣
https://github.com/bao-project/bao-hypervisor
有点意思: https://www.phoronix.com/news/Linux-Multi-Kernel-Patches https://lore.kernel.org/all/20250918222607.186488-1-xiyou.wangcong@gmail.com/
https://github.com/littlekernel/lk
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。