The GNU Project was launched in 1984 to develop a complete Unix-like operating system composed entirely of free software: the GNU system. GNU is a recursive acronym for "GNU's Not Unix"; it is pronounced "guh-NEW."

GNU Purpose

The purpose of GNU is to continually develop and support a complete free software system that is upwardly compatible with Unix. This is done through a great deal of programming, a bit of legal manuevering, and a very active and attentive leader, Richard M. Stallman.

Why? The whole point of GNU is to make sure that useful software is always free in every way; no cost and with complete source. The GNU project provides all of the software one needs to build a very useful operating system; in fact, the operating system that E2 runs on is run on a large number of GNU components.

Beyond that, the project helps to support others with a similar purpose by breaking ground in legal manuevering. It has developed the concept of copyleft in a legal sense, as well as provided the General Public License under which software's freedom can be legally protected.

In addition, GNU contributes greatly to the cause of open software in a philosophical sense. The leader of the GNU project, Richard M. Stallman, is a widely known and very vocal advocate of the whole philosophy behind this, and such a driving force helps keep the project vibrant and successful.

GNU History

GNU was the brainchild of Richard M. Stallman, who submitted a now-legendary post to the net.unix-wizards newsgroup in September 1983 declaring that he was to begin writing an open, Unix-compatible operating system starting Thanksgiving 1983. At that point, Stallman was best known as the inventor of the emacs text editor.

Stallman initiated the project by calling for donations of machines, money, and people, which is essentially the demand of anyone interested in beginning a massive software project. The response to this request was strong, so in January 1984, Stallman left a lucrative job at MIT to focus on writing software for the GNU project full time. He started off by writing a functional kernel and incorporated into that a simple file system, then he began writing GNU emacs, perhaps the most well-known piece of software that the GNU project has yet produced.

Stallman started GNU emacs in September 1984 and had a nicely functional version complete in early 1985. Since the software was free, it began to be ported to every platform in existence, more or less. To prevent companies from stealing this, Stallman introduced the other major contribution of the GNU project, copyleft. Basically, it is the opposite of copyright; by its very nature it ensures that software written with copyleft protection can never become the property of a company. It uses the existing copyright law, but essentially inverts it.

The specific implementation of copyleft that the GNU project implemented was known as the GNU General Public License, or GPL. Introduced in 1985, it has been revised countless times and protects the freedom of a great deal of software. This license, or variations on it, protect Linux, the BSDs, Perl, and countless other pieces of software that are freely available.

The third major innovation that the GNU project contributed to the world of software first peeked out in 1986 as a collaboration between several members of the project, including Stallman. This was gcc, or the GNU C compiler. Built on top of an older, largely abandoned compiler, this software allowed people to write code in C and compile it using only free software. In essence, it meant that any operating system compatible with the GNU kernel now had the ability to compile high-level code for huge amounts of additional software to be added to the system.

It is highly likely that the underlying kernel behind the GNU project would have evolved into something like Linux is today if it wasn't for Linus Torvalds opening the can of worms first. In 1991, Linus wanted to write a Unix-like operating system to run on the PCs that everyone had, and that was the focus of Linux. Stallman focused on making the GNU kernel (in actuality the Hurd kernel, but we'll get to that) supported on as many systems as possible. With the focus on one specific architecture, Linux took off and left GNU in the dust. Today, Stallman still refers to Linux as GNU/Linux, due to the large number of GNU components still found in Linux (emacs and gcc come to mind immediately).

One shouldn't underestimate the impact of GNU, however. Hundreds of thousands of lines of code are freely available due to the project and have come to support countless operating systems and programs. GNU is largely responsible for much of the non-corporate code available today, either directly or indirectly. And that is no small feat.

What's GNU?*groan*

GNU's current focus, since all of the necessary components of a complete Unix system are now free, is in the development of the Hurd operating system. It has been in development since 1990; even though it is far from a final version, the version now available is quite usable. It was this kernel that the GNU project began developing around the same time that Linux got started.

Other focuses of the GNU project today include developing drivers for hardware that do not have publicly available specs, developing free versions of non-free programming libraries (such as the Microsoft Foundation Classes), fighting software patents on all fronts, and encouraging and supporting open documentation methods.

Summary

GNU has done a great deal towards increasing the openness and availability of software in the public domain. As a result, a great amount of software that would have never seen the light of day is now behind a great number of conveniences in our lives. For instance, E2 is written in Perl, which is protected by a GPL-like license, runs on a Linux server that utilizes a massive number of GNU components, and runs on a web server called Apache that was built using gcc and is protected under a GPL-like license. GNU has truly impacted our world.

A good source of additional reading is Stallman's GNU manifesto, which discusses much of the philosophy behind the GNU project.