Open Source or Free Software or FOSS Philosophy

gnu.org Philosophy

What is a Free Software

“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software.

Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.”

When users don't control the program, we call it a “nonfree” or “proprietary” program. The nonfree program controls the users, and the developer controls the program; this makes the program an instrument of unjust power.

The four essential freedoms

A program is free software if the program's users have the four essential freedoms:

  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help others (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

The freedom to study the source code and make changes

In order to the freedom to make changes and the freedom to publish the changed versions to be meaningful, you need to have access to the source code of the program. Therefore, accessibility of source code is a necessary condition for free software. Obfuscated “source code” is not real source code and does not count as source code.

Source code is defined as the preferred form of the program for making changes in. Thus, whatever form a developer changes to develop the program is the source code of that developer's version.

Proprietary Software Is Often Malware

Proprietary software, also called nonfree software, means software that doesn't respect users' freedom and community. A proprietary program puts its developer or owner in a position of power over its users. This power is in itself an injustice.

Power corrupts; the proprietary program's developer is tempted to design the program to mistreat its users. (Software designed to function in a way that mistreats the user is called malware.) Of course, the developer usually does not do this out of malice, but rather to profit more at the users' expense. That does not make it any less nasty or more legitimate.

Yielding to that temptation has become ever more frequent; nowadays it is standard practice. Modern proprietary software is typically an opportunity to be tricked, harmed, bullied or swindled.

Injustice Techniques

GNU Org: Proprietary

Free is not free access to closed source app

The term "free" in FOSS does not mean that users have free access to api of closed-source applications.

You have access to use the program for free, but in closed source software you have no control over the app; neither can you distribute it freely. For example, an ed tech company can provide some material within the app for free, but make it patented and illegal to share or modify it by others.

In this scenario, the term "free" refers to the lack of monetary cost associated with using the app, but it does not equate to freedom in terms of control and usage. Users have limited rights and are subject to the conditions set by the company, which may restrict their ability to modify, share, or distribute the app.

Proprietary software, such as the example mentioned, often relies on patents and copyrights to protect its intellectual property and maintain control over its users. This creates an imbalance of power, where the developer or owner holds all the rights to the software and its users must abide by their terms and conditions.

In contrast, Free and Open Source Software (FOSS) offers users the freedom to run, copy, distribute, study, change, and improve the software without any restrictions. The source code of FOSS is openly available for anyone to inspect, modify, and share. This ensures that users have control over their software and are not subject to the limitations imposed by proprietary software companies.

By choosing FOSS, users can avoid the risks associated with proprietary software, such as restrictions on usage, distribution, and modification. FOSS fosters a collaborative and transparent environment, where users can contribute to the development and improvement of the software, ensuring that it remains safe, secure, and trustworthy.

“Free” as in freedom, to show we do not mean the software is gratis

When we say that open source software is "free" as in freedom, we mean that users have the liberty to use, study, modify, and distribute the software without any restrictions. This freedom empowers users to take control of their software, adapt it to their needs, and contribute to its development.

However, this does not imply that developers working on open source projects must work unpaid. While many developers contribute to open source projects out of passion or as a hobby, there are several ways in which developers can be compensated for their work. Some of these include:

  • Employment: Developers can be employed by companies or organizations that use, maintain, or contribute to open source projects. In this case, they are paid for their work on the project as part of their job responsibilities.
  • Grants and sponsorships: Some organizations and foundations provide grants or sponsorships to fund the development of open source projects. This can help cover the costs of development, including paying developers for their work.
  • Donations: Open source projects can receive donations from individuals or organizations who support their work. These donations can be used to fund development, including paying developers for their contributions.
  • Decentralized Governance: With the development of decentralized fair governance using blockchain, open source developers can be paid more fairly for their contributions. Some governance systems, such as Polkadot's OpenGov, are already paying open source developers.

There are several ways in which developers can be compensated for their work on open source projects, ensuring that they can continue to contribute to the community without sacrificing their livelihood.

Open source and security

Open source software has gained immense popularity over the years, and for good reason. One of the primary benefits of open source software is the increased security it offers. The open source model encourages collaboration and transparency, which allows for a more thorough examination of the code, leading to the identification and correction of security vulnerabilities.

Free and Open Source Software (FOSS) refers to software that is both free to use and modify, as well as open for anyone to examine the source code. This transparency allows for a wider pool of experts to review the code, leading to the identification and correction of security vulnerabilities. In contrast, proprietary software is often developed behind closed doors, with only a select few individuals having access to the source code. This limited review can result in security vulnerabilities going undetected for extended periods, leaving users vulnerable to attacks.

The open source community is quick to address security issues as they arise. When a vulnerability is discovered, developers from around the world collaborate to develop and distribute patches to fix the issue. This rapid response helps to minimize the potential impact of security breaches and protect users from harm. Additionally, the open source community often has a culture of responsible disclosure, where security researchers inform developers of vulnerabilities before publicly disclosing them, giving developers time to develop and release patches before the vulnerability becomes widely known.

Open source software is also less susceptible to targeted attacks, such as zero-day exploits, which are vulnerabilities that are unknown to the developers and for which no patch exists. Since the source code is available for inspection, security researchers can identify and report these vulnerabilities more quickly than they can with proprietary software. This increased scrutiny helps to reduce the likelihood of zero-day exploits being successfully used against open source software.

In conclusion, open source software offers a higher level of security compared to proprietary software. The collaborative nature of the open source community and the transparency of the code allow for a more thorough examination of the software, leading to the identification and correction of security vulnerabilities. The rapid response to security issues and the reduced susceptibility to targeted attacks make open source software a more secure choice for users and organizations alike.

- Schneier on Security