Free / Open Source Software is software that provides the following four freedoms to us:
Freedom to use the software for any purpose
Freedom to study the source code of the software and learn from it
Freedom to modify the software and make changes to it
Freedom to share the software (in its original and modified form)
These freedoms are essential as they provide us with the essential framework for learning and sharing knowledge.
The freedom to use software for any purpose ensures that anyone can use the software for any endeavour (educational, personal, commercial, non-profit, governmental, defence and more) and in any region. Free Software does not discriminate.
For the purpose of this document, we use the terms “Free Software” and “Free / Open Source Software” interchangeably to refer to software that provides freedom to us. While “Free Software” is the original term that was used to describe such a body of software, the term “Open Source” has also gained a lot of popularity . We consider “Free Software” to be a more useful term since it captures the essence of this philosophy and does not dilute it for whatever pragmatic or marketing reasons.
The availability of source code provides us an opportunity to study and understand how something works. Without this freedom we would never be able to learn from what others have done or apply that learning to our own lives.
The freedom to modify the software enables to learn and gain confidence by doing things. It allows us to extend the software, fix bugs in it, translate or localise it and adapt it for other purposes. Finally, the freedom to share a program (in its original or modified form) allows us to help others while also providing subsequent users with the same sort of freedom that we enjoy. It ensures that the software remains free and provides every user, teacher and developer equitable freedom.
Proprietary software (ie. software that is distributed only as a binary and where we are restricted from accessing its source code or modifying it or sharing it freely), on the other hand, does not provide us with any opportunity to learn or understand how things work or make changes to them to test and validate our understanding.