-
-
[原创]分享一个团队自研的精简版虚拟机Mvisor
-
发表于:
2024-1-11 19:20
16061
-
[原创]分享一个团队自研的精简版虚拟机Mvisor
时光荏苒,距离上一次发帖已经过去了7年,记得那时还只是一位刚入社会的少年,为了理想毅然辞去老家大厂的工作,去上海追寻Windows的内核真理,那时很纯粹,每天都很充实,每天都有成长,试问世间又有多少人能真正以自己的兴趣谋生呢?
后来随着个人知识体系的建立,渐渐的不在满足于只研究一个技术方向,想要做点什么,去创业!可惜,想做自己的idea团队显得力不从心,做外包的项目又都是些鸡毛蒜皮毫无前途和成长可言,虽然可以续命,但生活再也没了当初的那种充实、快乐的感觉。终于在前年遇见一位贵人(一切都是最好的安排),毅然选择回到技术研究上,猥琐发育,等待时机!
提个问题:在windows上写设备相关驱动的时候有没有想过这个请求再继续往下走时,内核是如何将数据给到硬件设备?
如果想进一步了解一个调用从R3到R0,再到硬件的过程,虚拟机也许是个非常好的研究方向。目前开源的虚拟机最著名的就是Qemu,经过多年的沉淀她非常强大,一些大厂的云服务也是基于它在二次开发。但是出于我们公司业务的考虑以及对技术的热爱,我们还是决定从零开始使用C++开发一个全新的虚拟机软件Mvisor!
项目地址:https://github.com/tenclass/mvisor
包括但不限于:Win98/Win2000/WinXP/Win7/Win10/Win11/ubuntu/kylin/Androidx86
以上系统均经过测试可正常运行(Windows 98缺少virtio驱动无法上网)
Mvisor目前有段时间没有更新,因为大家都在All in AI~,哈哈哈,我个人还是非常喜欢这个项目,欢迎各位大佬和小伙伴来个Star一起交流一下吧,还记得前段时间Qemu的逃逸漏洞么,也非常希望各位渗透大佬来一波针对Mvisor的POC分析贴。 感谢关注
- 440FX ✅ / Q35 Chipset ✅
- SeaBIOS ✅
- Memory Region Management ✅
- IOPort Management ✅
- Devices Management ✅
- RTC (CMOS) ✅
- PS/2 ✅
- PCI ISA ICH9-LPC ✅
- QEMU CFG ✅
- Legacy DMA ✅
- IDE ✅ / AHCI ✅
- Floppy Disk ✅
- Serial Port ✅
- VGA / VBE ✅
- Option Roms ✅ / SMBIOS ✅ / ACPI Table ✅
- Boot DOS ✅
- Boot OS (Win98 to Win11 / DOS / Ubuntu) ✅
- QCOW2 ✅
- Virtio (Console ✅ / Block ✅ / Net ✅ / VirtioFS ✅ / Balloon)
- SpiceAgent ✅
- QemuGuestAgent ✅
- Qxl ✅
- Audio (ICH9-HDA / AC97) ✅
- Tap network
- User network ✅
- VFIO ✅
- Samba
- USB 1.0 UHCI ✅ / USB 3.0 XHCI ✅ / USB Tablet ✅ / USB Midi ✅ / USB Wacom ✅
- CPU migration ✅
- VFIO migration ✅
- Migration to sparse files ✅
- Hyper-V enlightenments ✅
- 为了适应实际业务场景,我们针对Mvisor的迁移功能做了强化,她可以快速的保存一个VM的状态并且在1s内快速还原,同时他也支持基于TCP的平滑热迁移。经过2年多的大规模生产环境验证,迁移功能表现得非常稳定,也节约了大量的服务器成本。
- 关于VFIO migration,我不确定Qemu最新版本是否支持,但在当时只有我们一家可以做到VFIO架构的显卡快照(T4、A10等显卡快照都经过生产环境的验证)。
- 为了进一步降低服务器成本,我们在virtio-gpu的基础上拓展研发出了针对Windows虚拟机的Mvisor-VGPU设备,用于提供OpenGL4标准的3D硬件加速能力,目前该能力在Qemu上只能适配Linux虚拟机,据我了解目前市面上只有Mvisor可以提供该能力,并且能够支持快照。
项目地址:https://github.com/tenclass/mvisor-win-vgpu-driver
440FX ✅ / Q35 Chipset ✅SeaBIOS ✅Memory Region Management ✅IOPort Management ✅Devices Management ✅RTC (CMOS) ✅PS/2 ✅PCI ISA ICH9-LPC ✅QEMU CFG ✅Legacy DMA ✅IDE ✅ / AHCI ✅Floppy Disk ✅Serial Port ✅VGA / VBE ✅
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-1-17 09:43
被Justgoon编辑
,原因: