Freedom has always been fought after and yet, freedom has always been misunderstood. With freedom come some liberties and some restrictions. A common example to differentiate between the intended and unintended meanings of Freedom is ‘free as in freedom of Speech’ and ‘free as in free beer’ respectively. The same confusion has also plagued software, particularly the term ‘Free Software’. The reason can be attributed to the absence of a well laid out definition of freedom. To overcome this and to avoid the unnecessary repercussions ensuing from this confusion, ‘Open Source Initiative’ was born.
History
The story of Open Source software (OSS) is fairly as old as computers. The codes were developed and distributed among coders with a feeling of openness and co-operation in the era of 1950s and 60s. Free software or more suitably libre (with fewer or no restrictions) was the only thing that existed before proprietary software grabbed spotlight. When the first IBM and other commercial computers appeared, the software bundled with them was libre, such that people could freely redistribute and modify the software. However, with the unbundling of the software from the IBM systems in 1960s, the concept disappeared.
In 1970s and 80s, two parallel developments surfaced on the east and west sides of the US. On the east was Richard Stallman launching the GNU project and the ‘Free Software Foundation’ while on the west was Computer Science Research Group in University of California, improving UNIX systems into BSD Unix which was later released under BSD License, one of the first Open Source licenses. Another strong open source software ‘TeX’ was developed under Donald Knuth. Over the years, open source software continued to develop in several groups that were distinct and distant from each other. Internet and USENET coordinated these efforts which led to more rapid advances. X Windows system was one of the first OSS to be funded by a group of companies.
By 1992, the whole scenario around OSS was set to change with two major events. First, Bill Joltz released 386BSD which was free of the AT&T copyrighted code and could run on i386-class machines and further evolved into NetBSD, FreeBSD and OpenBSD. Second, Linus Torvalds was busy implementing the first Linux kernel which is still going strong. Many high quality application based OSS were developed in late 90s which are still very popular. These include ‘www’ server ‘Apache’ which still holds more than 60% of market share in its segment, interpreted language ‘Perl’, GNOME and KDE, Netscape’s Mozilla. The Open Source Initiative was formed from a chain of events starting from a paper published by Eric Raymond titled ‘The Cathedral and the Bazaar’, in which he described and compared the software development models. The label ‘Open Source’ was coined in a strategy session on 3rd February, 1998 in Palo Alto.
What Open Source means?
Open Source software, in layman’s terms is software for which the source code is open and available to everyone. However, if the scope of Open Source software were to be limited to just a single line, it wouldn’t have created ripples in times like today. OSS has been defined with most of its provisions that makes it stand apart from ‘Free’ and ‘proprietary’. These definitions have been adapted from the Debian Free Software guidelines mainly, by Bruce Perens. The following provisions have been made in the guidelines of Open Source Software License:
1. Free Distribution: Any party may give away the software as standalone or as a part of a larger aggregate distribution and no royalty or any kind of fees may be charged for it.
2. Source Code: It should be included in both source code as well as compiled form. If direct distribution of the source code is not possible in the bundle, it should be available over publicized channels like internet.
3. Derived Works: The user of OSS is allowed to modify the software and develop derived works from it which shall be distributed under the same license as the original software.
4. Integrity of Author’s Source Code: The distribution of a modified code may be forbidden by license in explicit form, but would be allowed as ‘patch files’ along with the source code which are integrated during compilation optionally. If the license explicitly allows direct code modification, then a different name or version number use is advocated.
5. No Discrimination: The license shall not discriminate against any kind of individual or group or any field where the software might find use. Also, the software should not be dependent on a particular software distribution, nor should it place any restriction or compulsion on use of other technology.
6. Distribution of License: The rights associated with the license shall automatically be applicable to all the parties receiving it without the need of any additional licenses.
As stated in the guidelines, an OSS may be given away for free. Thus alternate channels for the inflow of funding have emerged.
1. Consultancy: The software may be developed as a consultancy project where money has been put in by users with prioritized objectives needed from the project.
2. Proprietary Add-On: The initial software may be distributed freely with a supportive framework. But some proprietary add-ons like libraries may be charged in the form of subscription or one-time payment models.
3. University Funded: These are different from consultancy projects as these are approved and funded by universities for their students as personal projects or for scientific research, for example, Berkeley Software Distribution (BSD).
4. Company Funded: Company may deploy developers on OSS projects which would be useful for the infrastructure of the company as shared public utility like bug fixes.
However, most of the Open Source projects are developed by volunteering developers from different parts of the world, relying mainly on other existing open source software for support. For example, Concurrent Versions Systems (CVS) and SVNs help centrally manage source code files, central repositories on the web like SourceForge for easy access and debuggers like Bugzilla.
Difference between Free & Open Source
OSS has often been confused with Free Software and hence many businesses had relegated it as anti-commercial in the past. It however is not so. The differences lay in the philosophy behind each type. While Free Software is based around an ethical question, open source software is more of a practical question. Free Software Movement considers non-free software as a social problem. Both the versions basically try to work on the same problem with different fields of emphasis. While the Free Software arguments work well on a hacker’s level, Open Source’s arguments seem to work on company level. Though OSS derives many of its values from free software, it also allows more flexibility by allowing licenses which is considered restrictive to the users in case of Free Software. This does not mean that free software means something a user might get on zero price but means software which gives certain freedoms to the user, similar to OSS.
Open Source v/s Closed Source
OSS has been in direct competition with the Proprietary software which is ‘Closed Source’. In case of the OSS, the user gains the right to grant the license further, whereas in case of a closed source, he merely gets the right to use it. The source code of closed source software is considered to be a trade secret and money is made with each copy sold. On the other hand, OSS may be distributed freely, but the support services may be chargeable. The Closed Source group presses the point that OSS is available for exploitation to people with malicious intent. To counter this, Open Source supporters argue that this also opens up the software for rapid patching whereas in case of closed source, the security is through obscurity which is also prone to failures.
The licensing theory of OSS lays out that when the author develops the code, he automatically owns the copyright of that work and also the right to grant a license. When he grants the license to somebody, he is actually granting permission to use his copyrights. In case of violation, the licensee might just own a copy of the work and hold no copyright to distribute or modify it. The contribution of code to a project may be under explicit licensing like the Apache Contributor License Agreement or implicit like the open source license. Some examples out of more than 1400 unique licenses include GNU GPL, MIT License, Eclipse Public License, Mozilla Public License etc.
With so many licenses in the market, it is often very difficult to understand the bindings and liberties provided in each license while choosing the right kind of license. There isn’t any guarantee that the project reaches a deployable stage, it is quite possible that it dies out before. Mozilla Firefox is a vague example of uncertainty as it took more than a year to build the first beta. This happens specially when there is no firm backing behind the project. There are issues related with intellectual properties, since most countries do not consider algorithms for patents. Though some countries have started making reforms in this matter and also the open source community has started addressing this issue with patches which disable patented code. There isn’t much publicity or advertising for the open source projects that are not being funded. There are only a few aggregation points for open source software that too are either known to only a few or are too specific. Yet, these are considered disadvantages only when compared against the structured format of development of proprietary software.
Advantages
OSS offers many delicacies on its plate too. The availability of the source code allows endless scope for fine tuning. Due to openness and a wide consumer base, out of which many would be developers themselves, detection and debugging time is greatly reduced. Various problems prevalent in proprietary software can be overcome using OSS. Users have to rely on vendors to release updates which might be stopped at any time, due to various reasons like obsoleteness. On the other hand, support for the open source software can be developed by anyone willing to, in case the previous group decides to let it pass. Since the whole code is available and obfuscated code is not allowed in the license terms, black box obscurity in the code is not possible. Even the proprietary vendors have started taking cues from open source by a concept called ‘forking’ where there can be a stable version and an experimental (beta) version which is released before for the willing users to try and report bugs. The developers do not have any deadlines to comply with. Under considerable time limits, the code developed by a rested mind is expected to have lesser bugs. On an organizational level, open source software has advantages like reliability, stability, auditability, cost effectiveness, freedom and flexibility and support.
0 comments:
Post a Comment