首页
社区
课程
招聘
[原创]分享一个团队自研的精简版虚拟机Mvisor
发表于: 2024-1-11 19:20 16062

[原创]分享一个团队自研的精简版虚拟机Mvisor

2024-1-11 19:20
16062

时光荏苒,距离上一次发帖已经过去了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分析贴。 感谢关注

  1. 440FX ✅ / Q35 Chipset ✅
  2. SeaBIOS ✅
  3. Memory Region Management ✅
  4. IOPort Management ✅
  5. Devices Management ✅
  6. RTC (CMOS) ✅
  7. PS/2 ✅
  8. PCI ISA ICH9-LPC ✅
  9. QEMU CFG ✅
  10. Legacy DMA ✅
  11. IDE ✅ / AHCI ✅
  12. Floppy Disk ✅
  13. Serial Port ✅
  14. VGA / VBE ✅
  15. Option Roms ✅ / SMBIOS ✅ / ACPI Table ✅
  16. Boot DOS ✅
  17. Boot OS (Win98 to Win11 / DOS / Ubuntu) ✅
  18. QCOW2 ✅
  1. Virtio (Console ✅ / Block ✅ / Net ✅ / VirtioFS ✅ / Balloon)
  2. SpiceAgent ✅
  3. QemuGuestAgent ✅
  4. Qxl ✅
  5. Audio (ICH9-HDA / AC97) ✅
  6. Tap network
  7. User network ✅
  8. VFIO ✅
  9. Samba
  10. USB 1.0 UHCI ✅ / USB 3.0 XHCI ✅ / USB Tablet ✅ / USB Midi ✅ / USB Wacom ✅
  1. CPU migration ✅
  2. VFIO migration ✅
  3. Migration to sparse files ✅
  4. Hyper-V enlightenments ✅
  1. 为了适应实际业务场景,我们针对Mvisor的迁移功能做了强化,她可以快速的保存一个VM的状态并且在1s内快速还原,同时他也支持基于TCP的平滑热迁移。经过2年多的大规模生产环境验证,迁移功能表现得非常稳定,也节约了大量的服务器成本。
  2. 关于VFIO migration,我不确定Qemu最新版本是否支持,但在当时只有我们一家可以做到VFIO架构的显卡快照(T4、A10等显卡快照都经过生产环境的验证)。
  3. 为了进一步降低服务器成本,我们在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 ✅

  • [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

    最后于 2024-1-17 09:43 被Justgoon编辑 ,原因:
    收藏
    免费 16
    支持
    分享
    最新回复 (15)
    雪    币: 10
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    2
    向楼主大大学习
    2024-1-11 19:22
    0
    雪    币: 9179
    活跃值: (6400)
    能力值: ( LV3,RANK:20 )
    在线值:
    发帖
    回帖
    粉丝
    3
    楼主牛逼
    2024-1-11 20:47
    0
    雪    币: 357
    活跃值: (3573)
    能力值: ( LV3,RANK:25 )
    在线值:
    发帖
    回帖
    粉丝
    4
    ssh://git@gitlab.weike.fm:9522/sfcloud/sweet-server.git

    这个呢?
    2024-1-11 23:37
    0
    雪    币: 3836
    活跃值: (4142)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    5
    太牛逼
    2024-1-12 09:03
    0
    雪    币: 635
    活跃值: (1021)
    能力值: ( LV6,RANK:80 )
    在线值:
    发帖
    回帖
    粉丝
    6
    KooJiSung ssh://git@gitlab.weike.fm:9522/sfcloud/sweet-server.git 这个呢?
    这个是个业务上的协议,用来通过socket传递从虚拟设备拿到的画面等数据,不重要,直接本地运行就可以启动
    2024-1-12 09:37
    0
    雪    币: 3535
    活跃值: (31016)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    7
    感谢分享
    2024-1-12 11:24
    1
    雪    币: 88
    活跃值: (115)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    8
    向大佬学习!!
    2024-1-12 12:01
    0
    雪    币: 3836
    活跃值: (4142)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    9
    太牛了
    2024-1-12 13:35
    0
    雪    币: 29
    活跃值: (61)
    能力值: ( LV3,RANK:30 )
    在线值:
    发帖
    回帖
    粉丝
    10
    大佬,感谢分享
    2024-1-12 17:07
    0
    雪    币: 29
    活跃值: (61)
    能力值: ( LV3,RANK:30 )
    在线值:
    发帖
    回帖
    粉丝
    11
    请问支持显卡直通么?试试游戏性能如何
    2024-1-15 18:49
    0
    雪    币: 635
    活跃值: (1021)
    能力值: ( LV6,RANK:80 )
    在线值:
    发帖
    回帖
    粉丝
    12
    小陈啊 请问支持显卡直通么?试试游戏性能如何
    有vfio-gpu的设备支持但针对的时T4这种生成的虚拟卡,如果是常规的消费级显卡透传可能需要微调下代码,有兴趣提个MR么
    2024-1-15 18:52
    0
    雪    币: 29
    活跃值: (61)
    能力值: ( LV3,RANK:30 )
    在线值:
    发帖
    回帖
    粉丝
    13
    Justgoon 有vfio-gpu的设备支持但针对的时T4这种生成的虚拟卡,如果是常规的消费级显卡透传可能需要微调下代码,有兴趣提个MR么[em_41]
    嗯我看了下代码好像没有支持pcie直通只有pci,我试试
    2024-1-16 09:43
    1
    雪    币: 912
    活跃值: (4584)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    14

    最后于 2024-1-16 10:46 被令狐双编辑 ,原因:
    2024-1-16 10:46
    0
    雪    币: 457
    活跃值: (2793)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    15
    真的吊啊!!
    2024-1-18 15:58
    0
    雪    币: 635
    活跃值: (1021)
    能力值: ( LV6,RANK:80 )
    在线值:
    发帖
    回帖
    粉丝
    16
    小陈啊 嗯我看了下代码好像没有支持pcie直通只有pci,我试试
    现在已经支持显卡直通了
    2024-5-27 18:50
    0
    游客
    登录 | 注册 方可回帖
    返回
    //