微软贡献 Linux 内核代码,可运行多个 Windows
出品 | OSC开源社区(ID: oschina2013)
近日微软为了扩展内核支持,为 Linux 内核提供了一系列的补丁,其中一个值得注意的地方是微软为 Linux 带来了运行嵌套监控程序(Hyper-V)或嵌套虚拟化的功能。
这组补丁是由微软的 Linux 高级工程师 Jinank Jain 在本周三发出的,补丁说明如下:
该系列补丁计划增加对运行嵌套式微软 Hypervisor(虚拟机监控程序) 的支持。在嵌套微软 Hypervisor 的情况下,有一些特权的 hypercalls 需要走 L0 Hypervisor(在物理硬件上运行的 Hyper-V 虚拟机监控程序) 而不是 L1 Hypervisor(在 Hyper-V 虚拟机中运行的嵌套虚拟机监控程序)。这个补丁系列基本上可以识别这样的 hypercalls,并用嵌套的 hypercalls 替换它们。
补丁中包含的变化包括:
-
mshv: 增加对检测嵌套的 hypervisor 的支持
-
hv:在嵌套 root 分区的情况下设置 synic 寄存器
-
hv: 增加一个接口来执行嵌套的 hypercalls 超调用
-
hv: 为嵌套的 root 分区启用 vmbus 驱动
-
hv, mshv : 改变嵌套 root 分区的中断向量
Hyper-V 是 Microsoft 的硬件虚拟化产品。它允许你创建和运行一个称为虚拟机的计算机的软件版本。每个虚拟机都充当运行操作系统和程序的完整计算机。当需要计算资源时,虚拟机可让你更灵活,并且比在物理硬件上运行一个操作系统更高效地使用硬件。
而嵌套虚拟化允许用户在一个 Hyper-V 虚拟机内运行 Hyper-V,与裸机相比,在虚拟机中运行时,Hypervisor 可以显著提高性能。可以通过使用 L0 Hypervisor 提供的启用接口,将 L1 Hypervisor 优化为在 Hyper-V VM 中运行。
因此如果这个补丁能够成功合并,那么你就可以在 Linux 中运行一个以上的 Windows 实例,嵌套虚拟化这样的功能通常来说是为企业设计的,绝大多数的普通用户都用不上这样的功能。
这个补丁仅有超过 100 行的新代码,如果代码审查顺利的话,这个嵌套的微软 hypervisor 支持可能会在 Linux 6.2 内核周期中合并进主线。
相关链接:https://lore.kernel.org/lkml/cover.1667406350.git.jinankjain@linux.microsoft.com/
------ 我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!
推荐阅读
··································你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年 。 从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车! 所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好! 如果你还没什么方向,可以先关注我, 这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
点击 领取2022最新10000T学习资料