Everything you see on your screen consists of language. Someone, somewhere, has written down words intended for your computer to understand. These words, this language, is known as code.
For our computer to know what to do, it needs to understand that code. If it does, it can act. But for us to understand what our computer is actually doing, we also need to read the code.
Open-source software lets you see that code. Closed-source software does not. So, what are these two types of software, and why do both approaches exist?
What Is Open-Source Software?
Free and open-source software is software where you not only have access to freely use a program, but to view, edit, and share its source code as well.
Source code refers to the code that a person (or, on some occasions, a computer) typed when creating a program. This is distinct from binary code, which is the actual language that a computer speaks. When a programmer is done writing a program, they compile the source code into a binary program.
A human knows how to read source code. A computer knows how to read binary code.
When someone distributes a program, they typically provide you with a binary file that you can run on your computer. That program isn’t free and open source unless they also provide you with the source code and the freedom to do with both largely what you wish.
What Is Closed-Source Software?
Closed-source software is software whose use comes with restrictions, primarily the inability to see the source code. You only have access to the binary file.
Closed-source software is also known as proprietary software. This is because software developers regard the source code as private, proprietary information. To provide anyone with access to this code, in their view, would be giving others a competitive advantage: the ability to freely copy and edit a program without having to hire a developer or team of developers to do the same work.
Unless you grew up using Linux, there’s a good chance most of the software you’re familiar with is closed source. This type of software is easier to monetize, making it attractive to small app developers and giant corporations alike.
Another tell-tale sign is whether you need to agree to an end-user license agreement, or EULA, when using a program for the first time.
EULAs and Free Software Licenses
A computer isn’t like most tools. That you can move a mouse or stroke a touchpad doesn’t matter much. That you can press buttons on a keyboard or look at a screen are necessary, but not the point.
It’s the code that matters. Code can be modified. Code can be copied. There’s no inherent limitation to someone’s ability to tinker with and copy code. A computer maker doesn’t have to ask you not to make a copy of your laptop, since that’s simply not something most people can do. But it’s not particularly hard to copy and redistribute the software that comes on the computer, so that’s where restrictive EULAs come in.
EULAs are typically giant walls of text that describe, in legalese, what you can and cannot do with the software you are about to use. They generally prevent you from seeing the code, make illegal copies, require you to purchase a license or activation key, and often detail ways of using the software considered against the terms of service.
Free software licenses don’t require your contractual consent and instead exist to tell you that, for the most part, you can do whatever you want with the program and its code. Some free licenses, like the GNU General Public License, are considered copyleft licenses. Their primary restriction on your behavior is the requirement that any programs you develop using code available under the GPL be available under the GPL license as well.
Other licenses, like the MIT license, are considered permissive licenses and don’t come with this requirement. You can take MIT-licensed code and use it to create a proprietary program if you wish.
How This Impacts You
The software licensing of the software you use determines what you can do on your computer.
If a proprietary program has a bug, or you wish it had a certain feature, your only recourse is to notify the software developer and hope they do something about it. With free software, you’re free to make the change yourself, if you have the technical knowledge. Oftentimes, even if you lack an understanding of the code, there’s a good chance someone online has wanted to do the same thing, or noticed the same issue, and provided instructions on how to tweak the program.
But the vast majority of people have no desire to read code or modify programs. So does that mean this issue doesn’t impact most people? Hardly. There are a few major areas of growing concern where closed-source software and open-source software treat you very differently:
|Category||Open Source Software||Closed-Source Software|
|cost||Nearly always free for you to use without paying any money.||More likely to cost money. When proprietary software is offered for free, there’s often a risk. Developers and publishers often monetize the program a different way, whether by displaying ads, tracking your behavior, sneaking unwanted (sometimes malicious) software onto your computer, or some combination of the three.|
|Privacy||Usually the most privacy-respecting software you can use. If someone else tries to share an open-source program that infringes on your privacy, someone else will notice and share a copy with all the tracking removed. The risk of controversy and reputational harm is often enough to prevent developers from even collecting basic diagnostic data considered commonplace among proprietary software.||Often tracks how you use the program. On mobile devices, it’s commonplace for apps to keep tabs on your location and what other apps you have installed on your phone. Some look at your list of contacts or scan your files.|
|Security||Benefits from the fact that many eyes can see the code. While this doesn’t guarantee that many eyes are actually seeing the code when an exploit hits the wild, anyone with the skillset can contribute a fix, and you can confirm that the problem has been addressed.||Closed-source software often relies on a security model called security through obscurity. This does not stop bad actors from finding vulnerabilities and creating exploits. And if the software developer makes you aware of these exploits, since you can’t see the program’s code, you can’t confirm if the problem has been addressed. You have to go on trust.|
|updates||Updates can take longer to arrive, since software development is often dependent on volunteers. On the flip side, apps and distributions tend to support hardware for years, if not decades.||Sometimes it arrives more quickly since there is often a team of employees being paid to work on a project full-time. Yet software support can end abruptly when a company goes out of business or you decide a piece of software is no longer profitable. New versions are much less likely to run on older hardware.|
Which Kind of Software Should You Use?
Most of the computers you find in big box stores come with closed-source software, and the same is true of phones. More technically inclined people can replace their locked-down operating system with an open alternative. For others, it’s still relatively easy to purchase a Linux-powered laptop online or download open-source apps for any operating system.
But free and open-source software doesn’t come with the same degree of funding, and is generally provided “as is.” While it’s more than capable for many (if not most) use cases, there are others where the best tools for the job are only available in proprietary form.
What Is Open Source Software and What Does OSS Mean?