Our objective is to build the kernel network stack as a shared library that can be linked to by userspace programs to provide network stack personalization and testing facilities, and allow researchers to more easily simulate complex network topologies of linux routers/hosts.
Although the architecture itself can virtualize various things, the current design only focuses on the network stack. You can benefit network stack feature such as TCP, UDP, SCTP, DCCP (IPv4 and IPv6), Mobie IPv6, Multipath TCP (IPv4/IPv6, out-of-tree at the present moment), and netlink with various userspace applications (quagga, iproute2, iperf, wget, and thttpd).
Way back when (I think the 1.3 kernel before a major change in IPV4) I tried to turn IPV4 into a loadable module. If you are trying to boot from a disk and don’t need NFS, you probably won’t need it for a while, and for embedded this is better.
The next step is to make a trivial kernel, and then to have a built-in insmod for the decompressed kernel image so you could do everything as a module except for the core, and just do “cat kernel.bin x.ko y.ko z.ko …” and it would boot, self-load (and allowing removal!).
Nope, that sounds like exokernel architecture…
Edited 2015-03-25 06:25 UTC
Because if you have NIC-drivers, maybe a large part of that can be used to talk to the network card directly getting even better performance:
http://lukego.github.io/blog/2013/01/04/kernel-bypass-networking/
Also sounds a lot like User-mode-Linux (running Linux as a process under Linux) and even coLinux (running Linux as a process under Windows).
Edited 2015-03-26 09:01 UTC