The TUX web server is an unmaintained
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
* Computer performance, Performance: the path taken by data from a source Peripheral, device (i.e. a Disk st ...
for
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
licensed under the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(GPL). It was maintained by
Ingo Molnár
Ingo Molnár, employed by Red Hat as of May 2013, is a Hungarian Linux hacker. He is known for his contributions to the operating system in terms of security and performance.
Life and career
Molnár studied at Eötvös Loránd University.
Wo ...
.
It was limited to serving
static web page
A static web page (sometimes called a flat page or a stationary page) is a web page that is delivered to the user's web browser exactly as stored, in contrast to dynamic web pages which are generated by a web application.
Consequently, a static ...
s and coordinating between kernelspace
modules
Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a s ...
,
userspace
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
modules, and regular userspace web server
daemons that provide dynamic content. Regular userspace web servers do not need to be altered in any way for TUX to coordinate with them. However, userspace code has to use a new interface based on the
tux(2)
system call.
The main differences between TUX and other webservers include:
*TUX runs partly within a customized version of the
Linux kernel and partly as a userspace daemon.
*With a capable
network card
A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network.
Ear ...
, TUX enables
scatter-gather DMA from the page cache directly to the network.
*TUX is only able to serve static web pages.
While only being able to serve static web pages could be seen as a significant disadvantage, TUX has one significant advantage: it is able to serve pages faster than traditional web servers. This is largely due to its place directly within the kernel, where it can improve performance by taking advantage of facilities not available to traditional web servers, which run outside of the kernel. However, this also means that TUX does not generate dynamic content. Because it is running within the kernel, such dynamic content cannot take advantage of functions that the kernel provides to userspace programs, and would create tremendous security issues.
TUX is capable of launching
CGI programs to provide dynamic content. However, CGI suffers from significant performance limitations, so a CGI-heavy site would gain no performance advantage from using TUX. TUX can also redirect any request it cannot process to a traditional userspace web server daemon, for example
Apache or
lighttpd
lighttpd (pronounced "lighty") is an open-source web server optimized for speed-critical environments while remaining standards-compliant, secure and flexible. It was originally written by Jan Kneschke as a proof-of-concept of the c10k problem â ...
. This allows TUX to handle both dynamic content and errors in a safer, faster, and
RFC-correct manner.
TUX has never been an integrated part of the official Linux kernel, although it was shipped in some distributions, notably
Red Hat,
SuSE and
Fedora. It served as a test bed (and motivator) for many features which were integrated separately. One major component was the
Native POSIX Thread Library The Native POSIX Thread Library (NPTL) is an implementation of the POSIX Threads specification for the Linux operating system.
History
Before the 2.6 version of the Linux kernel, processes were the schedulable entities, and there were no special f ...
, which, with the right tuning parameters, allows userspace web servers to serve web pages at a speed very close to that of a
kernelspace web server like TUX but without its limitations. Core kernel developers also argued that having an HTTP daemon within the kernel is dangerous. For example, a common bug such as a
buffer overflow
In information security and programming, a buffer overflow, or buffer overrun, is an anomaly whereby a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory locations.
Buffers are areas of memo ...
within TUX could give an attacker
superuser control over the machine. Therefore, it is much safer to keep the HTTP daemon entirely within userspace, where a bug does not necessarily give an attacker total control.
Project status
Tux has been found to be largely unnecessary as modern kernels and web servers can supply similar speed advantages as Tux did, without the in-kernel downsides.
There are other options for high-performance static web servers in Linux. Nginx
Nginx (pronounced "engine x" ) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software ...
found its path to popularity in party by extremely fast serving of static content.
See also
*
Comparison of web server software
Web server software allows computers to act as web servers. The first web servers supported only static files, such as HTML (and images), but now they commonly allow embedding of server side applications.
Some web application frameworks include s ...
*
Web server
*
Httpd
HTTPd is a software program that usually runs in the background, as a process, and plays the role of a server in a client–server model using the HTTP and/or HTTPS network protocol(s).
The process waits for the incoming client requests and for ...
References
External links
TUX 2.0 DocumentationTUX downloadskHTTPd - Linux HTTP Accelerator
{{Linux kernel
Free web server software
Third-party Linux kernel modules
Linux kernel features