HOME

TheInfoList



OR:

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 Documentation



TUX downloads

kHTTPd - Linux HTTP Accelerator


{{Linux kernel Free web server software Third-party Linux kernel modules Linux kernel features