Ottawa Linux Symposium


kHTTPd
Performance
Architecture
Kernel Tricks
kASYNCd
 


Links
RFC xxxx
Apache
Zeus
phHTTPd
Mindcraft
Netcraft
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 http://zgp.org/mailman/listinfo/khttpd-users 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

Disclaimer

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.