Click Here For PDF Format of Document
 
  
Document ID: Ax/OpnSrc/wp/0003
Document Version: 1.1
Author: Kiran K.J./Arun Dwajan
Date: April 4,2002
Property of: Axxonet Solutions India Private Ltd.
Document Type: White Paper
Reviewed by: Pradeep Sukumar

 

Open Source

 
  

Definition of Free Software

Free Software refers to software distributed in source form that can be freely modified and redistributed, or freely modifiable and redistributable software. It does not refer to zero-cost software. This usage of the name "Free Software" was common in the Unix world and recently introduced to the general computer community. Free Software is also referred to as Freed Software, Liberated Software (software libre) and (most commonly) Open Source software. "Open Source" is a marketing name for Free Software, recently coined to overcome the confusion over the word "free" in the English language. Open Source refers to the fact that the source code of Free Software is open to and for the world to take, to modify and to reuse.

 
  

Definition of Open Source

Open source does not just mean access to the source code. The distribution terms of an open-source program must comply with the following criteria:

 
  

Note:
Open Source Definition is not itself software license. It is a specification of what is permissible in a software license for that software to be referred to as Open Source. To be Open Source, all of the terms below must be applied together, and in all cases.

 
  
Free Redistribution

The license may 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 may not require a royalty or other fee for such sale.

This means that a person can make any number of copies of the software, and sell or give them away, and they do not have to pay anyone for that privilege.

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 downloading the source code, without charge, via the Internet. 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.

Source code is a necessary preliminary for the repair or modification of a program. The intent here is for source code to be distributed with the initial work, and all derived works.

Derived Works

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.

Software has little use if a person cannot maintain it (like fix bugs, port to new systems, make improvements), and modifications are necessary for maintenance. The intent is for modification of any sort to be allowed. It must be allowed for a modified work to be distributed under the same license terms as the original work. Various licenses speak differently on this subject - the BSD license allows a person to take modifications private, while the GPL does not.

Integrity of the Author's Source Code

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.

No Discrimination Against Persons or Groups

The license must not discriminate against any person or group of persons.

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.

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.

License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

License Must Not Contaminate Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.

A version of GhostScript (a PostScript rendering program) requires that the media on which it is distributed contain only free software programs. This is not permissible for Open Source licenses. Fortunately, the GhostScript author distributes another (somewhat older) version of the program with a true Open Source license.

Note that there is a difference between derivation and aggregation. Derivation is when a program actually incorporates part of another program into itself. Aggregation is when you include two programs on the same CD-ROM.

Example Licenses

The GNU GPL, BSD, X Consortium, and Artistic licenses are examples of licenses that we consider conformant to the Open Source Definition. So is the MPL.

The following are some well known Free /Open Source Software

Operating System

  • Linux(GNU/Linux)
  • FreeBSD OpenBSD NetBSD
  • GNU/Hurd

General Utilities

  • GNU Utilities

Languages

  • GNU C/C++
  • Perl
  • Python
  • TCL

Windowing Systems

  • X Window System
  • XFree86

Desktop Environments

  • GNOME
  • KDE
  • GNUStep
  • XFce

Web Browsers

  • Mozilla(Netscape 6)

Productivity Applications

  • ABI Word
  • GNU Image Manipulation program

Office Suites

  • Open Office
  • KOffice

Server-Type Software

  • Samba
  • Apache
  • PhP
  • Zope

Database

  • MySQL
  • PostgreSQL
 
  

Reasons for open source development

The reason for the development of open source should be viewed from both at the organization perspective and from the developer's perspective.

The fact that open source software is 'free' might discourage many people contributing to the free software development. The fact that might have been missed is that even though the software is free there are still ways of making money from it. For instance, the support and documentation of open source software might not be free. In this way, a company can still expect some returns for their work. One advantage that is clearly visible in the above instance is that the quality of the software can be vastly improved. Since there are no boundaries for enhancements, the product is constantly improving with time. The company then incurs lower overhead because of unpaid, outsourced work and is closer to customers who use the product. Many of the programmers are actual users of the product, so they have a stake in making the product the best it can be. In this situation, everybody contributes to produce a higher quality product than could have been produced independently.

 
  

