虚拟化学习的一点经验之谈
我是首先了解了一点内核再去学习虚拟化的,总体来说,虚拟化还是一个很有趣的方向,而且在云计算等产业中也有很强的应用。 因为自身的水平原因,这里的教程主要侧重于 kvm 相关的东西。
教材
Hardware and Software Support for Virtualization : 作者Edouard Bugnion 是 VMware 的创始人之一,绝对的经典。 (虽然我还没有看)
参考书籍
深度探索 Linux 系统虚拟化 是基于 kvmtool 的。kvmtool 移除掉 QEMU 中对于二进制翻译的支持,也不支持设备的模拟,其定位是 microvm, 所以代码量很小,而且很整洁, 这本书讲解也更加的清晰,我推荐这本书作为开始。
QEMU/KVM 源码解析与应用 总体来说是作者自己的 blog 的整理,是基于 QEMU 的。kvmtool 实际上在工业上的使用并不多,学习使用 QEMU 是必须的, 但是 QEMU 更加复杂,市面上这是唯一一本比较详细的分析 QEMU 的书籍(中文和英文范围内)。但是这本书也有缺点,那就是不过凝练,很多时候都是代码流程的分析。
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 :star: :star:
- terenceli :star:
- kvm forum
- 值得一个个的翻阅, 在 youtube 上有对应的录像
- Redhat blog 的 virtualization 板块
- 陈伟任的笔记
- Stefan Hajnoczi
- opengers : kvm ceph 之类的
- mpolednik : redhat 工程师,vfio 之类的
- stefano garzarella : redhat 工程师
- 知乎专栏 : 河马虚拟化
- 知乎专栏 : 虚拟化笔记
- kraxel : 主要关于 GPU 之类的
- 空客的 QEMU 源码分析
未经检查的资源
- https://news.ycombinator.com/item?id=35579876
一些有意思的项目
- VivienneVMM : 使用 vmx 实现的调试器
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。