A SERVICE OF

logo

Chapter 1. What is TUX?
TUX is a kernel-based web server licensed under the GNU General Public License (GPL).
It is currently limited to serving static web pages and coordinating with kernel-space mod-
ules, user-space modules, and regular user-space web server daemons to provide dynamic
content. Regular user-space web servers do not need to be altered in any way for TUX to
coordinate with them. However, user-space code has to use a new interface based on the
tux(2) system call.
Although dynamic content is becoming increasingly popular, there is still a need to serve
static content. For example, nearly all images are static. TUX can serve static content very
efficiently from within the Linux kernel. A similar operation is already performed by the
Network File System (NFS) daemon that runs in the kernel.
TUX also has the ability to cache dynamic content. TUX modules (which can be build in
kernel space or in user space; user space is recommended) can create "objects" which are
stored using the page cache. To respond to a request for dynamic data, a TUX module can
senda mixof dynamically-generateddata andcached pre-generatedobjects, takingmaximal
advantage of TUX’s zero-copy architecture.
This new architecture for serving dynamic content requires a new API. The current API’s
for CGI can not be sufficiently mapped to TUX’s API. Thus, existing CGI applications must
be converted before TUX will process them. If the CGI application does not require the in-
creased speed of TUX, TUX can process it by running the CGI application normally. This
is done through TUX’s CGI module. TUX can also handle a complex request (CGI or oth-
erwise) by redirecting it to another web server daemon such as Apache. In other words,
static content, TUX modules, old-style CGI applications, and programs specifically written
for other webservers can be run on the same system with TUX as the main web server.
In summary, the differences between TUX and other webservers as well as the benefits of
using TUX include:
TUX runs partly within a custom version of kernel 2.4.x or higher and partly as a user-
space daemon.
With acapable network card, TUXenables direct scatter-gather DMAfrom thepage cache
directly to the network, thus avoiding data copies.
Whenever TUX is unsure how to process a request or receives a request it is unable to
handle, it always redirects therequest to theuser-space web server daemonto handle it in
an RFC-compliant manner. An example of this user-space web server daemon is Apache.
Apache is used throughout this document asthe user-space web server daemon for readability.
For questions or comments about TUX or this documentation, join the
<tux-list@redhat.com> mailing list. For instructions on joining the mailing list, see
http://www.redhat.com/mailing-lists/.
Also visit the Red Hat TUX Web Server Support page
http://www.redhat.com/services/techsupport/application/tux.html.
7