This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources. Find sources: "GNU Project" – news ·newspapers ·books ·scholar ·JSTOR(January 2013) (Learn how and when to remove this message) |

TheGNU Project (/ɡnuː/ ⓘGNOO)[3] is afree software,mass collaboration project announced byRichard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers andcomputing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights inits license.
In order to ensure that theentire software of a computer grants its users all freedom rights (use, share, study, modify), even the most fundamental and important part, theoperating system (including all its numerous utility programs) needed to be free software. Stallman decided to call this operating systemGNU (arecursive acronym meaning "GNU's not Unix!"), basing its design on that ofUnix, a proprietary operating system.[4] According to its manifesto, the founding goal of the project was to build a free operating system, and if possible, "everything useful that normally comes with a Unix system so that one could get along without any software that is not free." Development was initiated in January 1984. In 1991, theLinux kernel appeared, developed outside the GNU Project byLinus Torvalds,[5] and in December 1992, it was made available under version 2 of theGNU General Public License.[6] Combined with the operating system utilities already developed by the GNU Project, it allowed for the first operating system that was free software, commonly known asLinux.[7][8]
The project's current work includes software development, awareness building, political campaigning, and sharing of new material.
Richard Stallman, in the 60's had an issue with a printer in a mid-sized company runningproprietary firmware, he could not print and staple using a special type of paper, which printed and stapled on an old printer the company used. After this, Richard Stallman got more motivation to abolish non-free software.[9]
Richard Stallman announced his intent to start coding the GNU Project in aUsenet message in September 1983.[10] Despite never having used Unix prior, Stallman felt that it was the most appropriate system design to use as a basis for the GNU Project, as it was portable and "fairly clean".[11]
When the GNU Project first started it had anEmacstext editor withLisp for writing editor commands, a source leveldebugger, ayacc-compatibleparser generator, and alinker.[12] The GNU system required its ownCcompiler and tools to be free software, so these also had to be developed. By June 1987, the project had accumulated and developed free software for anassembler, an almost finished portable optimizing C compiler (GCC), an editor (GNU Emacs), and various Unix utilities (such asls,grep,awk,make andld).[13] Richard Stallman also mentioned in theGNU manifesto that an initial kernel exists for the GNU operating system. That kernel was soon revealed to be theTRIX kernel.[14] Developers attempted to use TRIX as the base of the GNU kernel, but abandoned the effort in favour ofGNU Mach.
Once thekernel and the compiler were finished, GNU was able to be used forprogram development. The main goal was to create many other applications to be like the Unix system. GNU was able to run Unix programs, but was not identical to it. GNU incorporated longer file names, file version numbers, and a crash-proof file system. The GNU Manifesto was written to gain support and participation from others for the project. Programmers were encouraged to take part in any aspect of the project that interested them. People could donate funds, computer parts, or even their own time to write code and programs for the project.[4]
The origins and development of most aspects of the GNU Project (and free software in general) are shared in a detailed narrative in the Emacs help system. (C-h g runs the Emacs editor commanddescribe-gnu-project.) It is the same detailed history as at their web site.
The GNU Manifesto was written by Richard Stallman to gain support and participation in the GNU Project. In the GNU Manifesto, Stallman listed four freedoms essential to software users: freedom to run a program for any purpose, freedom to study the mechanics of the program and modify it, freedom to redistribute copies, and freedom to improve and change modified versions for public use.[15][16] To implement these freedoms, users needed full access to thesource code. To ensure code remained free and provide it to the public, Stallman created theGNU General Public License (GPL), which allowed software and the future generations of code derived from it to remain free for public use.
Although most of the GNU Project's output is technical in nature, it was launched as a social, ethical, and political initiative. As well as producing software and licenses, the GNU Project has published a number of writings, the majority of which were authored by Richard Stallman.
The GNU Project uses software that is free for users to copy, edit, and distribute.[17] It is free in the sense that users can change the software to fit individual needs. The way programmers obtain the free software depends on where they get it. The software could be provided to the programmer from friends or over the Internet, or the company a programmer works for may purchase the software.[18]
Proceeds fromFree Software Foundation associate members, purchases, and donations support the GNU Project.[19]
Copyleft is what helps maintain free use of this software among other programmers. Copyleft gives the legal right to everyone to use, edit, and redistribute programs or programs' code as long as the distribution terms do not change. As a result, any user who obtains the software legally has the same freedoms as the rest of its users do.
The GNU Project and theFree Software Foundation sometimes differentiate between "strong" and "weak" copyleft. "Weak" copyleft programs typically allow distributors to link them together with non-free programs, while "strong" copyleft strictly forbids this practice. Most of the GNU Project's output is released under a strong copyleft, although some is released under a weak copyleft or a lax, push-over free software license.[20][21]

