To fully understand the ideas and foundations of free and open source software, you should probably know about the GNU project. This organization and its associated projects have been integral to the history and evolution of open source. In this resource article, we’ll provide an overview of GNU’s history, philosophy, and ongoing work.
According to the GNU website, “the GNU project develops and maintains the GNU operating system. Through this work, and other related activities, the GNU Project advocates and promotes software freedom, the core philosophy of the free software movement.”
GNU (pronounced g-noo) was created by Richard Stallman (rms) in 1983, and the Free Software Foundation (FSF) was founded in October 1985, originally as a way to fund GNU. Stallman also served as president of the FSF until his resignation in 2019.
The GNU name, as the website explains, is a recursive acronym meaning GNU's Not Unix, which acknowledges the technical ideas of Unix while also saying that GNU is something different. “Technically, GNU is like Unix. But unlike Unix, GNU gives its users freedom,” the website states.
The GNU operating system is a Unix-like operating system, comprising a kernel, compilers, editors, mail software, graphical interfaces, libraries, games, and other things. The GNU project also includes application software, including such well-known and widely used programs as GNU Emacs, the GNU Debugger, the GRUB bootloader, and the GNU C Compiler (GCC).
“Many of the programs are specifically developed and released by the GNU Project; these are termed ‘GNU packages.’ The GNU system also includes components that are free programs released by other developers, outside of the GNU Project,” the website states. The Free Software Directory provides a list of entirely free (as in freedom) GNU/Linux distributions as well as a catalog of free software application programs, including the GNOME graphical desktop, which is an important part of the free software ecosystem.
Free as in Freedom
At this point, it’s also important to understand how the GNU project defines free software. According to the website, “Free software means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, ‘free software’ is a matter of liberty, not price. To understand the concept, you should think of ‘free’ as in ‘free speech,’ not as in ‘free beer.’ We sometimes call it ‘libre software,’ borrowing the French or Spanish word for ‘free’ as in freedom, to show we do not mean the software is gratis.”
To further clarify, the site emphasizes that, “The term ‘free’ here does not refer to cost. The GNU operating system consists of GNU packages (programs specifically released by the GNU Project) as well as free software released by third parties.”
Under this philosophy, a program meets the definition of free software if the program's users have the four essential freedoms, which are defined as follows:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
One of the most important contributions of the GNU project is the GNU General Public License (GPL). The GPL was written by Stallman in 1989, for licensing software released as part of the GNU project. It is a free, copyleft license, founded on the principle that “nobody should be restricted by the software they use” and maintains that every user should have the four freedoms described above.
GPLv2, which is still widely used, appeared in 1991, and version 3 (GPLv3) was published in 2007. According to the website, the GPLv3 protects users from three main threats, which are defined on the site:
- Laws prohibiting free software
- Discriminatory patent deals
GPLv3 was not wholly met with approval within the open source community, with some projects, including the Linux kernel, preferring to stick with the GPLv2. Per Wikipedia, ”the third version of the license (GPLv3) was released to address some perceived problems with the second version (GPLv2) which were discovered during the latter's long-time usage. To keep the license up to date, the GPL license includes an optional ‘any later version’ clause, allowing users to choose between the original terms or the terms in new versions as updated by the FSF. Developers can omit it when licensing their software; the Linux kernel, for instance, is licensed under GPLv2 without the any later version clause.”
The GNU project has made many valuable contributions to the world of free and open source, and its tools and programs are widely used around the world.