GNU
GNU ( ) is a
free operating system consisting of a
kernel,
libraries,
system utilities,
compilers, and end-user
applications. Its name is a
recursive acronym for "
GNU's
Not
Unix", which was chosen because its design is
Unix-like, but differs from Unix by being free software and by not containing any
UNIX code. The plan for the GNU operating system was announced in September 1983 by
Richard Stallman and software development work began in January 1984. As of 2006, GNU is still in active development. The project to develop GNU is known as the
GNU Project, and programs released under the auspices of the GNU Project are called
GNU packages or
GNU programs.
The system's basic components include the
GNU Compiler Collection (GCC), the
GNU Binary Utilities (binutils), the
bash shell, the
GNU C library (glibc), and
coreutils. GNU uses the third-party packages
X.Org and
TeX for the foundation of its
graphical user interface and its
typesetting system, respectively. Not all GNU software works yet with the GNU
Hurd kernel.
As of 2006, a complete GNU system has not been released. The official
kernel of GNU is
Hurd. However, Hurd is not yet finished so most GNU users use the third-party
Linux kernel. While Linux has not been officially adopted as the kernel of GNU, GNU does officially include other third party software such as the
Xorg windowing system and the
TeX typesetting system. Versions of GNU using the Linux kernel are often called
Linux, after the kernel. The GNU project asks people to call these systems "GNU/Linux."
See GNU/Linux naming controversy.Many GNU programs have also been ported to numerous other operating systems such as
Windows,
BSD,
Solaris and
Mac OS.
The
GNU General Public License (GPL), the
GNU Lesser General Public License (LGPL), and the
GNU Free Documentation License (GFDL) were written for GNU, but are also used by many unrelated projects.
The GNU project was announced publicly on
September 27,
1983, on the net.unix-wizards [
1] and net.usoft
newsgroups. Software development began on
January 5,
1984, when Stallman quit his job at
Massachusetts Institute of Technology so that they could not claim ownership or interfere with distributing GNU as
free software. The correct pronunciation of GNU is
g'noo (
IPA: ), with a hard "g", to distinguish it from the word
new. According to Stallman, the name was inspired by various plays on words, including the song
The Gnu.
The goal was to bring a wholly free software operating system into existence. Stallman wanted computer users to be free, as most were in the 1960s and 1970s; free to study the source code of the software they use, free to modify the behaviour of the software, and free to publish their modified versions of the software. This philosophy was published in March 1985 as the
GNU Manifesto.
The majority of the software needed had to be written from scratch, but when compatible free software components already existed, they were used. Two examples were the
TeX typesetting system, and the
X Window System. Most of GNU has been written by volunteers; some in their spare time, some paid by other companies. In October 1985, Stallman set up the
Free Software Foundation (FSF). In the mid- and late-80s, FSF hired software developers to write the software needed for GNU. At its peak it had 15 people on its staff. FSF also holds the copyrights for some GNU software packages. Most GNU packages are licensed under the
GNU General Public License (GNU GPL), while a few use the
GNU Lesser General Public License (GNU LGPL), and a still smaller amount use other
free software licenses.
So that it would be convenient for people to switch to GNU, it was decided that GNU would be mostly compatible with
Unix, which was a popular
proprietary operating system at the time. The design of Unix had proven to be solid, and it was modular, so it could be reimplemented piece by piece.
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 the most commonly used
free software license. 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.
The initial plan for GNU was to be mostly Unix-compatible, while adding enhancements where they were useful. The design of the kernel was GNU's largest departure from "traditional" Unix. GNU's kernel was to be a multi-server micro-kernel.
The
GNU Hurd runs on a
microkernel (currently
Mach) and consists of a set of programs called servers that offers the same functionality as the traditional
Unix kernel (or Linux).
GNU (using Hurd) can be tried using a
live CD. (See
External links).
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 Massachusetts Institute of Technology, whose authors had decided to distribute for free, and was compatible with
Version 7 Unix. 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
Carnegie Mellon University was being considered instead, although its release as free software was delayed until
1990 while its developers worked to remove code owned by
AT&T.
Since the Mach microkernel, by design, provided just the low-level kernel functionality, the GNU Project had to develop the higher-level parts of the kernel, as a collection of user programs. Initially, this collection 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 stalled due to technical reasons 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 functional free
operating system. The GNU system is most commonly encountered in this form, usually referred to as a "
Linux distribution" (but see
naming controversy section below).
As of 2005,
Hurd is in slow 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.
GNU, GNU Hurd and GNU/Hurd
GNU/Hurd refers to the GNU OS distribution that uses GNU Hurd as its core. GNU Hurd is the set of programs or services running on top of a microkernel (GNU currently uses the
GNU Mach microkernel, but efforts to port Hurd to the
L4 microkernel are currently ongoing). The "GNU" in GNU Hurd indicates that it is a part of the
GNU project, while "GNU/Hurd" distinguishes it as one of the two currently available GNU systems--that is, Linux-based GNU systems (or "GNU/Linux") as opposed to Hurd-based GNU systems (or "GNU/Hurd"). Just "GNU" refers to GNU/Hurd.
GNU/Linux naming controversy
A system with a
Linux kernel and a mostly GNU
userland is usually referred to as a "Linux system". However the FSF
insists that the GNU project made the biggest contribution and "ought to get at least equal mention".
"GNU/Linux" is pronounced "GNU-slash-Linux", or more often, just "GNU Linux". However, the FSF contests that "GNU Linux", by the rules of the English language, refers to a distribution of the kernel Linux by the GNU project or GNU project's version of it[
2]; "GNU/Linux", they say, makes it clear that a person is referring to the combination of the Linux kernel and the GNU userland binaries, forming a complete GNU OS.
Linus Torvalds, original author of Linux, does not approve of the term "GNU/Linux"; he prefers "GNU Linux" if the GNU project "wants its own distribution."
[Revolution OS, documentary, 2001 ]Prominent components of the GNU system include the
GNU Compiler Collection (GCC), the
GNU C Library (glibc), the
GNU Emacs text editor, and the
GNOME desktop environment.
Many GNU programs have been ported to other operating systems and are often installed on
proprietary UNIX systems to replace the proprietary utilities. These GNU programs have in contested cases been tested to show as more reliable than their proprietary Unix counterparts [
3]. The reputation of GNU software is especially good among Linux users, for its software development tools - which are sometimes collectively called the
GNU toolset. Making up but a small fraction of the GNU system as a whole, these GNU versions are not
POSIX compliant. With the popularity of GNU/Linux systems, many developers install the GNU toolset on other systems for compatibility or to capture uniform behavior across platforms. Many GNU programs have also been ported to
Microsoft Windows,
Mac OS X, and various other proprietary platforms, however, this is often a hot topic among enthusiasts, as the motive for developing these programs was to replace those systems with free software, not to enhance them.
A list of packages that are well known in the free software community includes:
*
System software**
Bison –
parser generator intended to replace
yacc**
Bash –
Unix 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**
GNU C Library –
Standard POSIX C library, plus additional functionality
**
gzip – a library and program for
data compression**The
GNU toolchain for software development:
***
GNU Binary Utilities –
assembler,
linker, and related tools
***
GNU build system –
Autoconf,
Automake,
Libtool***
GCC – optimizing
compiler for many
programming languages, including
C,
C++,
Fortran,
Ada, and
Java***
GDB –
debugger**
Screen – a terminal multiplexer
**
Texinfo – documentation system for producing online and printed manuals
**
Wget – advanced file retrieval from networks and the Internet
**
GNUnet – decentralized, peer-to-peer communication network designed to be resistant to censorship
**
GNU Hurd – a
microkernel-based set of servers that perform the same function as a Unix kernel
*
Application software**
GIMP – GNU Image Manipulation Program
**
Gnash – player for movies in
Adobe Flash format.
**
GMP –
arbitrary precision numerical calculation programming
library**
GNOME – graphical desktop environment
**
GNU LilyPond – sheet music engraving program
**
GNU Octave – program for numerical computations similar to
MATLAB**
GNU Privacy Guard (GnuPG) – free encryption tool which can replace
PGP**
GNU Robots – small but addictive game for computer programmers
**
GNU Scientific Library**
GNUstep – implementation of the
OpenStep standard for a set of libraries and development tools for graphical applications
**
GNU Guile – embeddable
Scheme interpreter
As of January 2005, there are a total of 288 GNU packages hosted on the GNU hosting site [
4]. Others are hosted elsewhere.
*
Bee GNU/Hurd*
Debian GNU/Hurd*
GNUAB*Superunprivileged.org's
Hurd LiveCD*
Unofficial Gentoo/Hurd Project*
GNU/kFreeBSD*
GNU/Linux, by far the most popular variant of GNU.
*
GNU/NetBSD*
GNU/Solaris*
Free software movement*
GNU Free Documentation License*
GNU Project*
List of GNU packages*
Official site*
Ports of GNU utilities for Microsoft Windows