Security with Open Source

The major concern with open source is the security concerns linked with it. The fact that desktop systems are vulnerable to intrusions is not new. This has been a major concern since the advent of the Internet. Open source can be hazardous if not adequately controlled. Hence there should be proper governing and checking to ensure the minimal occurrence of such acts.

Open source has an added edge when compared to closed systems in the security perspective. This is because many of the security loopholes may not be noticed for fixes. But one thing that might be against open source is that security issues are not one-time affairs and needs constant monitoring and dedicated work, which may not be available for open source software.

 
  

Advantages of Open-Source

TOne of the major advantages of open-source is the very fact that it is free.

Problems with Closed Source

Closed source software has several fundamental flaws. The nature of closed source is such that the internals of the program is intentionally hidden from the user. This software hoarding hurts the user by forcing them to be at the mercy of the vendor and disallowing them from modifying the program to suit their own needs. This monopolistic paradigm is defeated with open source, where anybody can use or change the software for their own needs.

"If builders built houses the way programmers built programs, the first woodpecker to come along would destroy civilization." -- Gerald Weinberg

By not releasing the source code, a company can hide security holes and fundamental flaws from the users. The software vendor is completely in control of the product. Gerald Weinberg's above quote points out the fact that most commercial software is poorly engineered and not subject to peer review. With open source, more people see the code and find and stop problems before they hurt anything.

Development Advantages

With many open source projects, a virtual community of developers grows around the software. The company then incurs lower overhead because of unpaid, outsourced work and is closer to customers who use the product. Many of the programmers are actual users of the product, so they have a stake in making the product the best it can be. In this situation, everybody contributes to produce a higher quality product than could have been produced independently. A much broader market is developed, since, not only well established organizations but students, small businesses, and developing nations can afford the free software.

More Programmers Are better

One would think that by having more programmers, a piece of software could be created faster and better. However, Brooks' Law of Software Engineering indicates that as the number of programmers rises linearly, bugs rise exponentially in traditional programming environments. However, with most Open Source projects, this does not happen. The best theory for this is that because of the distributed nature of the Internet, coordination and modularity of software was a requirement. Also, Linus's Law of Software Engineering states, "Given enough eyeballs, all bugs are shallow," meaning that the more people you have looking at a piece of code, the more likely one of them is to find a bug before it gets to be a major problem. The fundamental positive externality is simply better code and better programs.

Other Concerns with Open Source

One of the restrictive notion for open source development is that some one else forking an organization ideas and work. But in the open source market it is always the first distributor who heads the list of support providers. Also, the organization has access to the modified code and thus a provision of betterment of its products.

 
  

Role of Axxonet Solutions

Axxonet is actively involved in many of the open source software development initiatives present in the industry. Axxonet has been using many of the open source tools for real time development successfully.

Axxonet is playing an important role in promoting the open source tools among the software fraternity by providing high quality services to its clients. The widely popular operating system such as 'Linux' has been extensively used as the development platform for customer projects. Axxonet has been actively involved in giving cost effective solutions to clients who wish to migrate from Microsoft platform and products. Database tools such as 'postgres', web-servers such as 'jakarta-tomcat ' are being extensively used in most of the development work.

Axxonet is working on and using several open source tools on Linux to successfully execute client projects. Clients have been impressed with the performance of our solutions and the cost benefits they realize. This disproves many fears associated with the reliability of 'OpenSource' tools and products.

Any glitches in the tools have been reported to the open source community and appropriate changes have been made to the tools enhancing the robustness of the tool. For example, Axxonet Solutions was deeply involved in work around of 'ARSDigita' an open source project by MIT, and has been contributing to the development of the project by fixing the bugs and mailing the bugfixes to the open source community. Moreover many of software applications are available as demo-versions on the Linux platform and these have been effectively used to build in-house skills, on applications such as Websphere, as well as preparing client demonstrations.

 
  

Conclusion

The advantages of open source clearly make it the solution of the future. This is because everybody in the tree of the open source network stand to have significant benefits. This also aids the learning process of students and engineers who can have access to professional code without having to worry about the cost factors attached with it.

  © 2000 Axxonet Solutions India.