GNU is a response to the absurd paradigm by which software is currently distributed. When you purchase a piece of software, you are not free to use it as you wish. You are not given access to the source code, so you may not modify it to suit your needs. You may not share it with friends who may want to use it. In many cases, you may not even use it on more than one machine! Software is treated like a physical resource which is scarce and limited. Nothing could be further from the truth; software is ethereal and physically unbounded. Using a piece of software doesn't take anything away from anyone else, or make them poorer, or deprive them in any way. On the contrary, by limiting the use of existing software, one makes other people poorer when we prevent them from using it and benefiting from it. To update Proudhon, "Intellectual property is intellectual theft." By claiming ownership of software, one doesn't accomplish anything except to deny it to other people.
This is where GNU comes in. GNU software provides everything you need to work and play on your computer, with no artificial restrictions. The GNU project started in 1983 when Richard M. Stallman, a researcher at MIT's Artificial Intelligence lab, decided that he could not in good conscience continue to use and produce unfree software. Since then, hundreds of programmers have contributed their code to the development of the GNU system.
The flagship program of the GNU project is, of course, GNU Emacs, the advanced, self-documenting, customizable, extensible real-time display editor. RMS wrote the original Emacs back in the '70s, and then re-implemented it as the first piece of GNU software to be released. GNU Emacs is today universally recognized as the greatest text editing system in the world. Emacs is available for use on all the CCC machines. For a good introduction, start up Emacs and type "C-h t" for the tutorial. Also very useful is the on-line hypertext Emacs manual - type "C-h i" to start Info mode, then "g (emacs)".
The GNU project has produced some of the finest program development tools anywhere. gcc, the optimizing C compiler; gdb, a source-level debugger; and gmake, a program for automatic source file recompilation, are available for use on the CCC machines. CS majors will find all of these programs extremely useful in their studies here, and well worth their time to learn. (If you're an upper-class CS and you aren't using these tools, you're definitely doing something wrong!)
The final GNU operating system will be based on Unix. As such, many of the standard Unix utilities have already been re-implemented by GNU. The GNU versions of these utilities generally support more options, have fewer arbitrary restrictions, are better documented, and run faster than their standard Unix counterparts. For example, many Unix utilities will either hang or crash and dump core when given random input streams, because they can't deal with things like overly-long lines. In a recent study, the failure rate was 15% - 43% for commercial Unix implementations; for GNU, only 7%. Many of these utilities are installed on the CCC machines. To use them, put this line in your .tcshrc:
set path=(/usr/local/gnubin '/usr/local/bin/syspath' .)
I find the GNU echo and GNU find programs particularly useful; see /packages/emacs/current/etc/echo.msg for information on enhancements to echo.
The grand project for GNU is the completion of their own operating system, the Hurd. The Hurd is a client-server OS based off the CMU Mach microkernel. Basically, all of the dirty hardware-dependent code is in the microkernel, and all of the services the OS needs to provide are performed by separate higher-level processes. Hence the "Hurd" stands for "Hird of Unix- Replacing Daemons," where "Hird" stands for "Hurd of Interfaces Representing Depth." While the Hurd is now up and running on many platforms (including the i386!), it is still pre-alpha and not really usable yet.
Several past and current WPI students have written very useful programs and released them under the GNU General Public License (GPL). These are also available on the CCC machines. joe, interestingly enough, is now part of the standard Slackware distribution of the Linux operating system.
cmailtst Check if a user has mail
locate Find users on any wpi machine
joe ASCII-text screen editor
s, snd Send messages to other users
So now that you know all this great stuff about GNU, the question is "How do I get GNU on my own machine?" Many of the GNU programs are available for 386's or better running DOS (or as RMS has it, MS-DOG). You can get GNU Emacs for DOS, Win 95, or Windows NT from
ftp.coast.net /SimTel/vendors/gnu/gnuish/
There is also a gcc implementation for DOS called djgpp, which you can get from the same place.
If you are really serious about getting the most from your computer, you will want to run a GNU operating system. Until the Hurd is completed, you can set up a own Linux-based or NetBSD-based GNU system on your PC or Amiga. Linux can be obtained via ftp from
tsx-11.mit.edu /pub/linux
and NetBSD from freebsd.cdrom.com.
So, think twice before shelling out for another buggy Microsoft OS or application. You can get all the software you need for work and play freely - including DOOM on Linux! Sharing code is a fundamental act of friendship; don't use unfree software unless you get it illegally and plan to redistribute it for free (heh heh).
For more information on GNU, take a look at these:
http://www.delorie.com/gnu/ http://www.cs.pdx.edu/~trent/gnu/
and the newsgroup gnu.misc.discuss. Also check out the GNU Manifesto; from Emacs, "C-h i g (emacs)Manifesto". See you next column, hopefully by which time I'll be off my soapbox...
return;
Give feedback: newspeak@wpi.wpi.edu