Hacker News new | past | comments | ask | show | jobs | submit login
Hypervisor Development in Rust (memn0ps.github.io)
223 points by ingve on April 15, 2023 | hide | past | favorite | 10 comments



This is a pretty good article about CPU virtualization, which is a key starting point (as this seems to be the starting point of a series).

What I'm interested in at the moment is device virtualization, which seems like a pretty hairy problem in the current KVM paradigm. IOMMU is a big step but it seems there's just a lot of grunt work left for getting the host/guest drivers working well.

It almost feels like exokernel [0] path would have been preferable over having to write windows/linux/mac host drivers for virtualizing buses/devices. We already have a very awkward overlap with UEFI drivers. Maybe we just need new HW bus designs that are more of a switch than mux, I haven't gone deep enough into modern bus controller designs to know though.

The reality of doing this kind of research/work is a special hell though, because you sit in a crossfire between hardware/firmware/os/application vendors.

[0]: https://wiki.osdev.org/Exokernel


There are features that improve device virtualisation. Things like SR-IOV allowing for multiple virtual functions on a single device, and ATS which (among other things) means that device memory doesn’t need to be pinned. The issue is that these features are at best supported on expensive data centre devices.


This article seems to be targeting Windows. Does anyone know how different the process is on Linux? (Or if there are Linux-specific resources like this)


https://github.com/tandasat/Hypervisor-101-in-Rust is there to help

https://github.com/cloud-hypervisor/cloud-hypervisor isn't educational necessarily but is one of the most technically progressive fastest developing highest funded vm projects ever, and there are oodles of tech talks on it. I am not qualified to make any specific recommendations, but there's tons of stuff here.


> and there are oodles of tech talks on it

Can you recommend a few good ones?

Searching Youtube for cloud-hypervisor doesn't yield anything solid.


All of the NT functions used here have 1:1 Linux kernel equivalents, they are all very fundamental kernel operations that every kernel will have



I mean in-depth guides like the one that was linked, not technologies, but thank you



Highly recommend the Gamozolabs streams for this type of work too. [1]

1. https://m.youtube.com/@gamozolabs/playlists




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: