Phoronix 报道称,微软工程师正在开发新的内核补丁,以围绕 Hyper-V 扩展对 Linux 生态的支持。尽管 Linux 早已支持 Hyper-V,且 Azure 上有至少 50% 的虚拟机在基于 Linux 的环境中运行,但微软现正考虑为 Linux 的根分区添加支持。
Hyper-V 架构图示(来自:Microsoft 官网)
据悉,微软 Hypervisor 机构层级中的根分区,类似于至强的 Dom0,后者用于亿次启动和管理非特权域。
在官方文档中,微软对根分区概念的描述为“其掌管着处理器和内存资源的虚拟化,为根分区中的虚拟化堆栈提供对子分区(虚拟机)的管理,并向虚拟机传递设备 I/O 等相关服务”。
换言之,根分区实际拥有、并可直接访问物理设备的输入 / 输出,且其中的虚拟化堆栈可为虚拟机、管理 API 和虚拟化的 I/O设备提供内存管理。
此外实现了设备仿真,提供集成电子部件(IDE)的磁盘控制器和 PS/2 输入,并且支持 Hyper-C 的特定设备合成,以提升性能并减少开销。
鉴于当前的主线 Linux 内核不允许用于 Hyper-V 的根分区,微软才下决心要做出一些改变,并于今日新提交了一个内核补丁。
微软工程师 Wei Liu 解释称,该补丁是对 Linux Hyper-V 代码的基础变更,该公司希望借助 Linux 和 Hyper-V 来共建一个完整的虚拟化堆栈。
随后的补丁系列,将为 Linux 上的 Hyper-V 应用提供设备节点(即 /dev/mshv),以便在用户空间创建和运行虚拟机程序。
与此同时,开发团队正在移植云端虚拟机管理应用(Cloud Hypervisor)。且自 7 月下旬以来,就已支持在半虚拟化设备上启动 Linux 客户端。
有趣的是,微软所使用的 Cloud-Hypervisor,其实是由英特尔帮忙开发的。而该虚拟化管理程序,又是用 Rust 语言编写的。