OSv runs a single application in the VM. If several
mutually-untrusting applications are to be run, they can
be run in separate VMs. Our assumption of a single application
per VM simplifies OSv, but more importantly,
eliminates the redundant and costly isolation inside a
guest, leaving the hypervisor to do isolation. Consequently,
OSv uses a single address space — all threads
and the kernel use the same page tables, reducing the
cost of context switches between applications threads or
between an application thread and the kernel.