Find Related products on Amazon

Shop on Amazon

Hypervisor as a Library

Published on: 2025-06-30 22:07:19

Before we dive into the topic, let me introduce you my new friend catsay , a simple Go program which eats stdin and speaks like a cat: Cute! ... but it's not what I want to talk about. What makes this screenshot very exciting is, it's a Linux lightweight virtual machine running on Starina operating system! That said, this post is not about how hard it is to write a hypervisor (see my previous post for that). In fact, it's not that hard. The hardest part is to design how you interact with the hypervisor. In other words, designing the hypervisor API. Starina needs an attractive integration with Linux. In this post, I'd share a design pattern: hypervisor as a library. How do we run Linux apps in Linux today? First, if you were to write a Rust application which uses catsay , how do you integrate? In Rust, you would use std::process::Command to run catsay : Command :: new ( "/bin/catsay" ) . stdin (stdin) . spawn () If you want to pass an environment variable, just add a single line ... Read full article.