TUX web server

Short description: Web server

The TUX web server is an unmaintained in-kernel web server for Linux licensed under the GNU General Public License (GPL). It was maintained by Ingo Molnár.

It was limited to serving static web pages and coordinating between kernelspace modules, userspace 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.[1] However, userspace code has to use a new interface based on the `tux(2)` system call.[2]

## Contents

* 1 Comparison with traditional web servers
* 2 Project status
* 3 See also
* 4 References
* 5 External links

## 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 and partly as a userspace daemon.
* With a capable network card, 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 more efficiently than traditional web servers by to running directly within the kernel and avoiding data copies.[1][3] 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.[1] However, the CGI application needs to be modified to support Tux.[1] 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 or lighttpd. 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, 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.{{Citation needed|date=December 2009} buffer overflow 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 is dead. There has not been any new development on TUX for about 4 or 5 years, now.

— Ryan Lynch, TUX installation (2009)[4]

## See also

* Comparison of web server software
* Web server
* Httpd

## References

1. ↑ 1.0 1.1 1.2 1.3 "TUX 2.0: Reference Manual". Saint Louis Linux Users Group. 2001. https://www.stllinux.org/meeting_notes/2001/0719/tux/intro.html.
2. ↑ "tux - interact with the TUX kernel subsystem". https://www.ibiblio.org/gferg/ldp/man/man2/tux.2.html.
3. ↑ Lever, Chuck; Eriksen, Marius Aamodt; Molloy, Stephen P. (November 16, 2000), An analysis of the TUX web server, Center for Information Technology Integration, University of Michigan, https://deepblue.lib.umich.edu/bitstream/handle/2027.42/107910/citi-tr-00-8.pdf?sequence=1
4. ↑ Lynch, Ryan (2009-09-18). "TUX installation". https://listman.redhat.com/archives/tux-list/2009-September/msg00001.html.

## External links

*   * kHTTPd - Linux HTTP Accelerator

* v
* t
* e

Linux kernel

Organization|

| Kernel|

* Linux Foundation
* Linux Mark Institute
* Linus's law
* Tanenbaum–Torvalds debate
* Tux
* SCO disputes
* Linaro
* GNU GPL v2
* menuconfig
* Supported computer architectures
* Kernel names
* Criticism

|

Support|

* Developers
* The Linux Programming Interface
* kernel.org
* LKML
* Linux conferences
* Users
* Linux User Group (LUG)

Technical|

| Debugging|

* CRIU
* ftrace
* kdump
* Linux kernel oops
* SystemTap
* BPF

|

Startup|

* vmlinux
* System.map
* dracut
* initrd
* initramfs

ABIs|

* Linux Standard Base
* x32 ABI

APIs|

| Of
userspace|

| FS,
daemons|

* devfs
* devpts
* debugfs
* procfs
* sysfs
* systemd
* udev
* Kmscon

|

Wrapper
libraries|

* C standard library
* glibc
* uClibc
* Bionic
* libhybris
* dietlibc
* EGLIBC
* klibc
* musl
* Newlib
* libcgroup
* libdrm
* libalsa
* libevdev
* libusb

kernel|

| System Call
Interface|

* POSIX
* ioctl
* select
* open
* read
* close
* sync
* …
* Linux-only
* futex
* epoll
* splice
* dnotify
* inotify
* readahead
* …

|

In-kernel|

* ALSA
* Crypto API
* DRM
* kernfs
* Memory barrier
* New API
* RCU
* Video4Linux

Components|

* Kernel modules
* BlueZ
* cgroups
* Console
* bcache
* Device mapper
* dm-cache
* dm-crypt
* DRM
* EDAC
* evdev
* Kernel same-page merging (KSM)
* LIO
* Framebuffer
* LVM
* KMS driver
* Netfilter
* Netlink
* nftables
* Network scheduler
* perf
* SLUB
* zram
* zswap

* Process and I/O schedulers:
* O(n) scheduler
* O(1) scheduler
* Completely Fair Scheduler (CFQ)
* Brain Fuck Scheduler
* Noop scheduler
* SCHED_DEADLINE

* Security Modules: AppArmor
* Exec Shield
* grsecurity
* PaX
* seccomp
* SELinux
* Smack
* Tomoyo Linux
* Linux PAM

* Device drivers
* 802.11
* graphics
* Raw device

* initramfs
* KernelCare
* kexec
* kGraft
* kpatch
* Ksplice

Variants|

* Mainline
* Linux kernel
* Linux-libre
* High-performance computing
* INK
* Compute Node Linux
* SLURM
* Real-time computing
* RTLinux
* RTAI
* Xenomai
* Carrier Grade Linux
* MMU-less
* μClinux
* PSXLinux

| Virtualization|

* Hypervisor
* KVM
* Xen
* OS-level virtualization
* Linux-VServer
* Lguest
* LXC
* OpenVZ
* Other
* L4Linux
* ELinOS
* User-mode Linux
* MkLinux
* coLinux

|

Adoption|

| Range
of use|

* Desktop
* Embedded
* Gaming
* Thin client:
* LTSP
* Thinstation
* Server:
* LAMP
* LYME-LYCE
* Devices

|

Adopters|

* List of Linux adopters
* GENIVI Alliance
* Proprietary software for Linux

* Category
* Commons
* Book
* Wikiversity
* Portal

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/TUX web server. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:TUX_web_server&oldid=3966291"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template