Software freedom is the idea that the software you use, or that society uses, affects your freedom as a human being. As an example, the operating system might limit you to a small number of programs running at the same time, so that the vendor can charge you more for a "professional version". The operating system in your DVD or Blu-Ray player may prevent you from playing a DVD bought in a different country. The e-book application on your phone or tablet may decide you're now in a country where it's not allowed to function, and deletes all your e-books. These are all real examples of antifeatures.

Free software promotes the freedom of its users. It is based on four basic freedoms, as defined by the Free Software Foundation:

  • The freedom to run the program, 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 your neighbor (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.

There are other definitions of freedom. The Debian project has its own guidelines (DFSG), which are somewhat more detailed.

Software freedom is often defined in terms of licences. A licence is a free software licence if it allows the four freedoms to anyone who receives a copy of the software. There are two major kinds of free licences: permissive and copyleft. Copyleft licences require that any changes to the software get licensed under the same licence; permissive licences do not. Much heated discussion has been had about this difference.

The GPL, or GNU General Public License, is the most common copyleft licence. The Mozilla Public License is another one. The BSD licence is the archetypal permissive one.

Open source is a related, but different concept. It builds on the DFSG, but instead of freedom, it concentrates on the practical benefits to the software development process of free software licenses. It turns out that when everything is done in the open, and everyone can participate on equal terms, and everyone is allowed to make any changes they want, the development can often proceed at a very fast speed.

In practice, open source and free software use the same licences. Developers will usually identify with one or the other approach, or both, and happily work together with the other kind.

The commercial world obviously favours open source, as a concept, over free software. Don't let that stop you from doing what's right.

Happy hacking.