4 ms·
If you look at the trend on "mainstream" OSs, it seems to be going the other way. Google and friends have been working hard to move the networking stack upwards
by simias 6y ago
If you look at the trend on "mainstream" OSs, it seems to be going the other way. Google and friends have been working hard to move the networking stack upwards into the userland, because they control the userland and not the kernel. I also blame Microsoft who sucks at providing timely and non-intrusive updates to their kernel, and since it's closed source nobody else can really do anything.
I always thought for instance that SSL/TLS ought to be implemented in the kernel, with an userland daemon dealing with certificate verification. That's how for instance Linux implements the spanning tree protocol: the actual bridging is fully done in-kernel and there's a userland daemon tasked with the higher level details of the protocol.
This way certificates stores and critical updates would be centralized in one location instead of having dozens of programs liking their own OpenSSL and using various certificate registries.
It's never gonna happen though. Oh well.
- the8472 6y ago> I always thought for instance that SSL/TLS ought to be implemented in the kernel Linux provides TLS sockets. Only the bulk transmission is handled by the kernel. Handhsaking and renegotiation has to be handled by userspace. That allows offloading to hardware accelerators. In theory you can sendfile() from a NVMe drive through the a network card with crypto/compression handling without ever touching main memory with all the normal IO syscalls, i.e. with no userspace modification other than opening a TLS socket instead of a TCP one.
- zie 6y agoFreeBSD does in-kernel TLS also. https://reviews.freebsd.org/rS351522 https://reviews.freebsd.org/rS351522
- Mister_Snuggles 6y ago> I always thought for instance that SSL/TLS ought to be implemented in the kernel, with an userland daemon dealing with certificate verification. This is (was?) available in Solaris[0]. I never used it, so I have no idea how well it worked. [0] https://docs.oracle.com/cd/E26502_01/html/E28990/webk-3.html https://docs.oracle.com/cd/E26502_01/html/E28990/webk-3.html
- non-entity 6y ago> If you look at the trend on "mainstream" OSs, it seems to be going the other way. Google and friends have been working hard to move the networking stack upwards into the userland, because they control the userland and not the kernel. Any links on what they're doing with this, regardless of intention, I'm curious to see.
- pjmlp 6y agoMost likely as a side effect from Project Treble, where Linux kernel is coerced into a pseudo-mikrokernel. https://source.android.com/devices/architecture/modular-system/networking?hl=en https://source.android.com/devices/architecture/modular-syst... AIDL means Android IDL, which is the mechanism for Android IPC, also used by Treble for communication with modern driver model (classical Linux drivers are "legacy" drivers from Project Treble point of view).