GNU
Screenshot of a GNU-based OS | |
Developer | GNU Project |
---|---|
OS family | Unix-like |
Working state | current |
Source model | Free software |
Latest preview | 0.9 (18 December 2016) [±] |
Kernel type | Microkernel |
License | GNU General Public License and other free software licenses |
Official website | http://www.gnu.org/ |
GNU (pronounced ) is a complete computer operating system - consisting of a kernel, libraries, system utilities, compilers, and end-user application software - composed entirely of free software. 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.[1]. GNU was founded by Richard Stallman and was the original focus of the Free Software Foundation (FSF).
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 GNU Core Utilities (coreutils).
As of 2006, GNU is being actively developed, though a complete GNU system has not yet been released. The official kernel is the GNU Hurd. However, Hurd is not yet finished, and not all GNU software works yet with the GNU Hurd kernel, 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 release of the X Window System and the TeX typesetting system. Many GNU programs have also been ported to numerous other operating systems such as Microsoft Windows, BSD variants, 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.
History
The plan for the GNU operating system was publicly announced on September 27 1983, on the net.unix-wizards and net.usoft newsgroups by Richard Stallman.[2] 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. According to Stallman, the name was inspired by various plays on words, including the song The Gnu. [citation needed]
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 share the software they use, free to study the source code of the software, 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.
Much of the needed software had to be written from scratch, but existing compatible free software components 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 companies, educational institutions, and other non-profit organizations. In October 1985, Stallman set up the Free Software Foundation (FSF). In the late 1980s and 1990s, the FSF hired software developers to write the software needed for GNU. At its peak it had 15 people on its staff. [citation needed] The FSF also holds the copyrights for some GNU software packages. Most GNU packages are licensed under the GPL, while a few use the LGPL, and a still smaller amount use other free software licenses.
Richard Stallman's experience with the Incompatible Timesharing System (ITS), an early operating system written in assembly language that became obsolete due to discontinuation of PDP-10, the computer architecture that ITS was written for, lead to a decision that a portable system was necessary.[3] It thus was decided that GNU would be mostly compatible with Unix. At the time, Unix was a popular proprietary operating system. 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.
Design and implementation
The initial plan for GNU was to be mostly Unix-compatible, while adding enhancements where they were useful. 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.
The design of the kernel was to be GNU's largest departure from "traditional" Unix. GNU's kernel was to be a multi-server microkernel, and was to consist of a set of programs called servers that offers the same functionality as the traditional Unix kernel. 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 (now Thomas) 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 the original license for Linux had restrictions on commercial distribution and hence was not software that was free as in speech, Torvalds quickly changed the license to the GNU GPL in 1992 in what he later termed the best decision he ever made. 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.
Licensing
In order to ensure that GNU software remains free, the FSF released the first version of the 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.
In 1991, the GNU LGPL was written for certain libraries. The GNU GFDL, for documentation, followed in 2000.
Naming
GNU, GNU Hurd and GNU/Hurd
GNU/Hurd refers to a GNU OS distribution that uses GNU Hurd as its core. GNU Hurd is a set of programs or servers running on top of a microkernel, that provides the same services as a traditional monolithic Unix kernel. (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 -- Hurd-based GNU systems ( "GNU/Hurd"), or Linux-based GNU systems ( "GNU/Linux"). Just "GNU" refers implicitly 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".[4]
"GNU/Linux" is pronounced "GNU Linux", or less frequently, "GNU-slash-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; "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.[5] 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."[6]
GNU software
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 [1]. 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:
- 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 December 3 2006, there are a total of 297 GNU packages hosted on the GNU hosting site.[7] Others are hosted elsewhere.
Distributions of GNU
GNU (using Hurd) can be tried using a live CD.
- Bee GNU/Hurd
- Debian GNU/Hurd
- GNUAB
- Superunprivileged.org's Hurd LiveCD
GNU variants not using the Hurd
- GNU/Linux — by far the most popular variant of GNU
- Debian GNU/kFreeBSD
- Debian GNU/NetBSD
- Nexenta OS
References in pop culture
In Going Postal by Terry Pratchett, there is a group that takes part of its name from GNU, "Smoking GNU". The "Smoking GNU" is a group of three people who crack into the "clacks" (the Internet/email system of the Discworld universe) and play a major role in the last few chapters of the book.
References
- ^ "The GNU Operating system". Retrieved 2006-12-11.
- ^ Stallman, Richard (27 September 1983). "new UNIX implementation". Newsgroup: net.usoft. 771@mit-eddie.UUCP. Retrieved 2006-10-29.
{{cite newsgroup}}
: Check date values in:|date=
(help) - ^ http://www.gnu.org/events/rms-nyu-2001-transcript.html
- ^ http://www.gnu.org/gnu/gnu-linux-faq.html#why
- ^ http://www.gnu.org/gnu/gnu-linux-faq.html#whyslash
- ^ Revolution OS, documentary, 2001
- ^ [http://savanah.gnu.org/search/?type_of_search=soft&words=%%%&type=1
See also
- Open Source history
- Free software movement
- GNU Free Documentation License
- GNU Project
- List of GNU packages