WHAT IS CONCEPTS OF OPEN SOURCE SOFTWARE
Open Source Software is a computer software which is available along with the source code and software license that permits the code to be
studied, modified and improved. It is often developed in public and collaborative manner.
The free software philosophy formulated by Richard M. Stallman in 1983, historically preceded the open source movement by a decade and provided some of the key technological, legal and ideological foundations of the open source movement.
The best-known philosophers of the free software movement besides Richard Stallman are Eric Raymond, Bruce Perens, and Eben Moglen.
Open source development, follows the model of the bazaar. In an open source development model, roles are not clearly defined. The best features and functionality evolve into popular use much as good ideas evolve into popular use in the marketplace of ideas. Development is a collaborative process, resources are not scarce, and no one person or organization directs the project. The users are treated like co-developers and so they should have access to the source code of the software.
The Open Source Initiative (OSI) was formed in 1998 with a mission to harmonize the workings of the free software movement and commercial software development. The purpose of the OSI was to ―build bridges among different constituencies in the open-source community.‖
The OSI is the organization responsible for certifying software licenses as open source licenses. Its website (www.opensource.org) gives a list of all the certified licenses in existence. OSI previously certified almost any license agreement that fit the open source definition. However, recently it announced a change in policy that requires any newly certified license agreement not only to fit the open source definition but also to be substantially different from existing certified licenses.
This is a part of the ―nonproliferation‖ movement in open source.
Free Software Definition
The Free software definition is based on the following four freedoms:
1. The freedom to run the program, for any purpose.
2.
|
The freedom to study how the program works, and adapt it to your needs.
|
3. The freedom to redistribute copies so you can help your neighbor.
4. The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
Open Source Definition
The other definition is the Open source definition promulgated by OSI. This broader definition includes permissive software licenses. The elements are:
Free redistribution
Source code available
Derivative works permitted
Integrity of the author's source
No discrimination against persons or groups
No discrimination against fields of endeavor
Distribution of license with derivative works
License must not be specific to a product
License must not restrict use of other software
License must be Technological-natural
Open Source Development Model
The Open source development model is a collaborative model. It anticipates the participation of many developers in the development of a single product or module. Theoretically, any open source project can have hundreds or thousands of contributors. In practice, however, this is rarely the case. Most open source projects are relatively small, involving the work of one contributor or a small number of contributors. Some open source projects, such as Linux or Apache, are very large development projects. Nevertheless, although they may have many contributors, these projects have a small number of gatekeepers, or ―committers,‖ who decide what contributions will be checked in to the official source tree.
In this sense, the model is not a pure model of the bazaar. It is more like a free market with a specialist's desk. In well-known open source projects, these gatekeepers include some of the most respected computer scientists in the world. The gatekeeper decides which modifications to be included in the source tree, based on technical considerations, including security and stability of the code and compatibility with other technology, and the desires of the community at large on issues such as features and functionality.
The most popular open source utility used by the gatekeeper is the Concurrent Versioning System (CVS), which is licensed under GPL. A revision control system allows only designated persons to check code into the source tree. It also
keeps track of published versions, what was added, changed, or deleted and when,
|
and who made the change; it further helps reconcile conflicting changes.
|
The main features of Open Source development model are:
|
Users should be treated as co-developers
|
The users are treated like co-developers and so they should have access to the
|
source code of the software.
|
Early releases
|
The first version of the software should be released as early as possible so as to
|
increase one's chances of finding co-developers early.
|
Frequent integration
|
Code changes should be integrated (merged into a shared code base) as often as
|
possible so as to avoid the overhead of fixing a large number of bugs at the end of
|
the project life cycle. Some open source projects have builds where integration is
|
done automatically on a daily basis.
|
Several versions
|
There should be at least two versions of the software. There should be a buggier
|
version with more features and a more stable version with fewer features. The
|
buggy version (also called the development version) is for users who want the
|
immediate use of the latest features, and are willing to accept the risk of using
|
code that is not yet thoroughly tested. The users can then act as co-developers,
|
reporting bugs and providing bug fixes.
|
High modularization
|
The general structure of the software should be modular allowing for parallel
|
development on independent components.
|
Dynamic decision making structure
|
There is a need for a decision making structure, whether formal or informal, that
|
makes strategic decisions depending on changing user requirements and other
|
factors.
|
Most well known open source software products follow the bazaar model as
|
suggested by Eric Raymond. These include projects such as the Linux kernel,
|
Open Source Licensing
License defines the rights and obligations that a licensor grants to a licensee. Open Source licenses grant licensees the right to copy, modify and redistribute source code (or content). These licenses may also impose obligations (e.g., modifications to the code that are distributed must be made available in source code form; an author attribution must be placed in a program/ documentation using that Open Source, etc.).
All open source licenses, by definition, freely allow the licensee to exercise all of the rights of copyright with respect to the licensed software. Some open source software licenses contain explicit license grants, and some contain implicit ones.
All open source licenses contain broad warranty disclaimers and limitations of liability. Most also include disclaimers of any license grant under any trademark of the licensor—not that any such grant would necessarily be implied in the first place.
When an author contributes code to an Open Source project (e.g., Apache.org),he/she does so under an explicit license (e.g., the Apache Contributor License Agreement) or an implicit license (e.g., the Open Source license under which the project is already licensing code). Some Open Source projects do not take contributed code under a license, but actually require (joint) assignment of the author's copyright in order to accept code contributions into the project (e.g.,
OpenOffice.org and its Joint Copyright Assignment agreement).
Placing code (or content) in the public domain is a way of waiving an author's (or owner's) copyrights in that work. No license is granted, and none is needed, to copy, modify or redistribute a work in the public domain.
Examples of free software license / open source licenses include Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.
Check Your Progress – 1
1. Give the names of a few Open Source Software applications ?
List of a few Open Source software applications are:
Web Browsing – Mozilla Firefox
Instant Messaging – Pidgin
Operating System – GNU/Linux
Email – Mozilla Thunderbird
Word Processing – OpenOffice.org
Graphics – Paint.NET
FTP - Filezilla
2. What are the advantages of using Open Source Software ?
The advantages of using Open Source Software are:
The core software being free, using open source software reduces the total ownership cost for any organization
As new changes and evoluion is a constant process for Open Source
Software, new upgraded versions of the software are available.
The organization doesn't have to be dependent on any particular vendor as in case of commercial software for support and assistants. Help is easily available on the internet for troubleshooting
If necessary ,it is easier to customize and make modifications in the source code for Open Source Software
3. How is the Open Source Code maintained with the developers
distributed across geographical regions ?
Revision control systems such as Concurrent Versions System (CVS) are used to track and centrally manage the source code files and changes made in the open source software.
4. Give name of other industries besides software, where the concept of Open Source is being implemented ?
The different industries where Open Source concept is being practiced are:
Electronics: Open Source Hardware where the initial specifications are published and made available so that the hardware and the source code can redistributed without paying royalty or fees E.g.: SUN Microsystems's
OpenSPARC T1 Multicore Processor.
Beverages: Here the recipe is open source unlike other corporations producing beverages where the recipe is a closely guarded secret. E.g.: OpenCola
Digital Content: Sites such as Wikipedia and Wiktionary where the content remains free to re-use and the source documents are readily made available to those interested and changes are accepted back into the system.
Robotics: Here the blueprints, schematics and source code are released under the open source model.
|
No comments:
Post a Comment