Linux User Group of Mauritius Promoting open source software in our beautiful island

1May/030

Open source versus proprietary software

Posted by Avinash Meetoo

20030501-gnu-logo

Abstract

The purpose of this article is to make an unbiased and objective comparison of open source and proprietary software. For the sake of argument, the Linux operating system will be taken as an example of open source software while the Windows operating system will be an example of proprietary software. Both short-term and long-term issues will be examined with a view of providing enough data for someone to be able to make an informed decision between these two software families.

Introduction

The terms of use of either an open source software (OSS) or a proprietary software (PS) are clearly stated by its license. The exact definition of an open source license (OSL) can be found on the Open Source Initiative website. It should be noted that most open source softwares are under the GNU Public License including the Linux operating system.

On the other hand, there is not an exact definition of proprietary license (PL). My personal stance is to consider that if a license is not open source then it is proprietary. More concretely, if the license associated with a software is not in conformity with at least ONE of the terms defined by the Open Source Initiative, then the license is proprietary. The Microsoft Windows 98 Second Edition End-User License Agreement will be taken as an example of a proprietary license.

Methodology of the comparison

Being readily available, the comparison will be based on each term of the Open Source Initiative's definition of an Open Source license. An interpretation will be made regarding Linux. This will be followed by investigating whether an equivalent term exist in the Microsoft End-User License Agreement.

The comparison: Redistribution

``The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.'' [OSI] In other words, an OSS can be given for free. For example, installing Linux on several hundred computers does not cost anything. On the other hand, installing Windows requires the payment of a fee for each and every installation. It can be argued that Microsoft can also decide to give copies of Windows freely. But, in the long run, when upgrading Windows to a newer version (which comes out about every two years), fees will have to be paid given that Microsoft is a commercial entity whose main objective is to make profits by selling Windows and other proprietary software.

The comparison: Source Code

``The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost - preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.'' [OSI] The source of a program describes its inner working, allows one to be sure that no hidden (and potentially dangerous) feature exists, lets other programmers (or students) learn by example and, most important, allows one to correct and modify the software. This "opening" of the software is the most distinguishing feature of OSS. For instance, the Linux operating system is about 4,700,000 lines of industrial quality C code. Someone learning to build an operating system or enhancing one only has to look at those lines of code. In the same way, a paranoiac system administrator can read the code and convince herself that Linux is not harmful in any way. This is the ultimate empowerment of the final user.

On the other hand, Windows is distributed without its source code and, therefore, it is absolutely impossible to learn how it is done, audit it for maximum security, correct errors or improve it. It is impossible for our paranoiac system administrator to be 100% sure that she is not introducing a major vulnerability in her network when installing a new version of Windows. It is also absolutely impossible for a motivated student to learn how Windows is internally built.

A very important consequence is that whenever a defect is detected in Windows, it is only Microsoft (the sole owner of the source code) who can correct it. And if Microsoft decides that the error is not worth correcting, it will remain in all subsequent versions of Windows.

The comparison: Derived Works and Integrity of The Author's Source Code

``The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.'' [OSI]

``The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.'' [OSI] This is a direct consequence of the fact that the source code of an OSS can readily be obtained. All modifications, either correction or additions, must always remain open source. That is, someone is not permitted to take Linux, change it in some minute way and sell it under a proprietary license. Obviously, this is what has permitted the open source community to prosper. ``Secondly, an open source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, "unofficial" changes can be made available but readily distinguished from the base source.'' [OSI]. In other words, there must be a way to distinguish between the original work and the derived work (so that the final user has the possibility to choose which one to use).

Windows, being distributed without its source code, does not, obviously, allow for derived works.

The comparison: No Discrimination Against Persons or Groups

``The license must not discriminate against any person or group of persons.'' [OSI] An open source software can be used by any person irrespective of nationality, ethnic group, economic group or religious group. This might seem natural but one only has to look at the Microsoft End-User License Agreement to find that Windows cannot be used by certain groups of people :

``You agree that you will not export or re-export the software product to any country, person, or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the software product :

(i) to any country to which the U.S. has embargoed or restricted the export of goods or services, which as of March 1999 include, but are not necessarily limited to Cuba, Iran, Iraq, Libya, North Korea, Sudan and Syria, or to any national of any such country, wherever located, who intends to transmit or transport the software product back to such country ;'' [MIC] What is surprising is that the distributor of Windows is the one responsible for enforcing U.S. export restrictions. One question arises : what happens if a country decides to choose Windows and then afterward gets on the black list of the U.S.A. ?

The comparison: No Discrimination Against Fields of Endeavor

``The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.'' [OSI] An open source software can be used by someone working in any field whatsoever. On the other hand, Windows cannot be used in the following fields of endeavour :

``You agree that you will not export or re-export the software product to any country, person, or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the software product :

[...]

(ii) to any person or entity who you know or have reason to know will utilize the software product or portion thereof in the design, development or production of nuclear, chemical or biological weapons ;'' [MIC] This seems to be sensible until one considers that doing research in the fields of nuclear, chemical or biological weapons is what many top U.S. scientists have been doing for decades... One, therefore, cannot see the rationale behind such arguments.

The comparison: Distribution of License

``The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.'' [OSI] This implies that every redistribution of an open source software must remain open source. ``This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement.'' [OSI] On the other hand, Windows is distributed with a ``closed'' license which, basically, give you the right to have no rights...

The comparison: Additional requirements

There exist some additional requirements for a license to be open source :

The license must not be specific to a product. That is, the rights attached to the software must not depend on the program's being part of a particular software distribution. [OSI] The license must not restrict other software. This implies that an open source software can be distributed with other types of softwares (be them open source or not). OSI 02 The license must be technology-neutral. This indicates that the software be available through all classical modes of distribution (CD, HTTP, FTP...) [OSI]

Conclusion

Both open source and proprietary software exist. And they mostly work as expected. But, freedom of use, of redistribution and of modification really exists only in the case of open source software.

For this reason, my recommendation is to always choose an open source version of a software over a proprietary and closed alternative.

My recommendation is therefore to choose Linux over Windows.

Copyright Avinash Meetoo | Published under the Gnu Free Document License