Getting Started
Categories:
On the following pages, we’ll provide some practical information about free software, but there are a few general points to keep in mind.
A Brief Recap
Technology can improve our work, our communication, our understanding of the world, and our quality of life. But technology that we cannot control can sabotage our work, spy on our communication, restrict our access to information, and threaten our very existence.
Information technology has pervaded every aspect of many people’s lives, and with ubiquity comes enormous potential for harm through surveillance, fraud, malfunctions, and above all, the sacrifice of one’s freedom and dignity in exchange for use of the technology.
You have a right to control your own property, to use it as you wish, to study how it works, to share it if you choose, to modify it and improve it.
Free software puts its users in control of their own computing. Non-free software puts its users under the power of the software’s developer.
More precisely, free software means that users of a program 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 to change it so that 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 that 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.
Technology should exist to benefit the users, not to restrict their freedom or to violate their rights. The inequity created by non-free software is not compatible with a free world or the free exchange of information. While free software empowers the users to share and improve it, non-free software creates dependence and in effect domesticates the users for the benefit of the developer. It is this system of bondage that is fundamentally unjust. If we value and desire freedom, then we must insist that all software that we use is free.
Understanding Free Software
It’s important to understand what free software is and isn’t. It is software that gives you the four freedoms listed above. It is not a freedom-respecting clone of the latest trendy non-free software. It is different. It may or may not be superior in a technical sense, but it is always superior in an ethical sense. The advantage of free software is that you are free to do with it as you wish. A bonus is that this allows anyone to fix technical problems with free software, which can result in technically-superior software.
Free software may be written by one programmer, or by a small team, or by many volunteers who do not know each other but collaborate online, or even by a government or corporation. Free software may be poorly designed, buggy, insecure, lacking simple features, or just plain frustrating to use; the programmers who write free software can do stupid things too. Free software is not a panacea; you still need to take steps to ensure the security of your system and the privacy of your data, especially online.
Free software puts you in control. Being in control means that you need to know what you are doing. With freedom comes responsibility.
Everything That You Know Is Wrong
If you have experience using non-free software, then chances are, everything much of what you think that you know about how computers function is simply not accurate. Non-free software often obscures what the program is really doing and how it really works (or doesn’t work). You may not have access to the convoluted mess that exists beneath the surface, and you may not see the long list of error messages, and you may not be allowed to use certain features that aren’t working perfectly yet, but that doesn’t mean that everything Just Works™.
Free software doesn’t try to deceive you. It doesn’t hold your hand and direct your gaze away from the man behind the curtain.
If you have already grown accustomed to using non-free programs, you may need to unlearn certain ways of doing things when you switch to using free programs for the same jobs. Leave your expectations behind, and be willing to learn. (None of us were born knowing how to operate ANY computer program, after all.)
Fundamental Differences
In order to offer any sort of advantage, free software must be different than the non-free alternatives. Because it is designed with freedom in mind, some of these differences are philosophical in nature, and others are more technical differences that result from a difference in design philosophy. Here are just some examples:
- Diversity: There is (usually) no top-down management to impose consistent design choices across programs, so different programs can have vastly different user interfaces, feature sets, and default settings. Even programs meant to be used together can be developed by different people with different ideas. This is in contrast to non-free operating systems or software suites controlled by a single corporation.
- Control: The user is in control of free software, not handed a toy designed by someone else to work only a certain way and to be indestructible. You are free to configure things how you want them; programmers will often expect you to do so. You are free to break things if you choose; it is your responsibility to fix them again. You have the opportunity to learn how to operate the program yourself, the way that you prefer, rather than having everything done for you (or to you). This is in contrast to non-free software’s imposed defaults and restricted configuration options.
- User-Friendly: Free programs are often designed to do the job quickly and efficiently and to stay out of the user’s way; this is “user-friendly” to the existing users. To the new user, a lack of “training wheels” and tutorials and brightly-coloured buttons might seem opaque, but to an experienced user, such extra fluff would be an annoyance. Free software is designed not to appeal to as many people as possible but to do a particular job and do it well. The developers design the sort of tool that they themselves would want to use, and they expect new users to read the manual. A free program is not a product dressed up to be as enticing as possible so that you will want to use it; it is designed for those who already want (or need) to use it. It is by the users for the users. This is in contrast to non-free software designed by marketers for other people to use.
- Hardware Support: Sometimes devices simply do not work properly. When hardware manufacturers don’t properly document their devices or don’t release free firmware, then even the most skilled programmers cannot write drivers that properly support that hardware. As a result, you might (e.g.) buy a laptop only to find that the wireless card does not function at all because it requires non-free microcode from Intel or Realtek; you need to get different wireless card that respects your freedom. This is in contrast to blindly accepting non-free firmware or non-free device drivers that put control of your hardware in the hands of someone else.
- Community-Funded: While some free software is developed by professional programmers working for large businesses that pay them for their work, most free programs are written by volunteers who share them as a public service. These programmers work on their free software projects in between their other responsibilities, and in order to develop free software on a more regular or full-time basis, they rely on donations. Without sufficient funding, free software development can be slow, and certain features might not get implemented. The users have an incentive, but not an obligation, to support the developers of the free programs that they use. This voluntary approach to funding is in contrast to non-free software that charges a licence fee to each user in order to generate a profit. Those who run free software on their servers for others to use might need to charge a monthly fee in order to pay for the server upkeep and the internet bandwidth; they don’t make money by selling users’ data to advertisers or other malicious actors. This is in contrast to non-free “Service as a Software Substitute” (SaaSS) that violates the privacy of the user for profit; with non-free software, if you aren’t paying for the product, you are the product.
- The programmer doesn’t owe you anything. Free software is provided “as-is” in the hope that it will be useful, without warranty of any kind. If it doesn’t work the way that you would prefer, you are welcome to change it. If you require assistance beyond what the manual can provide, you can ask for help, but no one is obligated to help you. This is in contrast to non-free software’s supplier-customer relationship and paid tech support.
Identifying Free Software
Free software guarantees the user the four freedoms as part of its licence terms. If you download a program directly from the developer’s website or repository (such as on Codeberg), there should be some indication of its licence, either in the documentation or in a LICENSE
file. Fortunately, it isn’t necessary to read through the licence terms of each and every program before installing it – the licence of a free program will almost always be on this list, making it easy to verify at a glance that it respects the user’s freedom. If a licence is specified only in an abbreviated form (such as GPL-3.0-or-later
), then check the full name and verify that it is “FSF Free/Libre” here.
Permissive vs Copyleft
While these concepts don’t directly affect those who simply want to use the software, the terms do sometimes appear in documentation, and it is worth understanding what they mean. For those who write their own programs or modify and redistribute existing programs, understanding the difference is essential.
A permissive free software licence (such as the 2-clause BSD Licence) grants the user the four freedoms, but it does not require that modified versions or larger programs reusing the same code be free software as well. In other words, it grants User A the four freedoms, but it does not require User A to grant the same freedoms to User B and User C. It is freedom without responsibility, which is not unethical per se, but it allows for malicious actors (such as a certain fruit-brand software company, for example) to incorporate part or all of a free program into their own non-free program. It allows someone to benefit from free software without contributing to it and while actively working against the purpose of free software: protecting the freedom of the user.
A copyleft free software licence (such as the GNU General Public Licence) grants the user the four freedoms and leverages existing copyright law to protect these freedoms. A copyleft licence requires that (published) modified versions or larger programs reusing the same code are also released under a copyleft licence. This ensures that each and every user of the original program or any derivative program receives the four freedoms. Copyleft prevents malicious actors from incorporating copylefted code into their own non-free programs; they cannot use the work of the free software community in order to trample the freedom of their own users. With freedom comes responsibility.
Non-Free? No Thank You!
A world in which all beings are free is a world without non-free software.
Avoiding non-free software is important for the sake of your own freedom, but declining an invitation to use non-free software (or Service as a Software Substitute) also sets a positive example for others. When people observe you saying no, even once, they may be inspired to follow your example, or at least to consider the issue. This helps the free software movement, and it is one more step toward a free world.
When choosing your hardware, it is helpful to choose machines that respect your freedom “out of the box” without needing to reverse-engineer anything or replace any parts. Buying new hardware that ships with non-free software would support the profits of companies that develop non-free software; choosing hardware that ships with a free operating system or no operating pre-installed avoids this issue. Choosing peripherals or components that work with 100% free software (and rejecting those that require non-free firmware) shows manufacturers that there is a demand for freedom-respecting hardware.
In addition to rejecting non-free software at the level of the operating system and userspace, choosing a free BIOS when possible is an important step toward freedom as well as an important security consideration.
Ideally, even the hardware itself should be fully free-as-in-freedom and well-documented so that anyone can manufacture, modify, and redistribute it.
And For Fruc’s Sake…
…back up your data in a vendor-independent format before proceeding to make major changes to your system! Don’t use proprietary backup software, don’t use proprietary filesystems (NTFS, HFS, et cetera), and don’t store your data “in the cloud” unless you personally know and trust the owner/operator of the server! Copy your data to an external drive formatted in ext4 (or fat32 if ext2/3/4 is not possible), and then copy it again to another identically-formatted drive. You could copy using your file manager, or use the cp -R
command, or preferably use rsync -aEuz
which preserves metadata.
Ready to join the free world?
You can start by reading our recommendations regarding free operating systems.