What is Open Source Software and How Does it Work?
What is Open Source Software and How Does it Work?
Implementing open-source technology allows organizations to be flexible in navigating the rapid changes in the digital landscape all while custom-fitting digital experiences to current and emerging platforms. This article will catch you up on all things open-source, including what it is, where it started, open-source software today and how it works here at zu.
Open Source & Closed Source Software
Open-source software (OSS) is released through a specific license that makes its source code legally available to developers—meaning developers can examine, copy and enhance the software’s code. The source code can be repurposed to help in the creation of new websites, intranets or platforms but it’s important to note that the code of the original source cannot be changed.
Closed Source Software (also known as proprietary software) falls on the other side of the spectrum. It’s software that is developed exclusively by a single company or group. How it’s created is kept secret from the general public and is available only to the developers that created it. No one, other than the owner, can see the underlying source code, and other users cannot easily (and potentially legally) examine it, copy it or enhance it.
Like Sharing Recipes
You can think of open-source and closed-source as sharing recipes. Closed source recipes are closely guarded secrets. Companies keep their recipes hidden away, locked in a vault, only accessible by their team, and the only way you can enjoy these recipes is to buy the finished product. On the other hand, open-source companies freely share recipes so that anyone can see the ingredients, make changes and create their own versions.
Some of the largest companies in the world leverage open-source technology, and share recipes, by contributing back to the project, including the likes of Spotify, Tesla, General Electric, The Government of Australia, Mint.com NASA and Twitter.
Origins of Open-Source Software
Software started as solely proprietary where non-disclosure agreements (NDA) were required to receive it and see how it ran. Companies would distribute software on tape and once the NDA was signed, recipients were free to compile and run the software.
In the mid-1980s, one programmer at MIT, Richard Stallman, had issues with this. He wanted to be able to modify the software that controlled a printer. He was unable to do so as the source code was restricted by the software license and an NDA. This restriction and frustration led to Stallman creating the GNU Project. He used the GNU Project as a means of publishing numerous software tools and releasing the source code as “free”. Instead of a proprietary license that required an NDA, the code was released with a license that explicitly forbade making the code proprietary.
This meant that anyone that wanted to use it had to contribute their work back to the project. This license is the GNU Public License (GPL) and it is still in use today. The “Free Software Movement,” as it had been termed, continued to grow. During the 1990s, a software developer named Eric S. Raymond published an essay titled The Cathedral and The Bazaar. It discussed different development models for Open Source Software and laid the groundwork for open source development.
In the late 1990s, one of the biggest open-source projects was released. The Mozilla Foundation released the source code for Netscape, a popular web browser. This code eventually became the Firefox browser we know today—one of the securest browsers in the world. From this point, corporations began to invest in Open Source Software—IBM, Intel, Red Hat and zu are a few good examples of organizations that began leveraging OSS for major projects.
On top of the sites listed at the beginning of this piece (and millions of other examples), your web browsers are very obvious uses of open-source software. All of Mozilla Firefox, Google Chrome, and parts of Apple’s browser Safari are open source. I’ve linked to their source code so that you can see that it’s available to read and modify.
In fact, if you can think of something that you do on the computer, from writing a document to watching a video to communicating with friends, it’s likely that it either utilizes Open Source Software, or there’s an Open Source alternative.
How Open Source Software Works at zu
- Beginning with a developer community, this diagram, as an example, represents the 300,000 active Symfony (an open-source PHP framework) contributors committed to increasing the effectiveness of the platform and its components. These contributions are passed forward to ‘maintainers’ of the open-source project, for example, Symfony, Drupal or vue.JS certified staff for testing, peer-review and use by beta community members. Once complete, the modules, patches and updates are available to the entire open-source community.
- zu creates a private and secure GitHub repository for strictly zu & partner access. This is where the source code lives and where we store, manage, design, and develop the project. When developers commit code to version control systems they are required to sign commits with GPG (GNU Privacy Guard) keys which validate identity, in which the repository maintains logs for auditing. No application code is ever stored in public repositories, and all sensitive information (passwords, keys, etc.) is stored in encrypted files using AES256 encryption.
- From here, we create automated and secure releases to all environments to ensure proper testing and quality assurance is done in Dev & Beta before being released to Production. Access to the production environment’s server services, including deployment, file, database, monitoring, and backup is authenticated through zu IP addresses. The Production environment is the live website, web application, mobile app, and/or interface that your customers use and enjoy every day.
So, Why Open Source?
At zu, we evaluate software not only based on its cost but on its maturity, its commitment to security, its ability to achieve business objectives and the health and activity of the project. We are an open-source agency fully committed to technologies that provide ambitious, rich, engaging, and functional user experiences for our clients and client's clients.