"Microsoft Wants To Create A Complete Virtualization Stack With Linux"
Microsoft engineers are sending out new kernel patches in looking to expand the Linux support around the Microsoft Hypervisor (Hyper-V).
While Linux already supports Hyper-V and in fact 50% or more of the VMs on Azure are Linux-based, what Microsoft is working on now is looking to add Linux root partition support with the Microsoft Hypervisor.
The root partition in the context of the Microsoft Hypervisor is similar to Xen's Dom0 that is used for starting and managing the unprivileged domains in turn. Microsoft's Hyper-V architecture documentation describes the root partition concept as "the hypervisor virtualizes processors and memory and provides mechanisms for the virtualization stack in the root partition to manage child partitions (virtual machines) and expose services such as I/O devices to the virtual machines. The root partition owns and has direct access to the physical I/O devices. The virtualization stack in the root partition provides a memory manager for virtual machines, management APIs, and virtualized I/O devices. It also implements emulated devices such as the integrated device electronics (IDE) disk controller and PS/2 input device port, and it supports Hyper-V-specific synthetic devices for increased performance and reduced overhead."
Currently the mainline Linux kernel doesn't allow serving as the root partition on the Microsoft Hypervisor, but that is what Microsoft is wanting to change.
The patches sent out today under a "request for comments" provide the basic changes needed to Linux's Hyper-V code. Microsoft engineer Wei Liu explains, "Microsoft wants to create a complete virtualization stack with Linux and Microsoft Hypervisor. There will be a subsequent patch series to provide a device node (/dev/mshv) such that userspace programs can create and run virtual
machines. We've also ported Cloud Hypervisor over and have been able to boot a Linux guest with Virtio devices since late July."
It's interesting as well to note Microsoft's use of Cloud-Hypervisor that is developed by Intel and this virtualization hypervisor in turn is written in Rust.
While Linux already supports Hyper-V and in fact 50% or more of the VMs on Azure are Linux-based, what Microsoft is working on now is looking to add Linux root partition support with the Microsoft Hypervisor.
The root partition in the context of the Microsoft Hypervisor is similar to Xen's Dom0 that is used for starting and managing the unprivileged domains in turn. Microsoft's Hyper-V architecture documentation describes the root partition concept as "the hypervisor virtualizes processors and memory and provides mechanisms for the virtualization stack in the root partition to manage child partitions (virtual machines) and expose services such as I/O devices to the virtual machines. The root partition owns and has direct access to the physical I/O devices. The virtualization stack in the root partition provides a memory manager for virtual machines, management APIs, and virtualized I/O devices. It also implements emulated devices such as the integrated device electronics (IDE) disk controller and PS/2 input device port, and it supports Hyper-V-specific synthetic devices for increased performance and reduced overhead."
Currently the mainline Linux kernel doesn't allow serving as the root partition on the Microsoft Hypervisor, but that is what Microsoft is wanting to change.
The patches sent out today under a "request for comments" provide the basic changes needed to Linux's Hyper-V code. Microsoft engineer Wei Liu explains, "Microsoft wants to create a complete virtualization stack with Linux and Microsoft Hypervisor. There will be a subsequent patch series to provide a device node (/dev/mshv) such that userspace programs can create and run virtual
machines. We've also ported Cloud Hypervisor over and have been able to boot a Linux guest with Virtio devices since late July."
It's interesting as well to note Microsoft's use of Cloud-Hypervisor that is developed by Intel and this virtualization hypervisor in turn is written in Rust.
53 Comments