When the GNU Project first appeared, a few years back, it was greeted with more than a little skepticism. First, there was the goal: a complete, substantial operating system, free of all proprietary restrictions. Who would write it, let alone document and maintain it?

Misunderstandings about the "General Public License" also caused confusion and concern. Fundamentally, however, the GPL is quite simple: You can sell GNU-based code for any price you like. You have to be willing to provide source code, and you can't keep anybody from reselling it (or giving it away). You can ship binary-only releases using GNU libraries, but you have to ship relocatable object files for everything.

The Project has been quite successful, however, producing large quantities of portable, robust software. Quite a few companies have even figured out how to ship GNUish code and still make money. The list includes system and third party vendors, independent support organizations, and, of course, freeware distributors.

The project has managed to duplicate, and many cases improve upon, a large number of UNIX tools. These include most of the languages and programming tools, most of the document preparation and text handling tools, and a variety of other commands and library functions.

In short, the project has cloned most of the UNIX programming environment. In addition, GNU distributes many original tools. Some were written specifically for GNU, others were contributed. Among these are several that should be quite familiar.

GNU Emacs, the most famous, is much more than a single package. It started as a text editor and is now a large interactive environment. It comes in assorted flavors, and has a very large archive of contributed add-ons. For more information, see the March column, "Emacs and E-hax".

compress is so popular that many versions of UNIX include it. perl (Practical Extraction and Report Language) is well on its way toward replacing shell, awk, and even C for many applications. rcs (revision control system) is commonly used in place of sccs, frequently in combination with CVS (Concurrent Version System).

Where is it?

You can retrieve GNU packages from a number of FTP sites. Stop by ftp://prep.ai.mit.edu/pub/gnu/GNUinfo and pick up the FTP file. Please try to do most of your FTPing elsewhere, however, as prep is usually quite busy.

The GNU Project sells CD-ROMs, tapes, and manuals to fund its efforts. GNU software is also available on many UNIX-related freeware collections. Understand, however, that the money for these collections pays for distribution, not development or maintenance. If you get GNU software via FTP, UUCP, or another distributor, please consider donating money and/or labor directly to the Free Software Foundation.

The recession has dried up many individual and corporate funding sources, and the project has had to cut back its staff. Like a listener-supported radio station, the GNU project can continue to provide users with more software only if they do their share to support it. The project can be reached at:

    The GNU Project
    Free Software Foundation
    675 Mass. Ave.
    Cambridge, MA 02139
    +1 617 876 3296

Other GPL software

The General Public License (GPL) has been adopted by a number of authors not directly involved in the GNU Project. The GNU Coverage Tool (GCT), found in ftp://testing.cs.uiuc.edu/pub/, is a suite of tools for measuring test coverage. The CMU implementation of Oaklisp (a Scheme variant) is located in ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/bap/ftpable/oaklisp/. Ada/Ed, a translator-interpreter for Ada, is in ftp://cs.nyu.edu/pub/adaed/. plot2fig, a plot(1) to Fig filter, is another handy tool, but I don't currently know of a server for it. The Scheme distribution is located in ftp://altdorf.ai.mit.edu/pub/scheme-7.2/. The Q system (a very high-level programming language and run-time system) is archived in ftp://ftp.cygnus.com/pub/Q/.

Even when the GPL is not used verbatim, it often has an influence. Quite a few authors use variations on the GPL. They credit the GNU Project for the original, then modify it to taste.


The GNU programming environment is quite plush, and supports a variety of machines, binary file formats, etc. (Cygnus Support now has complete development suites available for use on Sun-3's and 4's under SunOS 4.x, Sun-4's under Solaris-2, DECstations under Ultrix, and SGI Iris and IBM RS/6000 systems.

Along with continuing maintenance and development efforts on existing tools, the project is working on the Hurd, a set of servers to accompany CMU's Mach kernel. When these are complete, they will provide an enhanced replacement for the UNIX kernel. Once the basic operating system is complete, the project will shift its focus in the direction of end-user tools.