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
* Performance: the path taken by data from a source device (i.e. a disk) to a destination device (i.e. a ...
for
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
licensed under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL). It was maintained by
Ingo Molnár
Ingo Molnár, employed by Red Hat as of May 2013, is a Hungary, Hungarian Linux Hacker culture, hacker. He is known for his contributions to the operating system in terms of Computer security, security and Computer performance, performance.
Li ...
.
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 a web browser exactly as stored, in contrast to dynamic web pages which are generated by a web application.
Consequently, a static web page ...
s and coordinating between kernelspace
modules
Module, modular and modularity may refer to the concept of modularity. They may also refer to:
Computer science and engineering
* Modular design, the engineering discipline of designing complex devices using separately designed sub-components
...
,
userspace
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
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.
Comparison with traditional web servers
The main differences between TUX and other webservers include:
*TUX runs partly within a customized version of the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
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 and physical network interface) is a computer hardware component that connects a computer to a computer network.
Early network interface ...
, TUX enables
scatter-gather
In computing, vectored I/O, also known as scatter/gather I/O, is a method of input and output by which a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream (gather), or reads data from a dat ...
DMA
DMA may refer to:
Arts
* ''DMA'' (magazine), a defunct dance music magazine
* Dallas Museum of Art, in Texas, US
* BT Digital Music Awards, an annual event in the UK
* Danish Music Awards
* Detroit Music Awards
* Doctor of musical arts, a degree ...
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 more efficiently than traditional web servers by to running directly within the kernel and avoiding data copies.
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, the CGI application needs to be modified to support Tux.][ Also, 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
The Apache ( ) are several Southern Athabaskan language-speaking peoples of the Southwestern United States, Southwest, the Southern Plains and Northern Mexico. They are linguistically related to the Navajo. They migrated from the Athabascan ho ...
or lighttpd
lighttpd (prescribed pronunciation: "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 ...
. 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
Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
, SuSE Suse may refer to:
* Fort Suse, a military installation in the Kurdistan region of Iraq
* Suse Heinze (1920–2018), German diver
See also
* SUSE (disambiguation)
* Sus (disambiguation)
* Susa, an ancient capital of Elam and the Achaemenid Emp ...
and Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
. 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 An in-kernel web server is an unlimited HTTP server that runs in kernel space or equivalent. It is also known as "accelerator".
Benefits
* Performance: the path taken by data from a source device (i.e. a disk) to a destination device (i.e. a N ...
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 within TUX could give an attacker superuser
In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of the ...
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
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
A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
* Httpd
HTTPd is a software program that usually runs in the background (i.e. a so-called "daemon"), 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 inco ...
References
External links
TUX downloads
kHTTPd - Linux HTTP Accelerator
*
{{Linux kernel
Free web server software
Third-party Linux kernel modules
Linux kernel features