HTTP in the kernel

May 11, 2010 10:45

Here's an interesting thought in passing: HTTP stacks in our kernels, for clients and for servers, with appropriate syscalls. If TCP is in there, why not HTTP? It's fast becoming a "baseline" protocol underneath applications.
Read more... )

Leave a comment

Comments 1

graydon May 11 2010, 16:14:48 UTC
It's been done in the past, and indeed IIS (the microsoft web server) has a substantial kernel component in newer versions. But I think the general consensus in unix-land is against this approach; the performance gains aren't seen as significant enough to pay for the cost, in terms of fragility and complexity.

I think one way to consider things for "kernel-ness" is not whether they are "baseline" services, but whether they are primitive abstractions over substantially messier and more-variable hardware systems (eg. "filesystem" or "data stream" as substitutes for "disk sector addresses" and "buffers and interrupts" interfaces) and/or security primitives. Above that sort of machinery I think kernel people tend to want to push problems -- irrespective of their commonality -- into userspace. The blurry set of exceptions usually have to do with performance, on the assumption that in-kernel runs faster. Which is not always true, and even when it is, not always true enough to justify it.

Reply


Leave a comment

Up