GNU
- For the gnu, a large hooved mammal, see wildebeest.
File:Gnu-head-sm.jpeg
The GNU logo
GNU is a recursive acronym for "GNU's Not Unix". The GNU project was launched by Richard Stallman with the goal of creating a complete free operating system: the GNU system. Stallman requests that it be pronounced guh-NOO to "avoid horrible confusion" with the word "new". UNIX is a proprietary operating system that was already in widespread use; since its architecture had proven technically sound, the GNU system was designed to be compatible with it. The UNIX architecture allowed GNU to be written as individual software components: components that were already freely available, such as the TeX typesetting system and the X Window graphics system, could be adapted and reused; others would be written from scratch.
History
The project was announced to the public on September 27, 1983, on the net.unix-wizards and net.usoft newsgroups. Work on the project began in earnest on January 5, 1984, when Stallman quit his job at MIT so that he could spend his time on GNU. The original announcement was followed by Stallman's "GNU Manifesto" and other essays that laid out his motivations for the GNU project, one of which was to "bring back the cooperative spirit that prevailed in the computing community in earlier days."
To ensure that GNU software would remain free for all users "to run, copy, modify and distribute," the project would release it under a license designed to give everyone those permissions while preventing them from adding restrictions of their own. This idea, referred to as copyleft, was then embodied in the GNU General Public License (GPL).
In 1985, Stallman founded the Free Software Foundation (FSF), a tax-exempt charity, to provide logistical, legal and financial support for the GNU project. The FSF also employed programmers to contribute to GNU, though a substantial portion of development was (and continues to be) performed by volunteers. As GNU gained prominence, interested businesses began contributing to development or selling GNU software and technical support. The most prominent and successful of these was Cygnus Solutions, now part of Red Hat.
By 1990, the GNU system had an extensible text editor (Emacs), a very successful optimizing compiler (GCC), and most of the core libraries and utilities of a standard UNIX distribution. The main component still missing was the kernel.
In the GNU Manifesto, Stallman had mentioned that "an initial kernel exists but many more features are needed to emulate Unix." He was referring to TRIX, a remote procedure call kernel developed at MIT, whose authors had decided to distribute for free, and was compatible with UNIX version 7. In December 1986 work had started on modifying this kernel. However, the developers eventually decided it was unusable as a starting point, primarily because it only ran on "an obscure, expensive 68000 box" and would therefore have to be ported to other architectures before it could be used. By 1988, the Mach message-passing kernel being developed at CMU was being considered instead, although it was initially delayed while its developers removed code owned by AT&T. Initially, the kernel was to be called Alix, but developer Michael Bushnell later preferred the name Hurd, so the Alix name was moved to a subsystem and eventually dropped completely. Eventually, development of the Hurd had stalled due to technical and personality conflicts.
In 1991, Linus Torvalds wrote the UNIX-compatible Linux kernel. Although it was not originally free (as in freedom) software, in 1992 Torvalds changed the license to the GNU GPL. Linux was further developed by various programmers over the Internet. In 1992, Linux was combined with the GNU system, resulting in a fully functional free operating system. The GNU system is most commonly encountered in this form, usually referred to as a "GNU/Linux system" or a "Linux distribution." As of 2004, the Hurd is still in active development, and an experimental version of the GNU system that uses the Hurd instead of Linux is now available. There is also a project working on porting the GNU system to the kernel of FreeBSD.
It is also common to find components of GNU installed on proprietary UNIX systems, in place of the original UNIX programs. This is because many of the programs written for the GNU project have proven to be of a superior quality to the equivalent UNIX versions. Often, these components are collectively referred to as the "GNU Tools". Many GNU programs have also been ported to Microsoft Windows and Mac OS X platforms.
GNU software
Some of the software developed by the GNU project are:
- Bison - parser generator intended to replace yacc
- Bash - command shell
- BFD - object file library
- Classpath - libraries for Java
- DotGNU - replacement for .NET
- Emacs - extensible, self-documenting text editor
- GIMP - image-editing program
- glibc - Standard POSIX C library, plus additional functionality
- GMP - arbitrary precision numerical calculation programming library
- GNOME - graphical desktop environment
- The GNU toolchain for software development:
- GNU Binutils - GNU Assembler, GNU Linker, and related tools
- GNU build system - Automake, Autoconf, Libtool
- GCC - optimizing compiler for many languages, including C, C++, Fortran, Ada, and Java.
- GDB - debugger
- GNU MDK - a development kit for programming in MIX
- GNU Octave - a program for numerical computations similar to MATLAB
- GNU Robots - small but addictive game for computer programmers
- GNUnet - decentralized, peer-to-peer communication network designed to be resistant to censorship
- GNUstep - implementation of the OpenStep standard for a set of libraries and development tools for graphical applications
- GSL - the GNU Scientific Library
- Guile - embeddable Scheme interpreter
- Gzip - a library and program for data compression
- Hurd - a microkernel-based set of servers that perform the same function as a UNIX kernel
- Maxima - a computer algebra system
- Texinfo - documentation system for producing online and printed manuals
The GNU project also distributes and assists with the development of other packages which originated elsewhere, e.g.:
- CVS - source code control
- DDD - graphical frontend for debuggers
- eCos - small operating system for embedded devices
As of January 2004, there are a total of 260 projects under the GNU project [1].
See also
External links
- Official Website
- Stallman's 1983 announcement of the GNU project
- Stallman gives a lengthy personal account of the project and its history
- The Free Universal Encyclopedia and Learning Resource, Stallman's essay concerning a GNU encyclopedia
- GNU-friends, a discussion forum
- Sourceforge ports of GNU utilities for Win32
- Sourceforge like site of the GNU