Open source software (
OSS) is
computer software with its
source code made available and licensed with an
open source license in which the
copyright
holder provides the rights to study, change and distribute the software
to anyone and for any purpose. Open source software is very often
developed in a public,
collaborative manner. Open source software is the most prominent example of
open source development and often compared to (technically defined)
user-generated content or (legally defined)
open content movements.
[1]
A report by the Standish Group states that adoption of open source
software models has resulted in savings of about $60 billion per year to
consumers.
[2][3]
History
The
free software movement
was launched in 1983. In 1998, a group of individuals advocated that
the term free software should be replaced by open source software (OSS)
as an expression which is less ambiguous and more comfortable for the
corporate world.
[4] Software developers may want to publish their software with an
open source license,
so that anybody may also develop the same software or understand its
internal functioning. With open source software, generally anyone is
allowed to create modifications of it, port it to new operating systems
and processor architectures, share it with others or, in some cases,
market it. Scholars Casson and Ryan have pointed out several
policy-based reasons for adoption of open source, in particular, the
heightened value proposition from open source (when compared to most
proprietary formats) in the following categories:
- Security.
- Affordability.
- Transparency.
- Perpetuity.
- Interoperability.
- Localization—particularly in the context of local governments (who
make software decisions). Casson and Ryan argue that "governments have
an inherent responsibility and fiduciary duty to taxpayers" which
includes the careful analysis of these factors when deciding to purchase
proprietary software or implement an open source option.[5]
The
Open Source Definition,
notably, presents an open source philosophy, and further defines the
terms of usage, modification and redistribution of open source software.
Software licenses grant rights to users which would otherwise be
reserved by copyright law to the copyright holder. Several open source
software licenses have qualified within the boundaries of the
Open Source Definition. The most prominent and popular example is the
GNU General Public License
(GPL), which "allows free distribution under the condition that further
developments and applications are put under the same licence", thus
also free.
[6]
While open source distribution presents a way to make the source code
of a product publicly accessible, the open source licenses allow the
authors to fine tune such access.
The
open source label came out of a strategy session held on April 7, 1998 in
Palo Alto in reaction to
Netscape's January 1998 announcement of a source code release for
Navigator (as
Mozilla). A group of individuals at the session included
Tim O'Reilly,
Linus Torvalds, Tom Paquin,
Jamie Zawinski,
Larry Wall,
Brian Behlendorf,
Sameer Parekh,
Eric Allman, Greg Olson,
Paul Vixie,
John Ousterhout,
Guido van Rossum,
Philip Zimmermann,
John Gilmore and
Eric S. Raymond.
[7]
They used the opportunity before the release of Navigator's source code
to clarify a potential confusion caused by the ambiguity of the word
"free" in
English.
Many people claimed that the birth of the
Internet, since 1969, started the open source movement, while others do not distinguish between open source and free software movements.
[8]
The
Free Software Foundation (FSF), started in 1985, intended the word "free" to mean
freedom to distribute (or "free as in free speech") and not
freedom from cost
(or "free as in free beer"). Since a great deal of free software
already was (and still is) free of charge, such free software became
associated with zero cost, which seemed anti-commercial.
The Open Source Initiative (OSI) was formed in February 1998 by Eric
S. Raymond and Bruce Perens. With at least 20 years of evidence from
case histories of closed software development versus open development
already provided by the Internet developer community, the OSI presented
the 'open source' case to commercial businesses, like Netscape. The OSI
hoped that the usage of the label "open source," a term suggested by
Peterson of the
Foresight Institute
at the strategy session, would eliminate ambiguity, particularly for
individuals who perceive "free software" as anti-commercial. They sought
to bring a higher profile to the practical benefits of freely available
source code, and they wanted to bring major software businesses and
other high-tech industries into open source. Perens attempted to
register "open source" as a
service mark for the OSI, but that attempt was impractical by
trademark
standards. Meanwhile, due to the presentation of Raymond's paper to the
upper management at Netscape—Raymond only discovered when he read the
Press Release,
and was called by Netscape CEO Jim Barksdale's PA later in the
day—Netscape released its Navigator source code as open source, with
favorable results.
The Open Source Definition
The
Open Source Initiative's definition is widely recognized as the standard or
de facto definition.
[citation needed]
Raymond and Perens formed the organization in February 1998. With about
20 years of evidence from case histories of closed and open development
already provided by the Internet, OSI continued to present the "open
source" case to commercial businesses. They sought to bring a higher
profile to the practical benefits of freely available source code, and
wanted to bring major software businesses and other high-tech industries
into open source.
OSI uses
The Open Source Definition to determine whether it considers a software license open source. The definition was based on the
Debian Free Software Guidelines, written and adapted primarily by Bruce Perens.
[9][10][11] Perens did not base his writing on the "four freedoms" of Free Software from the FSF, which were only widely available later.
[12]
Under Perens' definition, open source describes a broad general type
of software license that makes source code available to the general
public with relaxed or non-existent copyright restrictions. The
principles, as stated, say absolutely nothing about trademark or
patent use and require absolutely no cooperation to ensure that any common
audit or
release
regime applies to any derived works. It is an explicit "feature" of
open source that it may put no restrictions on the use or distribution
by any organization or user. It forbids this, in principle, to guarantee
continued access to derived works even by the major original
contributors.
Proliferation of the term
Main article:
Open source
While the term "open source" applied originally only to the source code of software,
[13] it is now being applied to many other areas such as
Open source ecology,
[14]
a movement to decentralize technologies so that any human can use them.
However, it is often misapplied to other areas which have different and
competing principles, which overlap only partially.
Non-software use
The principles of open source have been adapted for many forms of
user generated content and technology, including
open source hardware,
Wikipedia, and
open access publishing.
Supporters of the open content movement advocate some restrictions of use, requirements to share changes, and
attribution to other authors of the work.
This "culture" or
ideology
takes the view that the principles apply more generally to facilitate
concurrent input of different agendas, approaches and priorities, in
contrast with more centralized models of development such as those
typically used in commercial companies.
[15]
Business models
There are a number of commonly recognized barriers to the adoption of
open source software by enterprises. These barriers include the
perception that open source licenses are
viral,
lack of formal support and training, the velocity of change, and a lack
of a long term roadmap. The majority of these barriers are
risk-related. From the other side, not all proprietary projects disclose
exact future plans, not all open source licenses are equally viral and
many serious OSS projects (especially operating systems) actually make
money from paid support and documentation.
A commonly employed
business strategy of commercial open source software firms is the
dual-license Strategy, as demonstrated by
Ingres,
MySQL,
Alfresco, and others.
Another business strategy could be adapted from existing Internet
micro-payments systems including
flattr and
paypal.
Widely used open source products
Open source software projects are built and maintained by a network
of volunteer programmers. Prime examples of open source products are the
Apache HTTP Server, the e-commerce platform
osCommerce and the internet browser
Mozilla Firefox. One of the most successful open source products is the
GNU/Linux operating system, an open source
Unix-like operating system, and its derivative
Android, an operating system for mobile devices.
[16][17] In some fields, open software is the norm, like in
voice over IP applications with
Asterisk (PBX).
Development philosophy
In his 1997 essay
The Cathedral and the Bazaar,
[18] open source evangelist Eric S. Raymond suggests a model for developing OSS known as the
bazaar
model. Raymond likens the development of software by traditional
methodologies to building a cathedral, "carefully crafted by individual
wizards or small bands of mages working in splendid isolation".
[18]
He suggests that all software should be developed using the bazaar
style, which he described as "a great babbling bazaar of differing
agendas and approaches."
In the traditional model of development, which he called the
cathedral
model, development takes place in a centralized way. Roles are clearly
defined. Roles include people dedicated to designing (the architects),
people responsible for managing the project, and people responsible for
implementation. Traditional software engineering follows the cathedral
model.
Fred P. Brooks in his book
The Mythical Man-Month
advocates this model. He goes further to say that in order to preserve
the architectural integrity of a system, the system design should be
done by as few architects as possible.
The bazaar model, however, is different. In this model, roles are not clearly defined. Gregorio Robles
[19] suggests that software developed using the bazaar model should exhibit the following patterns:
- 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. Furthermore users are
encouraged to submit additions to the software, code fixes for the
software, bug reports, documentation etc. Having more co-developers
increases the rate at which the software evolves. Linus's law
states, "Given enough eyeballs all bugs are shallow." This means that
if many users view the source code, they will eventually find all bugs
and suggest how to fix them. Note that some users have advanced
programming skills, and furthermore, each user's machine provides an
additional testing environment. This new testing environment offers that
ability to find and fix a new bug.
- 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 nightly 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. Cf. Extreme programming.
Data suggests, however, that OSS is not quite as democratic as the
bazaar model suggests. An analysis of five billion bytes of free/open
source code by 31,999 developers shows that 74% of the code was written
by the most active 10% of authors. The average number of authors
involved in a project was 5.1, with the median at 2.
[20]
Licensing
A 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).
Authors initially derive a right to grant a license to their work
based on the legal theory that upon creation of a work the author owns
the copyright in that work. What the author/licensor is granting when
they grant a license to copy, modify and redistribute their work is the
right to use the author’s copyrights. The author still retains ownership
of those copyrights, the licensee simply is allowed to use those
rights, as granted in the license, so long as they maintain the
obligations of the license. The author does have the option to
sell/assign, versus license, their exclusive right to the copyrights to
their work; whereupon the new owner/assignee controls the copyrights.
The ownership of the copyright (the "rights") is separate and distinct
from the ownership of the work (the "thing") - a person can own a copy
of a piece of code (or a copy of a book) without the rights to copy,
modify or redistribute copies of it.
When an author contributes code to an open source project (e.g.,
Apache.org) they do 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.
The proliferation of open source licenses is one of the few negative
aspects of the open source movement because it is often difficult to
understand the legal implications of the differences between
licenses.With more than 180,000 open source projects available and its
more than 1400 unique licenses, the complexity of deciding how to manage
open source usage within "closed-source" commercial enterprises have
dramatically increased. Some are home-grown while others are modeled
after mainstream FOSS licenses such as Berkeley Software Distribution
("BSD"), Apache, MIT-style (Massachusetts Institute of Technology), or
GNU General Public License ("GPL"). In view of this, open source
practitioners are starting to use classification schemes in which FOSS
licenses are grouped (typically based on the existence and obligations
imposed by the copyleft provision; the strength of the copyleft
provision).
[21]
An important legal milestone for the open source / free software
movement was passed in 2008, when the US federal appeals court ruled
that
free software licences
definitely do set legally binding conditions on the use of copyrighted
work, and they are therefore enforceable under existing copyright law.
As a result, if end-users do violate the licensing conditions, their
license disappears, meaning they are infringing copyright.
[22]
Funding
Unlike proprietary off-the-shelf software, which comes with
restrictive copyright licenses, open source software can be given away
for no charge. This means that its creators cannot require each user to
pay a license fee to fund development. Instead, a number of alternative
models for funding its development have emerged.
Software can be developed as a consulting project for one or more
customers. The customers pay to direct the developers' efforts: to have
bugs prioritized and fixed or features added. Companies or independent
consultants can also charge for training, installation,
technical support, or customization of the software.
Another approach to funding is to provide the software freely, but
sell licenses to proprietary add-ons such as data libraries. For
instance, an open source
CAD
program may require parts libraries which are sold on a subscription or
flat-fee basis. Open source software can also promote the sale of
specialized hardware that it interoperates with, as in the case of the
Asterisk telephony software, developed by a manufacturer of PC telephony
hardware.
Many open source software projects have begun as research projects
within universities, as personal projects of students or professors, or
as tools to aid scientific research. The influence of universities and
research institutions on open source shows in the number of projects
named after their host institutions, such as
BSD Unix,
CMU Common Lisp, or the
NCSA HTTPd which evolved into
Apache.
Companies may employ developers to work on open source projects that
are useful to the company's infrastructure: in this case, it is
developed not as a product to be sold but as a sort of shared public
utility. A local bug-fix or solution to a software problem, written by a
developer either at a company’s request or to make his/her own job
easier, can be released as an open source contribution without costing
the company anything.
[6]
A larger project such as the Linux kernel may have contributors from
dozens of companies which use and depend upon it, as well as hobbyist
and research developers.
Comparison with closed source
The debate over
open source vs.
closed source (alternatively called
proprietary software) is sometimes heated.
The top four reasons (as provided by Open Source Business Conference survey
[23])
individuals or organizations choose open source software are: 1) lower
cost, 2) security, 3) no vendor 'lock in', and 4) better quality.
Since innovative companies no longer rely heavily on software sales, proprietary software has become less of a necessity.
[24] As such, things like open source
content management system—or CMS—deployments are becoming more commonplace. In 2009,
[25] the US White House switched its CMS system from a proprietary system to
Drupal open source CMS. Further, companies like
Novell
(who traditionally sold software the old-fashioned way) continually
debate the benefits of switching to open source availability, having
already switched part of the product offering to open source code.
[26] In this way, open source software provides solutions to unique or specific problems. As such, it is reported
[27] that 98% of enterprise-level companies use open-source offerings in some capacity.
With this market shift, more critical systems are beginning to rely on open source offerings,
[28] allowing greater funding (such as
US Department of Homeland Security grants
[28]) to help "hunt for security bugs."
This is not to argue that open source software does not have its
flaws. One of the greatest barriers facing wide acceptance of open
source software relates to the lack of technical and general support.
[23] Open source companies often combat this by offering support sometimes under a different product name.
Acquia provides enterprise-level support for its open source alternative, Drupal, for instance.
[29]
Many advocates argue that open source software is inherently safer because any person can view, edit, and change code.
[30] But closed-source software—and some research
[31]—suggests that individuals that aren't paid to scrub code have no incentive to do the boring, monotonous work.
A study of the Linux source code has 0.17 bugs per 1000 lines of code
while proprietary software generally scores 20-30 bugs per 1000 lines.
[32]
Ajzen's
theory of planned behavior
explores the link between attitudes and behaviours. According to a
pilot study of organisations adopting (or not adopting) OSS; several
factors of statistical significance were observed in the manager's
beliefs in relation to (a) attitudes toward outcomes, (b) the influences
and behaviours of others and (c) their ability to act.
[33]
[edit] Comparison with free software
The main difference is that by choosing one term over the other (i.e. either "open source" or "
free software") one lets others know about what one's goals are. As
Richard Stallman puts it, "Open source is a development methodology; free software is a social movement."
[34]
Critics have said that the term "open source" fosters an ambiguity of
a different kind such that it confuses the mere availability of the
source with the freedom to use, modify, and redistribute it. Developers
have used the
alternative terms Free/open source Software (
FOSS), or
Free/Libre/open source Software (FLOSS), consequently, to describe open source software which is also
free software.
The term "open source" was originally intended to be trademarkable;
however, the term was deemed too descriptive, so no trademark exists.
[35]
The OSI would prefer that people treat open source as if it were a
trademark, and use it only to describe software licensed under an OSI
approved license.
[36]
OSI Certified is a trademark licensed only to people who are
distributing software licensed under a license listed on the Open Source
Initiative's list.
[37]
Open source software and free software are different terms for
software which comes with certain rights, or freedoms, for the user.
They describe two approaches and
philosophies towards free software.
Open source and
free software (or
software libre)
both describe software which is free from onerous licensing
restrictions. It may be used, copied, studied, modified and
redistributed without restriction. Free software is not the same as
freeware, software available at zero price.
The definition of open source software was written to be almost identical to the
free software definition.
[38]
There are very few cases of software that is free software but is not
open source software, and vice versa. The difference in the terms is
where they place the emphasis. "Free software" is defined in terms of
giving the user freedom. This reflects the goal of the free software
movement. "Open source" highlights that the source code is viewable to
all; proponents of the term usually emphasize the quality of the
software and how this is caused by the development models which are
possible and popular among
free and open source software projects.
Free software licenses are not written exclusively by the FSF. The
FSF and the OSI both list licenses which meet their respective
definitions of free software or open source software.
The FSF believes that knowledge of the concept of freedom is an essential requirement,
[38][39] insists on the use of the term
free,
[38][39] and separates itself from the open source movement.
[38][39]
Open source vs. source-available
Although the OSI definition of "open source software" is widely
accepted, a small number of people and organizations use the term to
refer to software where the source is available for viewing, but which
may not legally be modified or redistributed. Such software is more
often referred to as
source-available, or as
shared source, a term coined by Microsoft.
Michael Tiemann, president of OSI, had criticized
[40] companies such as
SugarCRM
for promoting their software as "open source" when in fact it did not
have an OSI-approved license. In SugarCRM's case, it was because the
software is so-called "
badgeware"
[41] since it specified a "badge" that must be displayed in the user interface (SugarCRM has since switched to
GPLv3[42]). Another example was
Scilab prior to version 5, which called itself "the open source platform for numerical computation"
[43] but had a license
[44]
that forbade commercial redistribution of modified versions. Because
OSI does not have a registered trademark for the term "open source", its
legal ability to prevent such usage of the term is limited, but Tiemann
advocates using public opinion from OSI, customers, and community
members to pressure such organizations to change their license or to use
a different term.
Pros and cons for software producers
Software experts and researchers on open source software have
identified several advantages and disadvantages. The main advantage for
business is that open source is a good way for business to achieve
greater penetration of the market. Companies that offer open source
software are able to establish an industry standard and, thus, gain
competitive advantage
[citation needed]. It has also helped build developer loyalty as developers feel empowered and have a sense of ownership of the end product.
[45]
Moreover less costs of marketing and logistical services are needed for
OSS. It also helps companies to keep abreast of all technology
developments. It is a good tool to promote a company's image, including
its commercial products.
[46] The OSS development approach has helped produce reliable, high quality software quickly and inexpensively.
[47]
The term "open source" was originally intended to be trademarkable;
however, the term was deemed too descriptive, so no trademark exists.
Besides, it offers the potential for a more flexible technology and
quicker innovation. It is said to be more reliable since it typically
has thousands of independent programmers testing and fixing bugs of the
software. It is flexible because modular systems allow programmers to
build custom interfaces, or add new abilities to it and it is innovative
since open source programs are the product of collaboration among a
large number of different programmers. The mix of divergent
perspectives, corporate objectives, and personal goals speeds up
innovation.
[48]
Moreover free software can be developed in accord with purely technical
requirements. It does not require thinking about commercial pressure
that often degrades the quality of the software. Commercial pressures
make traditional software developers pay more attention to customers'
requirements than to security requirements, since such features are
somewhat invisible to the customer.
[49]
It is sometimes said that the open source development process may not
be well defined and the stages in the development process, such as
system testing and documentation may be ignored. However this is only
true for small (mostly single programmer) projects. Larger, successful
projects do define and enforce at least some rules as they need them to
make the teamwork possible.
[50][51] In the most complex projects these rules may be as strict as reviewing even minor change by two independent developers.
[52]
Not all OSS initiatives have been successful, for example, SourceXchange and Eazel.
[45]
Software experts and researchers who are not convinced by open source’s
ability to produce quality systems identify the unclear process, the
late defect discovery and the lack of any empirical evidence as the most
important problems (collected data concerning productivity and
quality).
[15]
It is also difficult to design a commercially sound business model
around the open source paradigm. Consequently, only technical
requirements may be satisfied and not the ones of the market.
[15]
In terms of security, open source may allow hackers to know about the
weaknesses or loopholes of the software more easily than closed-source
software. It is depended of control mechanisms in order to create
effective performance of autonomous agents who participate in virtual
organizations.
[53]
Development tools
In OSS development, the participants, who are mostly volunteers, are
distributed among different geographic regions, so there is need for
tools to aid participants to collaborate in source code development.
Often, these tools are also available as OSS.
Revision control systems such as
Concurrent Versions System (CVS) and later
Subversion (svn) and
Git are examples of tools that help centrally manage the source code files and the changes to those files for a software project.
Utilities that automate testing, compiling, and bug reporting help
preserve stability and support of software projects that have numerous
developers but no managers, quality controller, or technical support.
Building systems that report compilation errors among different
platforms include
Tinderbox. Commonly used
bugtrackers include
Bugzilla and
GNATS.
Tools such as
mailing lists,
IRC, and
instant messaging
provide means of Internet communication between developers. The Web is
also a core feature of all of the above systems. Some sites centralize
all the features of these tools as a
software development management system, including
GNU Savannah,
SourceForge, and
BountySource.
Projects and organizations
One of the benefits of open source software is that there are a wide
variety of codes in oss projects for program developers. Without any
blocking of this wide and diverse platform, developers create a wide
range of projects and organizations. Some of the "more prominent
organizations" involved in OSS development include the
Apache Software Foundation, creators of the Apache web server; the
Linux Foundation, a nonprofit which as of 2012
[update] employed Linus Torvalds, the creator of the
Linux operating system kernel; the
Eclipse Foundation, home of the
Eclipse software development platform; the Debian Project, creators of the influential Debian GNU/Linux distribution; the
Mozilla Foundation, home of the Firefox web browser; and
OW2,
European-born community developing open source middleware. New
organizations tend to have a more sophisticated governance model and
their membership is often formed by legal entity members.
[54]
Several open source programs have become defining entries in their space, including the
GIMP image editing system;
Sun's Java programming language and environment; the MySQL database system; the
FreeBSD Unix operating system;
Sun's OpenOffice.org office productivity suite; and the
Wireshark network
packet sniffer and protocol analyser.
Open Source development is often performed "live and in public", using services provided for free on the Internet, such as the
Launchpad and
SourceForge web sites, and using tools that are themselves Open Source, including the CVS and Subversion source control systems, and the
GNU Compiler Collection.
Open Source for America
is a group created to raise awareness in the U.S. Federal Government
about the benefits of open source software. Their stated goals are to
encourage the government’s utilization of open source software,
participation in open source software projects, and incorporation of
open source community dynamics to increase government transparency.
[55]
Mil-OSS is a group dedicated to the advancement of OSS use and creation in the military.
[56]
Certification
Certification can help to build higher user confidence. Certification
could be applied to the simplest component that can be used by
developers to build the simplest module to a whole software system.
There have been numerous institutions involving in this area of the open
source software including The International Institute of Software
Technology / United Nations University <
http://www.iist.unu.edu>. UNU/IIST is a
non-profit
research and education institution of The United Nations. It is
currently involved in a project known as "The Global Desktop Project".
This project aims to build a desktop interface that every end-user is
able to understand and interact with, thus crossing the language and
cultural barriers. It is drawing huge attention from parties involved in
areas ranging from application development to localization.
Furthermore, this project will improve developing nations' access to
information systems. UNU/IIST aims to achieve this without any
compromise in the quality of the software. It believes a global standard
can be maintained by introducing certifications and is currently
organizing conferences in order to explore frontiers in the field <
http://opencert.iist.unu.edu>.
Alternatively, assurance models (such as
DO178B)
have already solved the "certification" approach for software. This
approach is tailorable and can be applied to OSS, but only if the
requisite planning and execution, design, test and traceability
artifacts are generated.
By: http://en.wikipedia.org/wiki/Open_source_software