Unikernel frameworks like Mirage either provide all those features, or in the case of drivers, are just targeting virtio&#x2F;veth&#x2F;etc. paravirtualized devices offered by the hypervisor. So the domU doesn&#x27;t have any abstraction to worry about other than just targeting a particular Hypervisor&#x27;s representation of storage and networking.<p>Xen provides very basic (but safe) message&#x2F;event channels between VMs. Basically this becomes your IPC, and the VMs become user processes.<p>With a new enough CPU with the correct memory virtualization features, xen can scale to many thousands of domUs. And with each domU only taking up slightly more resources than a typical user process, this is a completely reasonable approach.<p>Again, your Hypervisor becomes the OS which has to worry about the baremetal, and the VMs replace user processes.<p>I intend to playing with MirageOS seriously myself next year.<p>Edit: some dependencies in an example MirageOS app: <a href="https:&#x2F;&#x2F;mirage.io&#x2F;wiki&#x2F;technical-background#ModularOSLibraries" rel="nofollow">https:&#x2F;&#x2F;mirage.io&#x2F;wiki&#x2F;technical-background#ModularOSLibrari...</a>