What's GNU?

Welcome to the inaugural edition of What's GNU?, a semi-regular column on the GNU project. The “semi” in semi-regular means that we expect this column to appear in every issue of Linux Journal, but it may not happen occasionally.

The content will be a mixture of “What is the GNU project”---history, motivation, status of various parts, in other words general things, and more in-depth looks at the various “major” pieces of GNU software, e.g. columns on gawk, GNU make , Emacs, etc. If possible, I will solicit articles from the primary authors of the various programs, in which case I will serve more as an editor. Occasionally, I will devote a column to some other piece of free software that may not be part of the GNU project, but which nonetheless is likely to be of interest to the readers of Linux Journal. Many of these programs are distributed under the same terms as GNU programs.

While I will always strive to present accurate, up to date information, this column in no way represents the official statements and/or policies of the Free Software Foundation.

Here are some questions, and the answers that go with them.

Q. What is the GNU Project?

A. The GNU project is an ongoing effort on the part of the Free Software Foundation (FSF) to create a complete, usable, freely redistributable software development environment, including both operating system and utilities. In particular, the FSF has chosen to create a clone of Unix. GNU source code is copyrighted, using a license that requires you to distribute or make source code available when you distribute binaries.

As of this writing, essentially everything but the kernel has been completed. A future column will list everything that has been done; hopefully another future column will discuss the status of the GNU kernel, called the “Hurd”.

By the way, GNU stands for “GNU's Not Unix”. The `G' is pronounced, it is not silent.

Q. What is the FSF?

A. The Free Software Foundation is a not-for-profit corporation whose goal is spread the use of free software. To help this goal, it started the GNU project, described above.

The FSF was founded by Richard Stallman and several others in approximately 1983. It has a few full-time employees, and a large number of volunteers working on the GNU project. Contributions to the FSF are tax-deductible in the US.

The FSF can be reached at:

Free Software Foundation675 Massachusetts AvenueCambridge, MA 02139-3309USAVoice: +1-617-876-3296Fax: +1-617-492-9057Email, general info: gnu@prep.ai.mit.edu Email, to order doc and/or media: fsf-order@gnu.ai.mit.edu

To order software and/or documentation in Japan: japan-fsf-orders@prep.ai.mit.edu FAX (in Japan):0031-13-2473 (KDD)0066-3382-0158 (IDC)

Q. What is the meaning of the word “free”?

A. As used by Richard Stallman and the FSF, the term “free” means that source code for software is freely available. It does not mean “no monetary cost”. This has often been a source of confusion among people who are not familiar with the FSF and its goals.

The FSF makes sure that its source code is available by licensing it under the GNU General Public License, or GPL. FSF source code is not public domain. It is copyrighted, and distributed with a license that allows you to modify the code. If you distribute modified versions of FSF programs (e.g., in binary), the GPL requires you to distribute your modifications to the code under the same terms as the original source code. If you never distribute your modifications, then there is nothing that requires you to distribute your source code, either.

The GPL will hopefully be the topic of a future column. In the meantime, if you have a Linux system, you undoubtedly have a copy of the GPL somewhere, probably in one or more files named COPYING.

Q. Why is GNU relevant to Linux?

A. It is fair to say that without the GNU project, your Linux system would not be the usable, fairly complete environment that it is today. Essentially all your utilities are from the GNU project—the C compiler, make , awk, the shell, the editors, almost all of the utilities are the GNU versions.

As the GNU developers update the programs, you should be interested in acquiring and installing these new versions, since they very likely contain bug fixes, performance enhancements, and/or new features.

Q. Who is Arnold Robbins and why is he qualified to write this column?

A. I am a professional programmer who has been working with various Unix systems since 1981. I have been involved with the GNU project as a volunteer since 1988. The main program I have worked with is gawk--GNU Awk. I am both a co-author of the program and the primary author of the accompanying manual that documents the Awk language and the gawk implementation. I also wrote some of the smaller miscellanious programs in the Shell Utilities package.

I am also a user (and debugger) of many of the major GNU programs, such as the C and C++ compilers ([ all of these in cw ], gcc, g++), the debugger gdb, and the grep and diff suites.

As a developer and user, I interact with many of the other developers of GNU tools, and in general I attempt to “keep my finger on the pulse” of the GNU project.

But, as I'm neither a paid employee nor an official of the FSF, anything I write in this column is my own interpretation of things. If you are in doubt about something, always contact the FSF directly; never just take my word for it.

Q. What is the history of the GNU Project?

A. Richard Stallman started the GNU Project in 1983. The first programs released were Emacs and gdb, the debugger. Since then, the project has grown. As of this writing, essentially everything but the middle third of the kernel exists and is fairly stable. Much documentation needs to be written, and work is proceeding on the kernel. Contact gnu@prep.ai.mit.edu for a list of tasks that remain to be initiated.

Q. Why did Richard Stallman start the GNU project?

A. We'll let RMS (as he's known) answer that one himself. Included below is a document known as the “GNU Manifesto”. It was last modified in 1985. This version comes from the Emacs 19.22 distribution.