We're probably not too far off from java-as-the-os, node-as-the-os, etc. Substituting a hypervisor for Linux or whatever other OS you're using as the emulation layer seems to the be the architecture of choice for this type of work right now... I guess because you'd just have to implement a handful of drivers... in addition to other OS bits like scheduling and memory of course, but I suspect those things are fairly straightforward for many applications especially if you can assume that there are no other "processes" running... essentially those just become implementation details of the application that can be swapped in and out like any other library/framework
The term I've seen for this sort of architecture is a "unikernel"
This OSv project looks nice, definitely something to keep on the radar