The concept of free software is based on the belief that everyone should have access to technology without any restrictions or limitations. Free software is often developed by a community of programmers who collaborate to create high-quality software that can be used by anyone, anywhere in the world.
The Origins of GNU/Linux
The term “Linux” often refers to the entire operating system, but it actually refers to just the kernel, which is the central part of an operating system responsible for allocating resources to other programs. In reality, the operating system is a combination of the Linux kernel and the GNU operating system, and is commonly referred to as “GNU/Linux.” This distinction is not widely understood, with many people believing Linus Torvalds single-handedly developed the entire operating system in 1991. In actuality, the GNU Project had been working since 1984 to develop a free Unix-like operating system, and when Linux was released in 1992, it filled in the final missing piece to create the complete GNU/Linux system. The integration of the two was not a simple task, as some GNU components needed to be changed to work with Linux. However, various system distributions addressed these issues and made it possible for users to have a working “out of the box” system. The GNU Project supports both the GNU/Linux system and the GNU system, and the Free Software Foundation (FSF) has funded work to make the GNU/Linux system fully free software.
Freedom From Linux
The freedom to run a program as you wish is a key principle of free software. It means that anyone can use the program on any computer system for any purpose, without having to communicate with the developer or any other entity. This freedom is centered on the user’s purpose, not the developer’s, and the user has the right to use the program for their own purposes. If the user distributes the program to someone else, they too have the freedom to use it for their own purposes.
In order to have meaningful freedom to make changes and to publish changed versions, you must have access to the source code of the program. Source code is defined as the preferred form of the program for making changes. Freedom includes the freedom to use your modified version in place of the original. However, if the program is designed to run someone else’s modified version but refuse to run yours, freedom becomes meaningless. This practice is known as “tivoization” or “lockdown.”
The freedom to make changes is important, as one important way to modify a program is by merging in available free subroutines and modules. If the program’s license restricts the merging of suitably licensed existing modules, the license is too restrictive to qualify as free. Whether a change constitutes an improvement is subjective. If your right to modify a program is limited to changes that someone else considers an improvement, then the program is not free.
Finally, freedom includes the freedom to delete the program’s code or make it invoke another program. This includes the “freedom to delete the program”.