- For the African animal gnu, see wildebeest.
GNU is a recursive acronym for "GNU's Not Unix". The GNU project was launched in 1983 by Richard Stallman with the goal of creating a complete operating system — called the GNU system or simply GNU — that is free software, meaning that users are allowed to copy, modify and redistribute it. The GNU project is now carried out under the auspices of the Free Software Foundation (FSF). Stallman has suggested that GNU be pronounced guh-noo (IPA: /gnu/ or [gəˈnu]), with a hard "g", to distinguish it from the animal gnu. However, both forms of the pronunciation are commonly used.
The GNU project has developed a large number of high-quality and widely-used free software programs, including the text editor Emacs, the GNU Compiler Collection (GCC), and the GNU Debugger (GDB). The GNU system is often combined with the kernel Linux, which is not part of the GNU project, to form a completely functional operating system. This system is commonly referred to as "Linux", though the FSF has argued it be called "GNU/Linux" to acknowledge the GNU project's technical contribution of the GNU system and promote the GNU philosophy; for details, see GNU/Linux naming controversy.
It is also common and known 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. However, due to the fact that some tools aren't POSIX compliant another reason is that with the rise of Linux (which uses the GNU toolset) as the "UNIX" operating system of choice many systems need to use the GNU toolset instead of their originals to keep compatibility with the newer systems that use Linux. Often, these components are collectively referred to as the "GNU Tools". Many GNU programs have also been ported to Microsoft Windows, Mac OS X, and various other proprietary platforms.
Table of contents
The GNU project was announced publically 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 they could not claim ownership and interfere with distributing GNU as free software. 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."
UNIX, a proprietary operating system, was already in widespread use when GNU was proposed. Since Unix's 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, would be adapted and reused, while components that were not would be written from scratch.
In 1985, Stallman founded the Free Software Foundation (FSF), a tax-exempt non-profit organization, 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.
In order to ensure that GNU software remains free, the project released the first version of the GNU General Public License (GNU GPL) in 1989. This license is now used by most GNU programs, as well as a large number of free software programs that are not part of the GNU project; it is one of the most commonly-used free software licenses in the world. It gives all recipients of a program the right to run, copy, modify and distribute it, while forbidding them from imposing further restrictions on any copies they distribute. This idea is referred to as copyleft.
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 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 software, Torvalds changed the license to the GNU GPL in 1992. Linux was further developed by various programmers over the Internet. In 1992, it 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 2005, Hurd is in active development, and is now the official kernel of the GNU system. There is also a project working on porting the GNU system to the kernels of FreeBSD and NetBSD.
Some of the software developed by the GNU project are:
- System software
- Bison – parser generator intended to replace yacc
- Bash – command shell
- BFD – object file library
- Classpath – libraries for Java
- Coreutils – basic Unix utilities such as cat, ls, and rm
- Emacs – extensible, self-documenting text editor
- glibc – Standard POSIX C library, plus additional functionality
- The GNU toolchain for software development:
- GNU MDK – a development kit for programming in MIX
- Screen – a terminal multiplexer
- Texinfo – documentation system for producing online and printed manuals
- GNU wget – advanced file retrieval from networks and the Internet
- GNUnet – decentralized, peer-to-peer communication network designed to be resistant to censorship
- DotGNU – replacement for .NET
- GNU Hurd – a microkernel-based set of servers that perform the same function as a UNIX kernel
- Application software
- GIMP – GNU Image Manipulation Program
- GLPK – package intended to solve linear programming (LP), mixed integer programming (MIP), and other related problems.
- GMP – arbitrary precision numerical calculation programming library
- GNOME – graphical desktop environment
- GNU LilyPond – a sheet music engraving program
- GNU Octave – a program for numerical computations similar to MATLAB
- GNU Privacy Guard (GnuPG) – a free encryption tool which can replace PGP
- GNU Robots – small but addictive game for computer programmers
- GSL – the GNU Scientific Library
- GNUstep – implementation of the OpenStep standard for a set of libraries and development tools for graphical applications
- Guile – embeddable Scheme interpreter
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
- gzip – a library and program for data compression
As of January 2004, there are a total of 260 projects under the GNU project .
The following are official speakers for the GNU project :
- Robert J. Chassell
- Loïc Dachary
- Georg Greve
- Federico Heinz
- Bradley Kuhn
- Eben Moglen
- Richard Stallman
- David Sugar
- Free Software Foundation
- Free software movement
- Free content
- Open standards
- List of GNU packages
- Official Website
- gnu-system-discuss mailing list, technical discussion about the GNU system
- 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 for GNU software development projects