大家好,我是cloud3,最近写了一个KVM虚拟化Hypervisor。
为什么要写呢
大家应该对Qemu-KVM比较熟悉,但是qemu目前已经有160多万行代码,两千多Contributors,涉及17种语言。
虽然目前有轻量级的Hypervisor,例如stratovirt、firecracker-microvm等,但对于初学者来讲,门槛还是比较高的。
为了方便大家学习和交流,我写了个简单的KVM虚拟化Hypervisor,麻雀虽小五脏俱全。相信大家看完之后很快就能搞明白虚拟化的原理。
目前状态
- 一个简易的KVM虚拟化hypervisor(目前支持X86)。
- 实现了一个能够引导linux操作系统的linux boot规范,或者说实现了无bios引导linux系统。
- 实现了KVM虚拟化的最基础CPU、内存、IO陷入陷出处理。
- 实现了一个串口设备,用以和操作系统交互。 (以后会陆续添加必要的pci设备。)
github地址
https://github.com/isclouder/microv
编译运行都非常简单:
代码语言:javascript复制cd microv; make all
./microv -k ./out/vmlinux.bin -i ./out/initrd.img