1. Overview
GNU is a project that aims to develop, support, and enforce the use of free software. According to the GNU principles, free software is free to use, modify, distribute, and study. It’s “free” as in “free speech” and “freedom”.
In this article, we’ll dive deeper into the motivations and goals behind the GNU project and how it has impacted the Linux and open-source ecosystem. Additionally, we will also cover the GNU licenses that are widely used in open-source software.
2. The GNU Project
GNU is a recursive acronym for “GNU’s not UNIX!”. It’s a huge collection of free software.
2.1. Motivations
Historically, software was often expensive. For instance, the Unix operating system would require a proprietary license, which costs a lot of money. In addition, it was common for the software to be closed-source, which prevented users from studying and modifying it.
One of the key motivations of the GNU project is to develop software that doesn’t contain any Unix code. Fundamentally, the project pioneered the creation of Unix-like software from scratch that isn’t bound to a proprietary license. Moreover, the project has also developed additional useful software not found on Unix-based systems.
During the early days of computing, there were some open-source and free software but the quality and productivity of the proprietary software were often unmatched. Partly, in response to that, the GNU project was born to overcome the limitations of the proprietary software.
Therefore, such software would allow the users to use it for free, modify it however the users wish, and distribute it. It would also enable the users to study the source code, which would be available to the public.
2.2. History
The GNU project took shape in 1984, under the direction of Richard Stallman. He also published the GNU Manifesto, encouraging participation and support for the GNU Operating System.
The GNU Operating System was one of their primary objectives. It would come with a complete set of userland software and the GNU Hurd Kernel. Most of the tools were written with compatibility with Unix in mind. Like Unix, they were written in the C programming language.
In addition, Richard Stallman also founded the Free Software Foundation (FSF) in 1985 to promote software freedom. The primary goals of FSF are to educate the public about the importance of free software, enforce free software licenses such as copyleft licenses, and build a global community that supports and contributes to the Free Software Movement (FSM).
Over time, several companies started to build their business around the GNU project. For instance, the Red Hat project began contributing and providing technical support.
2.3. Core Projects
The GNU project develops the GNU Operating System based on the GNU Hurd Kernel, a collection of microkernel components for the GNU Mach microkernel. In contrast to Linux, it’s highly modular and the drivers run in the userspace
However, to this day, the kernel hasn’t made it to its 1.0 version and its development is way behind what’s expected of a modern kernel. Therefore, it’s mostly used for educational and research purposes and rarely in production systems.
In addition, the GNU project also produced the tools to support that operating system. For instance, the project created the GNU Compiler Collection (GCC), GNU Core Utilities, GNU Binary Utilities, GNU C Library, and the GNU Debugger.
The GNU Core Utilities are similar to utilities found on Unix-based operating systems. These tools are used for tasks like file operations, text processing, and system control. However, the GNU Core Utilities often contain more features and there are minor differences between the tools.
Most of the GNU utilities are built with portability in mind. For instance, we can use these tools on other operating systems without being bound to the GNU Operating System. Furthermore, we can also take the source code of a specific software and build it for additional platforms.
3. GNU/Linux
Linux at its core is merely a kernel. It doesn’t provide the userland software to make it a whole operating system. That’s where the GNU software comes into play.
As mentioned earlier, GNU software can be ported to other platforms. Therefore, it enables the developers to ship the GNU Core Utilities and other software with the Linux kernel to make a complete distribution.
Nowadays, many popular Linux distributions like Debian, Ubuntu, Fedora, Red Hat, and openSUSE come with GNU software pre-installed. Therefore, FSF encourages and promotes the term “GNU/Linux”. However, this is still a topic of debate for people who oppose the idea.
4. GNU Licenses
In 1989, FSF wrote the GNU General Public License (GPL) to enable users to use and modify the GNU software. However, the license wasn’t bound only to the GNU software. It can also be used for non-GNU software.
In addition to GPL, FSF also wrote the Lesser General Public License (LGPL) for the GNU C Library. LGPL would allow proprietary software to link to the GNU C Library.
Moreover, there are two more versions of the GPL license: GPLv2 and GPLv3. These versions address legal concerns like compatibility with other licenses and the use of software patents.
5. Conclusion
In this article, we learned about the GNU project. We discussed the motivations behind the project and how it came into existence. Besides, we also saw the core projects that GNU is known for. Then, we covered how GNU contributes to Linux.
Finally, we learned about the different licenses used by the GNU project.