In-kernel web server

An in-kernel web server is an unlimited HTTP server that runs in kernel space or equivalent. It is also known as "accelerator".

## Benefits[edit]

* Performance: the path taken by data from a source device (i.e. a disk) to a destination device (i.e. a NIC). Proper asynchronous zero-copy interfaces would make this available from user-space.
* Scalability: with respect to number of simultaneous clients. Event notification of comparable scalability seems unlikely in user-space1.

## Drawbacks[edit]

* Security: Kernel processes run with unlimited privileges.
* Portability. Every kernel needs a specific implementation route.
* Reliability. Failure in the webserver may crash the OS.

## Implementations[edit]

* illumos/Solaris: NCAkmod aka Network Cache and Accelerator (NCA) kernel module
* HP-UX: NSAhttp
* Linux: TUX
* Mesibo In-kernel real-time messaging server
* Windows NT: http.sys (part of IIS)
* SPIN: http
* OpenVMS: WASD.trap

## See also[edit]

* Comparison of web server software
* Service-oriented architecture
* Unikernel/Exokernel (eg. SPIN's loadable kernel modules)

## References[edit]

* ^1 CITI_TR_00-4
* High-Performance Memory-Based Web Servers: Kernel and User-Space Performance. Philippe Joubert, Robert B. King, Rich Neves, Mark Russinovich, John M. Tracey. IBM. T. J. Watson Research Center