digital garden

now | blog | wiki | recipes | bookmarks | contact | about | donate


* * * back home * * *

free software

free software is software that's for everyone!

Hang out in our online spaces long enough, especially this wiki, and you are going to hear the term "free sofware" quite a bit. If you're new to the world of free software, you might be thinking that it means "free" as in price, but it's actually "free" as in freedom.

"What does that mean, anyway?", you might be wondering. It can be a bit confusing at first, but once you get the core tenets of free software, you will understand it much better, and hopefully, able to appreciate everything it can do for you, and that you can do for it.

To help you really understand the concept of free software, let's dive into some of the core concepts behind it.


The Free Software Definition

Software is considered free as in freedom if it aligns with the Free Software Definition, as defined by Richard Stallman and the Free Software Foundation.

Software meets the Free Software Definition if it allows the user the Four Essential Freedoms.

The Four Essential Freedoms:

Having access to the source code of the program is essential to whether or not it can be considered free software. If there is a piece of software you use that doesn't publish its source code to be made available to users, it is nonfree software. Some software might publish the source code in whole or in part, but the license might not allow the software to be modified or redistributed by users. This also makes it nonfree software, as it violates Freedoms 2 and 3.

You might hear the term "open-source" on the internet quite a bit. It's important to remember that while "open-source" is a good idea, it often misses the point of the free software movement. Merely having your code "open" is not enough - it needs to align with the users' Four Essential Freedoms! Keep in mind that while all free software is open-source, not all open-source software is necessarily free software (depending on the license it uses and any restrictions in place). This can get confusing if you're new to this world - but we are going to go deeper into this concept in a second.

Raven's Ridge only builds free software as defined by the Four Essential Freedoms, because we want everyone to be able to benefit from, modify, and contribute back to our work, and use our software for any reason they wish.


Software Licensing

In this section, we're going to take a look at software licensing, and how it relates to free software. There are all kinds of different kinds of software licenses out there, and knowing the licenses that are free software-friendly will help you know whether or not the software respects your freedoms or not.

There are a bunch of different software licenses out there, so we aren't going to go through every example. Instead, we will touch on software licensing models, and provide examples of a few licenses from each.


FAQs about free software

Here are some of the common questions you might have about free software, and how it works.

~ Can you sell free software?

Indeed! Free software can be sold commercially. Remember, when we say "free software", we don't refer to its price, or lack thereof. We tend to say "gratis" instead of "free" when it comes to the price. "Free" in free software always means freedom, as defined by the Four Essential Freedoms, outlined above.

In fact, if a software license restricts you from selling copies, it is considered nonfree software, as it doesn't align with the Four Essential Freedoms.

~ Is "open-source" a bad ethos?

Not inherently, as a good majority of software deemed "open-source" is free software. However, the term "open-source" is mostly used in a commercial sense, and often misses the point of the free software ethos. We want software to follow the Four Essential Freedoms to ensure the user has the freedom to use the software as they wish. The two movements, however, are very closely aligned, and we have a term for them collectively - Free and Open Source Software, often abbreviated as "FOSS".

~ How can I get started using free software?

If you're just now getting into the world of free software, there's a good chance you're still on proprietary systems, such as Microsoft Windows or Apple macOS. The easiest way to begin using free software is to begin using a free operating system, such as those in the GNU/Linux family (I use Debian, for example, or those in the BSD family, such as FreeBSD. You can also use free software on your mobile device, if you'd like, as long as it is one that allows you to install a liberated operating system on it, such as LineageOS (Android devices only, you're out of luck on iOS devices).

If you are still on proprietary operating systems for whatever reason, begin using free software piecemeal. For example, switch your web browser from a nonfree one such as Chrome or Safari to something like Firefox or Brave, or switching from proprietary communication software like Discord to a free one, like Element or GNU Jami. You can also begin taking lists of any other nonfree software you use, and finding free alternatives for them.

~ I want to write a free software project. Which license should I choose?

That's great that you want to begin writing free software - thanks for doing your part to protect users' freedoms! When you're just taking your first steps in the world of free software development, it can be hard to decide which license to choose - but that's okay! Think about what you want to do with your project, and work from there.

If you want to make sure your software and any modified versions of your software also remain free and respect the Four Essential Freedoms, the easiest thing to do is choose the "strong copyleft" GPL, which covers the entire program. You can also choose the "weaker copyleft" MPL, which covers individual files in the project. There are also some other licenses in the copyleft family you can consider under different circumstances. For example, if you're writing software libraries, you might want to consider using the GNU Lesser General Public License (LGPL), while if you're writing a networked service, you should consider using the GNU Affero General Public License (AGPL).

If you want to write free software and let it be permissive, which permits very easy re-use of your code with almost no requirements (usually aside from copyright attribution), one of the mentioned permissive licenses might be the one you want. Keep in mind with these licenses that your code will be able to be integrated into nonfree software if the person modifying or using the code so chooses, so if your main priority is upholding the Four Essential Freedoms, you will probably want to stay within the copyleft family of licenses. However, if you just want to release the code out there in the world with the least restrictions possible, this might be the way to go for you. For permissive licenses, I'd recommend going with the MIT License or BSD 3-Clause License.


relevant links

What is Free Software? - a helpful dive into free software from the GNU Project.

Why Open Source Misses the Point of Free Software - an explainer on the differences between free software and open-source.

Write Free Software - a helpful website showing how you can begin writing and contributing to free software projects.

FSF History - the history of the Free Software Foundation.