
Logo courtesy: https://opensource.org/
Every day we run systems on servers and the cloud, which depend on base systems, CPUs, and GPUs that run tirelessly. Have you ever wondered how these base systems came into existence? It all started with the first portable operating system, Unix.
You hear about Unix everywhere. If you open a Wikipedia page on Linux, you’ll find it’s “Unix-based.” If you read about Apple’s MacOS, you’ll see that “its core parts include a Unix system.”
Originally, Unix was non-portable and a convenient platform for programmers. It was never meant for non-programmers. However, as more end-users added their own tools and shared them in academic circles, Unix gained immense popularity. It was after this that Unix was made more user-friendly.
People modified these systems, invented their own tools for research purposes, and shared them with their colleagues. This opened their imagination to the possibility of modifying and designing their machines.
As Steve Jobs said:
Great things in business are never done by one person; they’re done by a team of people.
A community is what sustains development. The presence and support of open-minded enthusiasts who devote their time and knowledge is one of the pillars of the Open Source software movement.
Advantages of Open Source
One of the core definitions of open-source software is the freedom to study, run, edit, and redistribute the source code. This inspires developers to create their own software and share their knowledge. The Open Source Initiative was inspired by the open sourcing of Netscape Navigator, which later led to the creation of the Firefox browser.
Here are three things that open source does well:
-
Transparency When you open-source a project, you encourage transparency, which is essential for any organization. Mozilla’s reputation increased greatly after they open-sourced their products, which is why you’ll find Firefox in any Linux distro you pick.
-
Reduced costs and Improved Quality Take Google Chrome as an example. By not having to pay large internal teams for development, they were able to focus their resources on specific areas. Developers from various backgrounds inspected the code, which allowed them to identify vulnerabilities and fix patches quickly. Open-sourcing their products allowed a huge community to work on and implement various plugins, themes, and features, making the products highly scalable and adaptable.
-
Attracting and Retaining Talent Linux is the open-source project with the biggest community in the world, and their greatest supporter is Red Hat. They foster a heavy sense of community and invest significant resources in employee training and development. Red Hat encourages remote work and offers competitive pay. They care about their employees, who work on projects that affect millions of lives. Other organizations that support open-source projects include Google (Android OSP), AWS, IBM, JetBrains, Docker, and NASA.
If you really intend to set foot into the river of Open Source:
-
Learn to Google effectively. This is an underrated skill. It’s important to know how to search effectively to find the answers you need.
-
Read and interpret licenses carefully. Many times, for our term projects, students use
git cloneand present code without a license. Copying code without a license is liable to legal action. Unless the creator provides a license that gives you the right to modify and redistribute it, you shouldn’t do it. If you do, at least clarify your intentions and acknowledge the creators in your license orREADMEfile. -
Start out small. Build libraries in a language of your choice and think about the practicality of your creation. How will this make a developer’s work simpler? How can they install and integrate it into their projects? Will it cause any dependency clashes?
-
Build your own products. Try building software or tools that you will use in your everyday life, like your own to-do list application. This allows you to avoid bugs and test the product vigorously, putting you in the shoes of mass producers who cater to the needs of millions.
-
Create proper documentation. Documentation is the most useful reference material for a project. Developers must ensure they provide proper examples and demonstrations.