The first goal of the GNU Project was to create a whole free-software operating system. Because UNIX was already widespread and ran on more powerful machines, compared to contemporaryCP/M orMS-DOS machines of time,[22] it was decided it would be a Unix-like operating system. Richard Stallman later commented that he considered MS-DOS "a toy".[23]
By 1992, the GNU Project had completed all of the major operating system utilities, but had not completed their proposedoperating system kernel,GNU Hurd. With the release of theLinux kernel, started independently byLinus Torvalds in 1991, and released for the first time under the GPLv2 with version 0.12 in 1992, it was possible to run an operating system composed completely of free software. Though the Linux kernel is not part of the GNU Project, it was developed usingGCC and other GNU programming tools and was released as free software under theGNU General Public License.[24] Most compilation of the Linux kernel is still done with GNU toolchains, but it is currently possible to use theClang compiler and theLLVM toolchain for compilation.[25]
As of present, the GNU Project has not released a version ofGNU/Hurd that is suitable for production environments since the commencement of the GNU/Hurd project over 34 years ago.[26]
A stable version (or variant) of GNU can be run by combining the GNU packages with theLinux kernel, making a functionalUnix-like system. The GNU Project calls this GNU/Linux, and the defining features are the combination of:
Within the GNU website, a list of projects is laid out and each project has specifics for what type of developer is able to perform the task needed for a certain piece of the GNU Project. The skill level ranges from project to project but anyone with background knowledge in programming is encouraged to support the project.
The packaging of GNU tools, together with the Linux kernel and other programs, is usually called aLinux distribution (distro). The GNU Project calls the combination of GNU and the Linux kernel "GNU/Linux", and asks others to do the same,[38] resulting in theGNU/Linux naming controversy.
Most Linux distros combine GNU packages with a Linux kernel which contains proprietarybinary blobs.[39]
The GNU Free System Distribution Guidelines (GNU FSDG) is a system distribution commitment that explains how an installable system distribution (such as a Linux distribution) qualifies as free (libre), and helps distribution developers make their distributions qualify.
The list mostly describes distributions that are a combination of GNU packages with aLinux-libre kernel (a modified Linux kernel that removes binary blobs, obfuscated code, and portions of code under proprietary licenses) and consist only of free software (eschewing proprietary software entirely).[40][41][39] Distributions that have adopted the GNU FSDG includeDragora GNU/Linux-Libre,GNU Guix System,Hyperbola GNU/Linux-libre,Parabola GNU/Linux-libre,Trisquel GNU/Linux,PureOS, and a few others.[42]
In 2022, Debian was close to becoming a FSF endorsed distro but it had an other repository on its servers with non-free packages, therefore it did not become FSF endorsed. And in 2022 Debian 12 added an option in the installer for non-free hardware to work by running non-free code.[43]
The Fedora Project's distribution license guidelines were used as a basis for the FSDG.[44] The Fedora Project's own guidelines, however, currently do not follow the FSDG, and thus the GNU Project does not considerFedora to be a fully free (libre) GNU/Linux distribution.[39]
From the mid-1990s onward, with many companies investing in free software development, theFree Software Foundation redirected its funds toward the legal and political support of free software development. Software development from that point on focused on maintaining existing projects, and starting new projects only when there was an acute threat to thefree software community. One of the most notable projects of the GNU Project is theGNU Compiler Collection, whose components have been adopted as the standard compiler system on manyUnix-like systems.
The copyright of most works by the GNU Project is owned by the Free Software Foundation.[45]
TheGNOME desktop effort was launched by the GNU Project because another desktop system,KDE, was becoming popular, but required users to installQt, which was thenproprietary software. To prevent people from being tempted to install KDE and Qt, the GNU Project simultaneously launched two projects. One was theHarmony toolkit. This was an attempt to make a free software replacement for Qt. Had this project been successful, the perceived problem with the KDE would have been solved. The second project was GNOME, which tackled the same issue from a different angle. It aimed to make a replacement for KDE that had no dependencies on proprietary software. The Harmony project did not make much progress, but GNOME developed very well. Eventually, the proprietary component that KDE depended on (Qt) was released as free software.[46] GNOME has since dissociated itself from the GNU Project and the Free Software Foundation, and is now independently managed by theGNOME Project.[47]
GNU Enterprise (GNUe) was a meta-project started in 1996,[48] and can be regarded as a sub-project of the GNU Project. GNUe's goal is to createfree "enterprise-class data-aware applications" (enterprise resource planners, etc.). GNUe is designed to collect Enterprise software for the GNU system in a single location (much like the GNOME project collects Desktop software), it was later decommissioned.[49]
In 2001, the GNU Project received theUSENIX Lifetime Achievement Award for "the ubiquity, breadth, and quality of its freely available redistributable and modifiable software, which has enabled a generation of research and commercial development".[50]
We thank Aurelio A. Heckert...for donating this graphic to us.
This graphic was drawn by Etienne Suvasa
The name "GNU" is a recursive acronym for "GNU's Not Unix!"; it is pronouncedg-noo, as one syllable with no vowel sound between theg and then.
...we have tried to use the word "Linux" or the expression "Linux kernel" to designate the kernel, and GNU/Linux to designate the entire body of GNU/GPL'ed OS software,... ...many people forget that the linux kernel mailing list is a forum for discussion of kernel-related matters, not GNU/Linux in general...
today our focus is on the cloud and on mobile, and we are quite clearly leading GNU/Linux on both fronts
It is one of the few GNU files not distributed under the GNU General Public License or GNU Lesser General Public License; it is distributed under a license like the X11 License
There are reasons that can make it better to use the Lesser GPL in certain cases.
It may not be ready for production use, as there are still some bugs and missing features.
We would like to thank the Fedora Project for their help in focusing these policies, and allowing us to use their own distribution license guidelines as a basis for this document.