TUX web server: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Eric M Gearhart
(The nitty gritty stuff on it being a module belongs in an "architecture" section that needs to be created. The intro paragraph should be able to be read by a "layman")
imported>Eric M Gearhart
(Added a bunch of content, reworded some to be less "Linux techie" specific)
Line 6: Line 6:


==Development and Limitations==
==Development and Limitations==
Out of the box, it is currently limited to [[server|serving]] only static pages, meaning that it can't serve pages that were dynamically created using web scripting languages such as [[PHP]] or [[Perl]]. However, additional modules can be used to work with dynamic scripting languages, similarly to the way Apache uses the PHP module, except TUX does not contain any [[CGI]] functionality out of the box. These modules can be run from either the userspace or from other kernel modules.
In its default configuration, TUX is limited to [[server|serving]] only static HTML web pages, meaning that it can't serve web pages that were dynamically created using scripting languages such as [[PHP]] or [[Perl]]. However, additional modules can be used to work with dynamic scripting languages, similarly to the way Apache uses its mod_php module. These modules can be run from either the userspace (which is generally considered safer - see [[Buffer overflow|buffer overflow]]) or from other modules inserted into the kernel.


TUX has never been an integrated part of the official Linux kernel, although it has been shipped in some  
TUX has never been distributed in the "official" kernel distribution (it is a patchset), although it has has been included with the kernels of some [[Linux distribution|Linux distributions]], notably Red Hat, SuSE and Fedora.  
[[Linux distribution|Linux distributions]], notably Red Hat, SuSE and Fedora.  


It served as a [[testbed]] for many features which were integrated separately, including the Native [[POSIX]] Thread Library. With the right [[tuning]] parameters, the library allows web servers to serve pages at a speed very close to that of a kernelspace web server such as TUX but without its limitations.
It served as a [[testbed]] for many features which were integrated separately, including the Native [[POSIX]] Thread Library. With the right [[tuning]] parameters, the library allows web servers to serve pages at a speed very close to that of a kernelspace web server such as TUX but without its limitations or security concerns.


==Controversy over Security==
==Controversy over Security==

Revision as of 14:49, 21 April 2007

The TUX web server is a high performance World Wide Web server that can be run partially inside the Linux kernel, in order to serve web pages faster than traditional web servers such as Apache. Its name is derived from the Linux penguin mascot, Tux. It was originally contributed to the Linux kernel project by kernel hacker Ingo Molnar.[1]

Development and Limitations

In its default configuration, TUX is limited to serving only static HTML web pages, meaning that it can't serve web pages that were dynamically created using scripting languages such as PHP or Perl. However, additional modules can be used to work with dynamic scripting languages, similarly to the way Apache uses its mod_php module. These modules can be run from either the userspace (which is generally considered safer - see buffer overflow) or from other modules inserted into the kernel.

TUX has never been distributed in the "official" kernel distribution (it is a patchset), although it has has been included with the kernels of some Linux distributions, notably Red Hat, SuSE and Fedora.

It served as a testbed for many features which were integrated separately, including the Native POSIX Thread Library. With the right tuning parameters, the library allows web servers to serve pages at a speed very close to that of a kernelspace web server such as TUX but without its limitations or security concerns.

Controversy over Security

Linux kernel hackers argued that having a daemon, which by design is directly accessible from the Internet (as a web server would have to be), built directly into the kernel is very dangerous. A common bug such as a buffer overflow within TUX could give an attacker full remote superuser control over a machine. They argue that it is much safer to keep such daemons entirely within userspace, where a bug does not necessarily give an attacker total control. However, some Linux distributions, such as Fedora, have added the option to compile TUX into 2.6 kernels.

Related Topics

  • Apache Web Server, another web server that runs completely outside of a kernel
  • The Linux kernel article, for a general overview of the Linux kernel and architecture

Further Reading

citi-tr-00-8.pdf "The TUX web server: An analysis." Provides an architectural overview of TUX, discusses modifications included in the patch, and how TUX affects kernel operating and performance

ps-redha.pdf "Running TUX Web Server for Linux on Dell Servers." Describes the development process that culminated the release of TUX 2.0.

References