GNU/Linux and free software
I want to take the time to discuss around the topic of free software. And when I say free software, I don't mean free of cost, I mean software that give the user freedom. Software can be free of charge, but at the same time mistreat its users. Free software on the other hand ensures that the user have full freedom to use the software any way they want, study and modify it, and even redistribute it. A very important part of Free software is the copyleft license, which ensures that anyone who modify it and redistribute it, must give the same freedom to their users.
The Free Software Foundation (link opens in a new tab), and the GNU (link opens in a new tab) project, are some of the foremost defenders and contributors to Free Software. The GNU project itself was started for the specific purpose of creating a truly free UNIX-like system. When the Linux kernel was developed in the early 90's, it was combined with the existing GNU system to have a fully functional operating system. Most Linux distributions today are more appropriately referred to as GNU/Linux, because the GNU tools and libraries make up most of the core user space software and APIs that are needed for a functioning operating system. When I first learned of Linux, I had no idea that there is a difference between open source, and free software. Many developers of open source do not care about copyleft. For a lot of people, convenience is the most important factor, this can be seen in the fact that the Linux kernel includes non-free software. There is binary firmware for many devices, which means you as a user can't even gain access to the source code, much less modify it. For a lot of users, this is probably not important. But it also means that it is highly unlikely that any third party has had access to security audit the code. And even though the firmware do not directly deal with the internals of your operating system, it still affects the devices in your computer, and by extension, the results of your operating system's interaction with those devices.
I consider myself a gamer, and as a gamer I require a powerful graphics card if I want to run newer games. I have an AMD graphics card which runs with an open source driver, but the card still require proprietary firmware. There is firmware available that is fully free software, but performance would suffer dramatically so I have no choice when my priority is gaming performance. Nvidia cards are worse, as the open source driver for Nvidia cards is mostly useless for gaming.
In a perfect world, we could run everything with free software, but it is not a perfect world. I use non-free software, and I most definitely don't hold it against anyone else who use non-free software. Pretty much all games are also proprietary, but I must admit that I consider software like games to be okay as proprietary. I am more concerned with the core system tools, utilities and API libraries, and of course the kernel.
One could ask the question if it really is important that software is free, what does it matter to a normal user? Most users will never look at the source code, even if they could. I would argue that there are in fact several points that have a direct effect on the "average" user. When I use the term "normal user" or "average user", I refer to people who have no or little knowledge of programming, and no or little interest, and knowledge, in how their computer works.
- Old software (with a free license) can still be modified and fixed for newer computers by anyone, which will benefit everyone. Even if discontinued by the original developer, anyone else can step up and do the job.
- Security researchers frequently study free software for vulnerabilities, and usually inform the developer of any vulnerabilities they find. This helps making the software safer for everyone.
- Free software also protects users from malicious developers. It is much more difficult to sneak malicious code into free software. There is usually a community that will spot this, and inform others. This is why distribution specific packaging of software is important, because it is an additional step in quality control.
- User privacy is pretty much non-existent on most non-free systems. Both Microsoft and Apple have extensive tracking, which is something you don't have to worry about on operating systems that are free software.
- The open nature of free software might encourage "average" users to learn more about how their system work, since this information is readily available. In other words, it encourages users to educate themselves on the software they use.
My own experience with GNU/Linux is something I want to bring up. When I first started with GNU/Linux, I was more or less an "average" computer user. I did know how to build desktop computers, and I suppose I was a little bit more advanced than most computer users. But I still had no idea how to really solve issues, past the usual "format, reinstall and start over". Over time, I became more familiar with the inner workings of my operating system. Different distributions of GNU/Linux, in particular Arch Linux, really helped me educate myself on the details of my operating system. Now, after many years with GNU/Linux, I am familiar with the details of my operating system to the point where I feel more at home in a terminal, and dealing directly with configuration files. I even write my own automation scripts, and even somewhat complicated software to handle specific tasks I want to do. My earlier years with Microsoft Windows never encouraged, or accommodated, such a learning process.
Free software not only empowers computer users, but it lets the user have complete control over their computer. Even if you don't understand the details of how a computer works, your own computer should not be controlled by someone else.
And that is the essence of what I am trying to say. Your computer belongs to you, and how it works should also be under your control. Most proprietary software is released with very restrictive licenses, specifically telling you what you can and can't do with the software. Free Software on the other hand, specifically let you do whatever you want with the software. That includes modifying it and even redistributing it to other people. Depending on your computing needs, relying solely on Free Software might be impossible, but it is fully possible to reduce the amount of proprietary software you need. Using GNU/Linux is an excellent way to accomplish this.