By open sourcing software, different people are able to come together and collaborate to improve it. Open source software (OSS) has been around for a while now. GNU/Linux kernel based operating systems like Ubuntu, Fedora, RHEL and Linux Mint are some good examples, while even the operating system on Android phones is Linux based.
From the business perspective, OSS offers many different benefits compared to proprietary software. With OSS, individuals or organisations do not have to pay for any software licences. If they are tech savvy enough, they can download, use and modify OSS, or else, they only pay for what the service providers charge to do the same. The important difference here is that the users are effectively co-developers, who can suggest different improvements to the software, help in fixing bugs or even get into the source code and modify it according to their needs. All this might make the software even better, and benefit many others when it is shared.
Creating software and giving it away free isnt what open source is all about. Richard Stallman, the software freedom activist and founder of GNU, has said, When we call software free, we mean that it respects the users essential freedomthe freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of free speech, not free beer. These freedoms are vitally important. They are essential, not just for the individual users sake, but for society as a whole because they promote social solidarity, i.e., the concept of sharing and cooperation.
There is a vast difference between software which you can get for zero cost and software which gives you the freedom to use it the way you want to. You cannot look into the source code of free software (zero cost software or pirated software that is distributed freely), but you have access to the source code of open source software.
Open sourcing software has its own advantages. From a users perspective, the obvious advantage is the software being freely available; for developers or programmers, the benefit is getting access to the source code to do whatever they want.
Another great advantage of OSS is that the software continuously evolves, as more and more developers contribute to it, adding to and modifying it, which makes the software better, more secure and relatively bug-free, compared to proprietary software. The best example is the Linux kernel. The rate of development of the Linux kernel is unmatched. Some recent statistics announced by LinuxFoundation.org highlight this aspect: Nearly 12,000 developers from more than 1,200 companies have contributed to the Linux kernel since tracking began 10 years ago. Just since the last report, more than 4,000 developers from 200 companies have contributed to the kernel, half of whom contributed for the first time. The average number of changes accepted into the kernel per hour is 7.71, which translates to 185 changes every day and nearly 1,300 per week.
Today, big names like Google, Facebook, Intel, Samsung, Red Hat, Canonical, Cisco, Yahoo, etc, are promoting and contributing to open source activities.
The need for open source
It all started with the frustration of not being able to tweak the software we used. In the early 1980s, Richard Stallman, a computer programmer and hacker, and a few others, were not allowed to modify the code of a newly installed laser printer at AI Labs, where they worked. Stallman had modified the source code of the labs previously installed printer so that it sent electronic notifications to the user when its printing job was completed. Stallman wanted to add the same functionality to the newly installed printer but was prevented from doing so. This and a few other similar events triggered the birth of open source software.
Today, in this rapidly developing digital era, open source software plays a very important role. Well known OSS include the Linux kernel; the well-known browser, Mozilla; the Apache Web server that powers most of the worlds websites; OpenSSl, a project that keeps the Internet secure and is used by most organisations and governments; GNUPG, which is encryption software used by most organisations to secure mails and files; and NTP (Network Time Protocol), which synchronises the time of all machines over the Internet. There is also the very well known and widely used open cloud software, OpenStack… and the list goes on and on!
Organisations like the Linux Foundation, which supports the development of the Linux kernel as well as other open source projects; and the Apache Software Foundation, which backs the development of the Apache Web server software and other such projects, are examples of how successful and widespread the OSS ideology has become.
The power of collaboration that the OSS ideology has unleashed is best demonstrated by the Linux kernel, which is developed and maintained by the community. The reason the Linux kernel is being used in the palm-sized Rasberry Pi computers, in supercomputers that power space stations, in cars as well as submarines that dive deep into the sea, is because people from around the world collaborate and add patches to the kernel, which enables it to support such diverse hardware.
If Linus Torvalds, the creator of Linux, had felt like keeping his project to himself, he would have ended up founding another Microsoft, and the world as we know it would have never been the same. So definitely, the future is open!
How open source works
Lets assume you find some open source software and start using it. Then you stumble across a bug, or you would like to add a new feature to it, so you contact the development team. If its a bug youve found, you submit it to a bug tracker. If its a new feature or patch that youd like to add, and if the team likes your idea, you might be asked to write the patch yourself!. If it is an easy task, then you can yourself modify the code, do some tests and submit the patch. If the team accepts the patch and applies it, then you are happy that your contribution makes the software even better.
But what if youve created amazing software and want to open source it. Again, it is simple. You create a zip of your code and publish it on one of the open source software hosting sites like GitHub at github.com, SourceForge at sourceforge.net, Google Code at code.google.com, Gitorious at gitorious.org, and many more. Once your project is out there, people will come across it, and start collaborating.
So the development of OSS happens collaboratively.
So whos building products on top of OSS?
The answer is – almost everyone! The tech giant, Google, has contributed over 20 million lines of code from over 900 open source projects. The best example is Android, which is a software stack for mobile devices that is based on Linux. Chromium is Googles Web browser, Ganeti is a cluster virtual server management software, Gerrit is a Web based code review system, Go is a programming language, apart from many more.
But Google isnt the only big firm in this space. Its rival, Facebook, is also in the race. Even Facebook has a wide range of open source projects that cover Web as well as back-end servers. Buck is a build system for Android that helps in building reusable modules, Bolts comprises a few libraries for Android and iOS that help making apps easier, React is a JavaScript based library, Flux is an application architecture which is used for building Web interfaces, Presto is a distributed SQL query engine, and HHVM is a virtual machine designed to execute PHP programs with a 5x increased throughput.
Other big players like Red Hat, Intel and Canonical are not behind.
Red Hats community-driven Linux based operating systems, CentOS and Fedora, are very popular. Red Hat also has its own community driven version of OpenStack RDO and JBoss Developer, which is an application server that is open source.
Intel also plays a big role in the open source world. Its Yocto Project is an initiative in developing a shared development environment and tools for embedded developers.
Ubuntu, one of the worlds most popular and widely used operating systems, is developed by Canonical, which has been developing a wide range of open source software like Juju which is a service orchestration tool for the management and installation of cloud applications. MAAS (Metal-as-a-Service) is another innovative project that helps to manage physical servers and the cloud.
Believe me, this magazine will not be able to cover all the open source projects that are currently being developed out there!
India, being the worlds largest outsourcing destination for software services and products, also has companies that are keen on OSS development. A good example is ESDS Software Solution (esds.co.in), where employees are constantly encouraged to innovate and contribute to the open source community in every way possible. Its products eNlight, eMagic and MtvScan are based on open source technologies.
eNlight is an intelligent and highly scalable cloud orchestration software that has OSS in its roots. It has the capability to manage virtual machines running on different hypervisors like Xen Server and HyperV. Unlike other cloud management software, eNlight intelligently scales the resources of a virtual machine, on the go, which reduces costs to a large extent. A feature of eNlight is that you pay for what you consume, i.e., you have to pay for CPU, RAM and bandwidth only when the VM uses it! Since different businesses have different needs, customised cloud solutions like eNlight offer dynamic resource provisioning and scheduling.
eNlight can also be deployed as a private cloud solution, which supports a wide range of hypervisors like VMware, KVM, Xen Libvirt, apart from Xen Server and HyperV.
eMagic is another innovative, in-house developed data centre management software. It is a Web based system that is widely used for IT asset management, device deployment, and comprehensive server monitoring and network management in data centres. eMagic operates on a three-click conceptbuild, deploy and manage. Its auto discovery feature helps customers to discover all the devices in a network and deploy them. With the three-click concept, devices of multiple data centres across multiple geo-locations can be managed easily. Support for heterogeneous hypervisors for VM management makes it unique, along with wide traditional features like IP SLA monitoring, netflow, alerts, reports and application monitoring. A change management system, incident management system and problem management system are other enterprise features of eMagic.
MtvScan is an aggressive website security scanner that secures websites. It works on websites based on different frameworks like WordPress, Joomla, etc. It thoroughly scans for different vulnerabilities that might be present and notifies the developer accordingly. MtvScan provides automatic CMS scanning and agent based server side scanning. It proactively scans for malware, Trojans, security threats, infections and botnets. MtvScan also provides specialised defences against zero-day exploits, advisory security patches, etc.
OSS has changed the way we operate in the digital world. More and more people are being attracted by its collaborative culture. As in freedom of speech, we have inherited the freedom to use software. And this is going to go a long way!