I hate to be that guy that's clearly ignorant on a particular topic, asking "why not just do <extremely hard or nonsensical thing>?" but I've always wondered..
Why can't you just make a Linux kernel module that takes an arbitrary ELF and runs it in kernel space? This is identical to what unikraft describes doing only with their own kernel. We have firecracker starting full Linux very quickly these days.. no more worries about missing syscalls, drivers, weird scheduler behavior etc? It would be just like running your app as a Linux process but sans the constant hops from ring 0 to 3 and back.
Why can't you just make a Linux kernel module that takes an arbitrary ELF and runs it in kernel space? This is identical to what unikraft describes doing only with their own kernel. We have firecracker starting full Linux very quickly these days.. no more worries about missing syscalls, drivers, weird scheduler behavior etc? It would be just like running your app as a Linux process but sans the constant hops from ring 0 to 3 and back.