logoalt Hacker News

bjourne08/01/20254 repliesview on HN

What is the need for mashing more and more stuff into the kernel? I thought the job of the kernel was to manage memory, hardware, and tasks. Shouldn't protocols built on top of IP be handled by userland?


Replies

heavyset_go08/01/2025

Having networking, routing, VPN etc all not leave kernel space can be a performance improvement for some use cases.

Similarly, splitting the networking/etc stacks out from the kernel into userspace can also be a performance improvement for some use cases.

show 2 replies
kortilla08/01/2025

No, protocols directly on IP specifically can’t be used in userland because they can’t be multiplexed to multiple processes.

If everything above IP was in userland, only one program at a time could use TCP.

TCP and UDP being intermediated by the kernel allow multiple programs to use the protocols at the same time because the kernel routes based on port to each socket.

QUIC sits a layer even higher because it cruises on UDP, so I think your point still stands, but it’s stuff on top of TCP/UDP, not IP.

show 1 reply
leoh08/01/2025

Maybe. Getting stuff into the kernel means (in theory) it’s been hardened, it has a serious LTS, and benefits from… well, the performance of being part of the kernel.

mcosta08/01/2025

DMA transfers and NIC offloading