Kahibaro
Discord Login Register

1.1.4 GNU and the Free Software Foundation

The Origins of GNU and the Free Software Foundation

In order to understand modern Linux systems, it is important to know why so much of the software you use is freely available, modifiable, and shareable. The story of GNU and the Free Software Foundation explains how this came to be and why Linux systems are surrounded by a large ecosystem of free tools and programs.

The Birth of GNU

In the early 1980s, most software used on computers was becoming proprietary. Users could run the programs but usually could not see the source code, modify it, or share modified versions. This was a major change from the earlier culture in universities and research labs, where programmers commonly exchanged code and improvements.

Richard Stallman, a programmer at MIT, wanted to restore this earlier culture of sharing. In 1983 he announced the GNU project. The name GNU is a recursive acronym that stands for “GNU’s Not Unix.” The goal was to create a complete, Unix compatible operating system made entirely of software that users could freely use, study, change, and share.

Unix was a powerful and influential operating system, but most versions had become proprietary. By making a system similar in design and behavior, GNU would be familiar and useful to people already working with Unix, but it would not include any of Unix’s original proprietary code.

From the beginning, the GNU project set out to build all the essential parts of a Unix like operating system, such as compilers, libraries, editors, shells, and core utilities. Over time, these GNU components became the standard tools used on what we now casually call “Linux” systems.

The Four Essential Freedoms

The GNU project did not only create software, it also defined a clear idea of what “free software” means. Here, “free” refers to freedom, not price. A program can be free even if it is sold for money, as long as users keep certain freedoms.

The Free Software Foundation describes four essential software freedoms. Numbering starts from zero, which is common in programming:

Freedom 0 is the freedom to run the program for any purpose. You are not restricted in how, where, or why you use the software.

Freedom 1 is the freedom to study how the program works and change it so it does what you wish. This requires access to the program’s source code.

Freedom 2 is the freedom to redistribute copies so you can help others. You may share the original software with anyone.

Freedom 3 is the freedom to distribute copies of your modified versions to others. This allows the whole community to benefit from your changes. Again, access to source code is required for this to be meaningful.

These freedoms focus on control. The idea is that users, both individuals and organizations, should be in control of the software they rely on, rather than locked into what a vendor decides.

A program is considered free software only if users have all four freedoms: to run, study, modify, and redistribute both original and modified versions, with access to the source code.

The Free Software Foundation

To support the GNU project and to promote the idea of software freedom, Richard Stallman founded the Free Software Foundation (FSF) in 1985. The FSF is a non profit organization that provides legal, technical, and educational support for free software.

The FSF has several important roles. It acts as a legal guardian for many GNU projects, holding copyrights so it can enforce licenses when necessary. It promotes awareness of software freedom through campaigns, articles, and conferences. It also encourages development of and contribution to free software through projects and sponsorships.

The FSF maintains lists of fully free distributions and recommends systems and devices that respect user freedom. It also educates developers and companies about how to release software as free software and how to comply with free software licenses.

Copyleft and the GNU General Public License

One of the most significant contributions from the GNU project and the FSF is the idea of copyleft. Copyleft is a way to use copyright law to ensure that a program stays free for all its users.

Traditional copyright is used to restrict copying and modification. Copyleft turns this around. It allows copying, modification, and redistribution, but under a condition. If you distribute the software, or any modified version, you must do so under the same license and provide the source code.

The main license created for this purpose is the GNU General Public License, or GPL. Modern versions of the GPL include detailed legal terms, but the core idea is simple. You may run the program for any purpose, study and modify the source, and redistribute original or modified versions. If you distribute the software, you must also provide the source code and keep it under the GPL so that others receive the same freedoms.

Under the GPL, any distributed modified version of a GPL covered program must also be licensed under the GPL, with source code available, so that all recipients keep the same freedoms.

This “share alike” rule is what makes the GPL a copyleft license. It prevents someone from taking a GPL licensed program, making improvements, and then redistributing it as a closed, proprietary program that others cannot modify.

The FSF also created other licenses such as the GNU Lesser General Public License (LGPL) for libraries and the GNU Free Documentation License (GFDL) for documentation. These are tailored to specific needs but share the same goal of protecting user freedoms.

GNU Tools on a Modern Linux System

On a modern Linux based system, you will find GNU software everywhere. Even when you are not aware of it, you are often using tools that were created by the GNU project.

The command line shell on many systems, bash, is the GNU Bourne Again SHell. When you copy, move, or remove files with commands like cp, mv, or rm, you are typically using GNU Coreutils. These core utilities also include commands such as ls, cat, touch, and many others.

Compiling software from source is frequently done with gcc, the GNU Compiler Collection, which can compile C, C++, and other languages. Many text processing tools such as grep, sed, and awk are provided in GNU enhanced versions with additional features.

Manual pages that you read with the man command are often processed by GNU tools. Even low level parts of the system, like the C standard library implementation glibc, are developed under the GNU project and used by the operating system and applications.

When people say they are “using Linux,” they usually mean they are using a combination of the Linux kernel and a large set of GNU tools and libraries on top of it.

GNU and Linux Together

The GNU project originally set out to create a whole operating system. By the early 1990s, many crucial components were ready, such as compilers, shells, libraries, and utilities. However, a working kernel, the central program that directly manages hardware, was still missing.

Separately, Linus Torvalds released the first versions of the Linux kernel in 1991. When Linux became usable, people combined it with the existing GNU software to build complete systems. This combination of the Linux kernel with GNU tools produced the first practical free operating systems that could replace proprietary Unix systems on many tasks.

The FSF and Richard Stallman refer to such systems as “GNU/Linux” in order to emphasize that both GNU and Linux are important parts of the system. This naming highlights that the system is not just the kernel, but also the surrounding user space tools that make it usable as a full environment.

Many distributions include a mixture of GNU and non GNU components, but GNU software remains central. Without it, Linux based systems would look and behave very differently from what users expect today.

The Ethical View of Free Software

To the FSF, free software is primarily a question of ethics and user rights. The focus is on whether users are in control of their computing. According to this view, proprietary software denies users the ability to understand and change the tools they rely on, and this is seen as a social and ethical problem.

This perspective is different from that of many people who speak more generally of “open source.” While open source also involves access to source code and encourages collaboration, the FSF insists on the importance of the ethical reasons behind software freedom. In FSF writings, “free software” highlights the importance of freedom as the main goal.

From the FSF’s point of view, using and producing free software helps create a community where people can cooperate, share improvements, and maintain control over the software that affects their lives. This motivation is part of why so much GNU software is not just available, but also actively developed for the long term.

Lasting Influence on the Linux Ecosystem

The influence of GNU and the Free Software Foundation on the Linux ecosystem is visible in both technology and culture. Many of the commands you will learn and use daily come from GNU. The practices of sharing source code, collaborating across the world, and building distributions full of reusable components owe a great deal to the ideas defined by GNU and supported by the FSF.

License choices across the Linux world are also shaped by the GPL and related licenses. Large projects, including the Linux kernel itself, are released under the GPL, which affects how they can be reused and extended.

As you continue learning about Linux, you will often encounter mentions of GNU programs and GPL licenses. Understanding the history and goals of the GNU project and the Free Software Foundation will help you see why Linux systems work the way they do, and why they remain open to study, modification, and sharing.

Views: 14

Comments

Please login to add a comment.

Don't have an account? Register now!