Ottawa Linux Symposium

Kernel Tricks

RFC xxxx
Oce Technologies

kHTTPd is a http-daemon (webserver) for Linux. kHTTPd is different from other webservers in that it runs from within the Linux-kernel as a module (device-driver).

kHTTPd handles only static (file based) web-pages, and passes all requests for non-static information to a regular userspace-webserver such as Apache or Zeus.

Static web-pages are not a very complex thing to serve, but these are very important nevertheless, since virtually all images are static, and a large portion of the html-pages are static also. A "regular" webserver has little added value for static pages, it is simply a "copy file to network"-operation. The Linux-kernel is very good at this, for example the nfs (network file system) daemon also runs in the kernel.

By "accelerating" the simple case within the kernel, userspace daemons can do what they are very good at: Generating user-specific, dynamic content.

There is a mailing-list for kHTTPd, visit for more information.

Note: As of kernel 2.3.14, kHTTPd is integrated into the kernel. Kernel 2.3.14 integrates the equivalent of version 0.1.6b. Any newer versions available for download here are to be regarded "unstable" and for testing only.

About version 0.1.6c: This version contains, on request, a first draft of a logging-system that is SPECWeb96 compliant. This is currently very clumsy, not fast and not very well tested.

Persistent connections

Although HTTP/1.1 compliance is scheduled for Linux 2.5.x, persistent connections are available as a test patch here. This is, however, a highly experimental feature.

Older versions
Version 0.1.0
Version 0.1.1
Version 0.1.3
Version 0.1.4
Version 0.1.5
Version 0.1.6
Version 0.1.6a
Version 0.1.6b
Version 0.1.6c
Example Logging Daemon


kHTTPd is in its early stages of development and a work in progress. Bugs will be there, your kernel can and will crash. By downloading kHTTPd, you accept this and will not hold me responsible for any concequences. See the License for more information

Disclaimer 2

My employer, Oce Technologies, allows me to work on kHTTPd, and is very supportive. kHTTPd is NOT a product of Oce Technologies though, and no support will be given by Oce Technologies, nor will any responsibility be accepted.