GNU Project
The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to provide computer users freedom and control in their use of their computers and computing devices by developing and publishing software collaboratively that grants everyone the right to freely run, copy, distribute, study, and modify it. GNU software grants these rights in its license.
In order to ensure that the entire software of a computer grants its users all rights, even the most fundamental and important parts, the operating system and all of its utility programs, need to be free software. Stallman decided to call this operating system GNU, basing its design on that of Unix, a proprietary operating system. 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, the Linux kernel appeared, developed outside the GNU Project by Linus Torvalds, and in December 1992, it was made available under version 2 of the GNU General Public License. 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 as Linux.
The project's current work includes software development, awareness building, political campaigning, and sharing of new material.
Origins
In the late 1970s, Richard Stallman had an issue with a new printer installed in the MIT AI Lab, where he worked at the time, which ran proprietary firmware. Richard Stallman was frustrated that he could not receive a copy of the printer software and edit the code to solve his problem. This early experience made him realize limits of non-free software was a social issue.Richard Stallman announced his intent to start coding the GNU Project in a Usenet message in September 1983. 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".
When the GNU Project first started it had an Emacs text editor with Lisp for writing editor commands, a source level debugger, a yacc-compatible parser generator, and a linker. The GNU system required its own C compiler 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 an assembler, an almost finished portable optimizing C compiler, an editor, and various Unix utilities. Richard Stallman also mentioned in the GNU manifesto that an initial kernel exists for the GNU operating system. That kernel was soon revealed to be the TRIX kernel. Developers attempted to use TRIX as the base of the GNU kernel, but abandoned the effort in favour of GNU Mach.
Once the kernel and the compiler were finished, GNU was able to be used for program 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.
The origins and development of most aspects of the GNU Project are shared in a detailed narrative in the Emacs help system. It is the same detailed history as at their web site.
GNU Manifesto
The GNU Manifesto was written by Richard Stallman to gain support and participation in the GNU Project. In the 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. To implement these freedoms, users needed full access to the source code. To ensure code remained free and provide it to the public, Stallman created the GNU General Public License, which allowed software and the future generations of code derived from it to remain free for public use.Philosophy and activism
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.Free software
The GNU Project uses software that is free for users to copy, edit, and distribute. 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.Funding
Proceeds from Free Software Foundation associate members, purchases, and donations support the GNU Project.Copyleft
Copyleft licenses help maintain free use of this software among other programmers. Copyleft gives everyone the legal right 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 the Free Software Foundation sometimes differentiate between "strong" and "weak" copyleft licenses. "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.
Operating system development
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 contemporary CP/M or MS-DOS machines of time, it was decided it would be a Unix-like operating system. Richard Stallman later commented that he considered MS-DOS "a toy".By 1992, the GNU Project had completed all of the major operating system utilities, but had not completed their proposed operating system kernel, GNU Hurd. With the release of the Linux kernel for the first time under the GPLv2 with version 0.12 in 1992--the project was started independently by Linus Torvalds in 1991 but not under GPL--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 using GCC and other GNU programming tools and was released as free software under the GNU General Public License. Most compilation of the Linux kernel is still done with GNU toolchains, but it is currently possible to use the Clang compiler and the LLVM toolchain for compilation.
As of present, the GNU Project has not released a version of GNU/Hurd that is suitable for production environments since the commencement of the GNU/Hurd project over.
GNU/Linux
A stable version of GNU can be run by combining the GNU packages with the Linux kernel, making a functional Unix-like system. The GNU Project calls this GNU/Linux, and the defining features are the combination of:- GNU packages
- Linux kernel – this implements program scheduling, multitasking, device drivers, memory management, etc. and allows the system to run on a large variety of computer-architectures. Linus Torvalds released the Linux kernel under the GNU General Public License in 1992; it is however not part of the GNU Project.
- non-GNU programs – various free software packages which are not a part of the GNU Project but are released under the GNU General Public License or another FSF-approved Free Software License.
The packaging of GNU tools, together with the Linux kernel and other programs, is usually called a Linux distribution. The GNU Project calls the combination of GNU and the Linux kernel "GNU/Linux", and asks others to do the same, resulting in the GNU/Linux naming controversy.
Most Linux distros combine GNU packages with a Linux kernel which contains proprietary binary blobs.
GNU Free System Distribution Guidelines
The GNU Free System Distribution Guidelines is a system distribution commitment that explains how an installable system distribution qualifies as free, and helps distribution developers make their distributions qualify.The list mostly describes distributions that are a combination of GNU packages with a Linux-libre kernel and consist only of free software. Distributions that have adopted the GNU FSDG include Dragora GNU/Linux-Libre, GNU Guix System, Hyperbola GNU/Linux-libre, Parabola GNU/Linux-libre, Trisquel GNU/Linux, PureOS, and a few others.
In 2022, Debian was close to becoming a FSF endorsed distro but it had another 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.
The Fedora Project's distribution license guidelines were used as a basis for the FSDG. The Fedora Project's own guidelines, however, currently do not follow the FSDG, and thus the GNU Project does not consider Fedora to be a fully free GNU/Linux distribution.
Strategic projects
From the mid-1990s onward, with many companies investing in free software development, the Free 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 the free software community. One of the most notable projects of the GNU Project is the GNU Compiler Collection, whose components have been adopted as the standard compiler system on many Unix-like systems.The copyright of most works by the GNU Project is owned by the Free Software Foundation.