H/FOSS History & Philosophy
FOSS (Free Open Source Software) and HFOSS (Humanitarian Free Open Source Software) are descriptions of software whose source code and executables are publically available to use and modify. Open-source software has been described as the “plankton” of computing, existing everywhere but largely in the background.
History
The idea of sharing software has been around since the advent of software. It was common for the software of early computers to not be very robust, and contain bugs. It was also common for the end-user to write code to fix said bugs on their own system. Early computer users would go on to share their code/patches/utilities with one another far before the invention of the internet made doing so trivial. This was done transferring physical memory (hard drives) between parties that wanted to share code. Manufactures of early computers encouraged this as improvements being made to the software made it more attractive, whether it was made by the manufacturer itself or by the end-user.
The invention of high-level languages allowed for software to be written once, in a single language, and run on various hardware systems. This led to the software being more important than hardware meaning that the sharing of software by users could be detrimental to sales. Manufacturers started enforcing copyrights on their code or would force users to sign NDA’s further limiting the ability for said code to be shared.
The increasing restrictions on code sharing pushed programmers/engineers to develop other ways to share code. Richard Stallman, founder of the GNU project and the Free Software Movement, would be one of the first to organize for the freedom of software. The goal of GNU was to develop a completely free and open computer operating system and body of application software, in which users would never be prevented from modifying or sharing. The efforts of Stallman and those of the GNU project would later make the GPL (GNU Public License) one of the most used software licenses to date. Stallman and the GNU project also developed the first free operating system with the use of the Linux, referred to as GNU+Linux.
On the Meaning of “Free”
When talking on FOSS/HFOSS, there is a common misunderstanding of the meaning of the word “free”. The first definition refers to free as meaning no monetary cost to the user. The second definition referring to the ability of a piece of software to be freely modified/distributed. As described by Richard Stallman, if the program controls the user the software is proprietary, if the user controls the program then it is free (referring to the second definition). Stallman describes four levels of freedom for software:
0 — The ability to run programs as one wishes on a computer.
1 — The ability to study/change source code
2 — The ability to help others (redistribute code)
3 — The ability to contribute to the software/community
In closing, the history and philosophy of FOSS/HOFSS software is expansive in both its breadth and depth. I hope to shed more light on FOSS/HFOSS information in coming posts.