Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
TUX web server
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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 page]]s and coordinating between kernelspace [[Module (Linux)|modules]], [[userspace]] modules, and regular userspace web server [[daemon (computer software)|daemons]] that provide dynamic content. Regular userspace web servers do not need to be altered in any way for TUX to coordinate with them.<ref name="tux-manual">{{Cite web |year=2001 |title=TUX 2.0: Reference Manual |url=https://www.stllinux.org/meeting_notes/2001/0719/tux/intro.html |url-status=live |archive-url=https://web.archive.org/web/20230806133009/https://www.stllinux.org/meeting_notes/2001/0719/tux/intro.html |archive-date=2023-08-06 |access-date=2023-08-06 |publisher=Saint Louis Linux Users Group}}</ref> However, userspace code has to use a new interface based on the <code>tux(2)</code> system call.<ref>{{Cite web |title=tux - interact with the TUX kernel subsystem |url=https://www.ibiblio.org/gferg/ldp/man/man2/tux.2.html |url-status=live |archive-url=https://web.archive.org/web/20230806132941/https://www.ibiblio.org/gferg/ldp/man/man2/tux.2.html |archive-date=2023-08-06 |access-date=2023-08-06 |website=[[ibiblio]]}}</ref> == 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 [[vectored I/O|scatter-gather]] [[Direct Memory Access|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.<ref name="tux-manual"/><ref name="tux-analysis">{{Citation |last=Lever |first=Chuck |title=An analysis of the TUX web server |date=November 16, 2000 |url=https://deepblue.lib.umich.edu/bitstream/handle/2027.42/107910/citi-tr-00-8.pdf?sequence=1 |archive-url=https://web.archive.org/web/20240324120657/https://deepblue.lib.umich.edu/bitstream/handle/2027.42/107910/citi-tr-00-8.pdf?sequence=1 |archive-date=2024-03-24 |url-status=live |publisher=Center for Information Technology Integration, University of Michigan |last2=Eriksen |first2=Marius Aamodt |last3=Molloy |first3=Stephen P.}}</ref> 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 [[Common Gateway Interface|CGI]] programs to provide dynamic content.<ref name="tux-manual"/> However, the CGI application needs to be modified to support Tux.<ref name="tux-manual"/> 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 HTTP Server|Apache]] or [[lighttpd]]. This allows TUX to handle both dynamic content and errors in a safer, faster, and [[Request for Comments|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 S.A.|SuSE]] and [[Fedora (operating system)|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.{{Citation needed|date=December 2009}} Core kernel developers also argued that having an HTTP daemon within the kernel is dangerous.{{Citation needed|date=December 2009}} For example, a common bug such as a [[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 == {{Blockquote|text=TUX is dead. There has not been any new development on TUX for about 4 or 5 years, now. |author= Ryan Lynch|source= TUX installation (2009)<ref>{{Cite web |last=Lynch |first=Ryan |date=2009-09-18 |title=TUX installation |url=https://listman.redhat.com/archives/tux-list/2009-September/msg00001.html |url-status=live |archive-url=https://web.archive.org/web/20230806132942/https://listman.redhat.com/archives/tux-list/2009-September/msg00001.html |archive-date=2023-08-06 |access-date=2023-08-06 |website=listman.redhat.com Mailing Lists}}</ref>}} == See also == {{Portal|Free and open-source software}} * [[Comparison of web server software]] * [[Web server]] * [[Httpd]] ==References== {{Reflist}} ==External links== * [https://people.redhat.com/~mingo/TUX-patches/ TUX downloads] * [http://www.fenrus.demon.nl/ kHTTPd - Linux HTTP Accelerator] * {{Webarchive|url=https://web.archive.org/web/20180309133547/https://httpd.apache.org/docs/1.3/misc/perf-bsd44.html|title=Running a High-Performance Web Server for BSD|date=2018-03-09}} {{Linux kernel}} [[Category:Free web server software]] [[Category:Third-party Linux kernel modules]] [[Category:Linux kernel features]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Blockquote
(
edit
)
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Comma separated entries
(
edit
)
Template:Linux kernel
(
edit
)
Template:Main other
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)