UNIX, GNU, LINUX, RED HAT, X WINDOWS, SAWFISH, AND GNOME

The operating system and the user interface that run on MathLAN workstations are the combined efforts of several different organizations and projects. This guide identifies some of them and explains their relationships.

Unix

The name `Unix' is applied to a family of operating systems that either derive from or are modelled after the UNIX Time-Sharing System developed in 1979 at Bell Laboratories, mainly by Ken Thompson and Dennis M. Ritchie.

The operating systems on MathLAN workstations are not direct descendants of the UNIX Time-Sharing System, but many of the fundamental decisions that the designers made purposely conformed to the design and operation of that system and its numerous offshoots.

Initially, the UNIX Time-Sharing System was an incidental research project of its developers, not a marketable product. Ritchie and Thompson sent out copies of it on request, complete with source code, for a nominal price to cover the costs of reproduction and mailing. At some of the universities and other organizations that acquired copies in this way, people modified the source code, adding local adaptations, extensions, and improvements, some of which were incorporated back into subsequent versions of the Bell Labs system.

After a few years, AT&T perceived that there was a market for an operating system with the features that Thompson and Ritchie had designed into the UNIX Time-Sharing System. They began charging a use fee for the software and an even higher license fee for the source code, and they prevented publication of a textbook (Commentary and source code on UNIX Level 6, by John Lions of the University of New South Wales) that reproduced and analyzed the source code. Other companies began to license Unix from AT&T, add their own proprietary innovations, and resell it without source code.

GNU

Unix was only one of several important and innovative software systems that abruptly became proprietary in the late 1970s and early 1980s, after years of cooperative development in the public domain. Many of the people who worked on useful software in research and academic settings deeply resented this trend. Richard Stallman, a researcher at the MIT Artificial Intelligence Lab, did something about it: He established the Free Software Foundation, a non-profit organization established to promote the idea that all users of software should be free to run it, for any purpose; to study and learn from its source code; to copy it for other users; to modify it to suit their own interests and meet their own needs; and to release their modifications and improvements for the common good.

The Free Software Foundation's principal long-term project is GNU, a complete free operating system patterned after Unix, but written completely from scratch, using no source code owned by AT&T or any of the successor companies that claimed rights of ownership. (`GNU' is an acronym for ``GNU's Not UNIX.'') Stallman has written extensively in defense of the Free Software Foundation's ideals and goals. His essay ``The GNU Manifesto,'' is perhaps the best introduction to his thinking.

Like the UNIX Time-Sharing System, GNU is structured as a kernel program, which allocates and manages such key resources as processor time and memory, and a large number of more or less independent application programs that perform less essential tasks. Almost immediately after Stallman launched the GNU Project, therefore, he was able to begin releasing free versions of the applications. Because most of them communicate with the kernel only in a fixed number of well-documented ways that are common to most versions of Unix, the GNU applications are easily configured to run in mostly non-GNU environments. (In MathLAN, for instance, we used many GNU programs both when our workstations were Suns running the SunOS operating system, and when they were Hewlett-Packards running HP-UX.) Often GNU applications are noticeably better than the proprietary programs that they emulate.

To ensure that no one can legally exclude others from using, studying, modifying, and sharing GNU, Stallman devised the GNU General Public License, which affirms the author's copyright of the software, but simultaneously affirms the right of anyone to copy, distribute, and modify it, subject only to the condition that the resulting copies or derivative versions of the software must be licensed in the same way. This has turned out to be such a useful idea that many programs not originally developed as part of the GNU Project have been released under the GNU General Public License.

Linux

One such program is the Linux kernel, which began as the project of a Finnish student, Linus Torvalds. He had the bright idea of making his source code available on the Internet, as he was writing it, so that other people could make suggestions, contribute solutions to problems, and even write some of the subprograms that he needed. (It's still available on line, at Linux HeadQuarters and elsewhere, and you can still make suggestions and contribute code to the project.) As the kernel developed, Torvalds gradually became more of an editor and designer, synthesizing and harmonizing the work of his contributors.

The Linux kernel, though again not derived from the UNIX Time-Sharing System, is designed to work like other versions of Unix, providing the same services to application programs. Consequently, GNU applications can be used with the Linux kernel. The combination is called the GNU/Linux operating system, or, more usually, just Linux.

Red Hat

Many organizations have found it convenient or profitable to package a GNU/Linux operating system, either by itself or with additional software. Such a package is called a Linux distribution. There are hundreds of Linux distributions, containing different selections of application programs, different system-administration tools, and so on. The one that we use on the MathLAN workstations was assembled by Red Hat Software.

X Windows

The original UNIX Time-Sharing System did not have a graphical user interface. The user logged in and and typed commands into a shell (that is, a command-language interpreter), which reported results, if any, by writing characters onto a terminal screen.

When terminals and personal computers with graphical displays started to become widely available in the mid-1980s, a group at MIT developed a software library that provided a consistent interface to many different kinds of graphical hardware, suitable for use in a computer network. They also wrote some application programs that used this library. The software bundle comprising the library and the MIT applications is called X Windows. These days it is maintained by a non-profit organization, X.org.

The particular implementation of X Windows that MathLAN workstations use is XFree86.

Sawfish

Many of the original X Windows application programs had (and still have) a rough, edgy look and feel. By current standards, their user interface is unattractive: Menus, buttons, and panels are often rendered as plain rectangles, there is little use of color or shading, and the cute icons that are widely believed to delight the eyes of users are missing.

Gradually, therefore, X Windows applications have been extended and superseded by programs with more aesthetic appeal -- still ultimately based on the X Windows libraries, but using them in subtler ways. One particularly fundamental application is the window manager, which keeps track of the windows on display, regulates their general appearance and layout, and allows the user to move, resize, minimize, restore, maximize, and close them.

Although each MathLAN user can in principle choose for herself from among several window managers that are available, the default and recommended window manager is called Sawfish.

GNOME

The window manager by itself, however, is insufficient. A modern graphical user interface also requires a desktop environment, which allows the user to select programs from menus or launch them by clicking on icons, place icons for files and programs that are used frequently or have been used recently against the background, and generally perform common operations without ever having to type a command line. A desktop environment is often packaged or even integrated with a selection of office applications -- a word processor, a spreadsheet, a database, a slide-maker, and so on.

Again, MathLAN users can choose from a variety of desktop environments, but GNOME is the default. The four-toed footprint that appears at the left end of a typical user's front panel is the GNOME logo.

(laurel leaf logo)

created July 25, 2000
last revised June 28, 2001

John David Stone (stone@cs.grinnell.edu)