Meet LKL: Turn Linux Kernel into a Library
lwn.net
lwn.net
One problem is it appears to require that programs are rewritten, replacing all system calls with lkl_sys_* variants. For some programs this is necessary, because you want to differentiate between (eg) lkl_sys_open (open a file through LKL) and regular open (open a file on the host), but it's also a pain for any significant program.
[1] https://rwmj.wordpress.com/2015/11/07/linux-kernel-library-b...
SMP scalability is all about bottlenecks. If the driver is the bottleneck, it won't scale no matter where you run it.
If you link (-llkl) directly to your program, then no, since it's all in the same process. But this is not exposing the POSIX API or a host filesystem, so that's possibly not useful, depending on what you're trying to do.
I compare lkl to libguestfs in my article here: https://rwmj.wordpress.com/2015/11/07/linux-kernel-library-b...
Basically this is a kernel running in userspace, not hooking into the actual kernel running in kernel space?
But the context switches not the bottleneck in FUSE. Did you benchmark?
[1] https://www.nsnam.org/overview/projects/direct-code-executio...
1. is the entirety of kernel-networking now available to applications e.g. applications using tcp/udp/sctp/ipsec etc. etc. stacks completely in userland, just need to link with liblkl, and they are all set ?
2. also with dpdk etc. quite a large number of vendors are offering implementation of core networking protocols from l2 all the way up to l7. would this make all of those obsolete ?
but network stack is not all about open(2)/close(2): bunch of configuration tools are needed to do the job, which is what we want to have in a future.
2. yes and no.