top | item 21268467

Show HN: Sparkler – A KVM-Based Virtual Machine Manager

108 points| shuss | 6 years ago |unixism.net

8 comments

order
[+] mjb|6 years ago|reply
Nice writeup!

> The VMM emulates some interesting hardware: a device that can read the latest tweet from Command Line Magic’s Twitter handle, a device that can get the weather from certain cities, another device that can read fetch the latest air quality measurements from certain cities and finally a console device that lets the virtual machine read the keyboard and output text to the terminal.

This is one of the under-appreciated fun things about virtualization: the ability to pretty much make up 'hardware' devices, and completely rethink the way that the hardware should work. No need to be a PC when you can be anything you want. Obviously it's possible to do all the same stuff with hardware, or even kernel drivers, but the KVM interface makes it really easy and fun.

[+] shuss|6 years ago|reply
Weirdly no one had done it so far. That's the reason why I cooked up some high level devices :)
[+] saagarjha|6 years ago|reply
> You can program KVM using the well known UNIX file paradigm.

Does anyone know why the API was designed this way? Sending a bunch of ioctls to modify the KVM state seems no better than just having normal function calls for it…

[+] wyldfire|6 years ago|reply
> Sending a bunch of ioctls to modify the KVM state seems no better than just having normal function calls for it

Seeing as how they're mmap()ing the fds, it makes some sense to leverage the other file_operations.

[+] rwmj|6 years ago|reply
What would "normal function calls" mean? This is happening on the Linux syscall boundary.