As a computer engineering student, I have always been interested in software, hardware, and everything in between. The only way to understand how things work is to deconstruct them and see the genius behind everything. To do that, I had to go away from the proprietary, closed nature of products from companies like Apple and Microsoft and transition to an open, learning-conducive environment, which can be seen through open-source software.
Open-source software is software that has its entire code-base open to the public. Usually, these types of software are put under an open-source license such as the GNU Public License or the MIT License. These licenses permit users to view, copy, distribute, and edit software. This is in stark contrast to proprietary software which intentionally hides the codebase, only allowing a number of developers access to it. In the end, proprietary software is usually paid, whereas open-source software usually comes at no cost.
This idea of having software served in this manner might be baffling to many. We have grown to understand that software must be paid. Personally, in the past, I have associated proprietary software with quality software, and software that is “free-to-download” to be poor and might even be malicious. However, my entire perspective on open-source software changed when I was introduced to Linux.
Linux in itself is not necessarily an operating system (OS), but rather, it is a kernel—a piece of software that runs all the time and helps coordinate various different tasks required by the computer and the user. Known Linux-based OS’ are Ubuntu, Fedora, and the popular mobile OS Android. Linux, which started off as a passion project by Linus Torvalds, has grown to become one of the greatest pieces of collaboration in human history. It has over 28 million lines of code with thousands of developers worldwide inspecting, enhancing, and maintaining it. I can bet that your favorite websites run it. What’s amazing is that you can check the source-code for yourself, as it is hosted publicly in Github.
The kernel, which uses a penguin as its mascot, has become the hallmark of what open-source can truly be: a collaborative project with a passionate community around the globe. Do these developers get anything out of it? Yes, they do. Aside from the various donations by big tech companies to the Linux Foundation, developers have also benefited from committing their code into the Linux kernel as it usually enhances their own developer experience. With thousands of eyes watching the kernel, finding new bugs, vulnerabilities and developing new features has become rapid. Linux is just one of thousands of open-source projects that are currently in development.
Inspecting the code is one thing, but maintaining, developing, and understanding how it works is an entirely different story. This is where the revenue of open-source software is generated. Companies such as Red Hat—the developer of Red Hat Enterprise Linux, CentOS, and Fedora—have understood this, and made it so that if users wanted customer support or more features for said piece of software, users could pay. Because of this model, they have become incredibly valuable. Recently, IBM bought the company for around 34 billion USD.
If you’re a developer, or maybe even a curious learner, I suggest you delve into open-source software. Not only will you find open-source alternatives to your favorite applications, you might even prefer them over its proprietary counterpart.