What is FOSS?
Published on 2021-05-15
FOSS stands for “Free and Open Source Software”. Many people probably haven’t heard the term FOSS. Even if they have heard it, they don’t fully understand what it means. The open source part is not too difficult to understand. The source code of the program or application is open or available to who wants to examine it. The word free doesn’t mean free of cost, but rather freedom. The FOSS community sometimes differentiates by using the word libre, but it hasn’t caught on yet. For simplicity, I’m going to be using the term free software to mean libre software throughout this post unless specified otherwise. So, what does it mean for a software to be free and open source?
In the early days of computing, software was often distributed (this is before the World Wide Web) with its source code because many software at the time was hardware-specific. This meant that the user had to modify the source code so that the software they bought would work with their hardware. It’s hard to fathom this practice in 2021; however, back in the 1970s, computers were reserved for researchers and experts. Though not to that extent, some older generation PC gamers might remember having to choose a specific audio hardware in the game menu for the sound to work properly. So the idea of hardware-agnostic software is fairly new. While it is more convenient for end users for a piece of software to simply work regardless of their hardware, this meant that software had to become more complex and expensive to produce. Companies started to hide their source code in order to protect their work and stop competitors from copying their implementation. Many computer users at the time were unhappy about this change and this ultimately led to the foundation of the Free Software Movement and the Free Software Foundation (FSF) by Richard Stallman.
The Four Essential Freedoms
According to the FSF, a program is free if the program’s users have the following four freedoms:
- The freedom to run the program as you wish, for any purpose.
- The freedom to study how the program works, and change it so it does your computing as you wish.
- The freedom to redistribute copies so you can help others.
- The freedom to distribute copies of your modified versions to others.
Access to the source code is a precondition for items 2 and 4. The FSF classifies software that do not grant users these four freedoms as nonfree and unethical. Check out this post by the FSF that goes into much more detail about their philosophy.
What about Open Source?
It’s easy to assume that open source software is also free, but this is not the case. The Open Source Initiative (OSI) defines open source software as software that meet the following 10 criteria:
- Allows free redistribution of the software by itself or as a component of a bigger software package.
- Allows distribution of source code without charge or for no more than a reasonable reproduction cost (cost of physical media such as USB drive or CD).
- Allows modification and derived works and allows them to be distributed under the same terms as the original.
- May restrict distribution of source code only if the license allows the distribution of patch files with the source code for the purpose of modifying the program at build time.
- Must not discriminate against any person or group of persons.
- Must not restrict anyone from making use of the program in a specific field of endeavor.
- Applies the rights attached to the program to all to whom the program is redistributed.
- Must not limit the license of the program to a particular product if the program is bundled in a larger product package (think of programs bundled with an operating system).
- Must not restrict other software that is distributed with the licensed software.
- Must be technology-neutral (platform-agnostic).
Criteria for Open Source Software laid out by the OSI does not fully agree with the four essential freedoms laid out by the FSF. For example, OSI allows the license of a software to restrict the distribution of source code to protect the integrity of the author (item 4) as long as the license allows the distribution of patch files to go with the source code. On the other hand, Free Software must give users the freedom to distribute modified code without the need to protect the original author’s code. Even though not all open source software is free, the FOSS community at large uses the term FOSS to indicate both free software and open source software.
Why is this important?
If you search “free software” into your favorite search engine (be it DuckDuckGo, Google, or Searx), you are most likely to get software that doesn’t cost any money and not libre software. This tarnishes the reputation of truly free software. When people think of “free software”, they usually think of freeware or junkware that are often riddled with ads or they associate the term with malware posing as a legitimate software.
FOSS allows users to inspect the inner workings of the program to check whether it is doing what it is supposed to be doing. Sure, not all of us are trained programmers or computer scientists. However, the open source nature of FOSS allows anyone (not just the user) to inspect the code. If anyone tries to plant something nefarious, it won’t take long for someone to find out about it. This, in my opinion, generally leads to higher quality software that is more secure and privacy-focused.
Another advantage of FOSS is that it invites and encourages collaboration and innovation. Many authors welcome users and others to contribute code to their projects. If someone doesn’t like the direction or choice a certain program made, they can create a copy and modify the bits they don’t like. A famous phrase in the FOSS community is: “If you don’t like it, fork it!” Forking refers to creating a different version of a software. I believe that this environment of collaboration and innovation is the reason behind the rise of FOSS over the past few years. Some popular FOSS projects include Android (the operating system that runs on essentially all smartphones excluding iPhones), Linux (an overwhelming majority of the world’s servers and supercomputers run Linux), Chromium (the engine behind the Chrome web browser), Firefox, R (as well as R studio), and countless more.
Some of you may wonder how these big projects fund themselves. Surely it costs money to hire programmers and host websites to distribute these software. Well, notice that neither the FSF nor the OSI prohibit the developers from charging fees for offering professional support. This is how most big FOSS projects fund themselves. Companies like Canonical and Red Hat offer support for their enterprise customers who run Linux servers. R Studio has an enterprise license that makes deploying R server easier. It is important to note that FOSS projects do not prohibit users from accessing these enterprise features (though some do). If I am willing and have the necessary background knowledge, I can deploy R server on my home server without paying for it. What you pay for is the professional support or server space to host the R server. Other large projects such as Chromium are funded by large corporations. The majority of medium to small sized projects take donations from users or remain “hobby-grade” and do not offer any professional-level support.
I truly believe that FOSS is the future of computer software. There will always be proprietary software, especially for highly specialized equipment. However, companies are starting to realize that FOSS is not only economically viable but also profitable. Not having to pay royalties or license fees is a huge advantage FOSS has over proprietary enterprise software. Check out the links below to find the right FOSS for you: