You are on page 1of 11

Open Source Technology /(SEM-V)/IT

CHAPTER 1
OVERVIEW OF OPEN SOURCE SOFTWARE

1.1 What is Open Source?


Open Source refers to a program, in which the source code is available to the
general public free of charge, i.e., open for use and/or modification from its
original design.
It is the defined set of requirements for open source software from the Open
Source Initiative (OSI). The Open Source Definition (OSD) specifies not only
access to the source code, but also integrity of the code, its free redistribution, a
technology-neutral provision, as well as specific anti-discrimination rules.
Open source code is typically created as a collaborative effort in which
programmers improve upon the code and share the changes within the
community.
Open source software can be defined as any computer software, generally
developed as a public collaboration, whose source code is made freely available.
Open source software refers to applications developed in which the user can
access and alter the "source" code itself.

1.2 The principles of Open Source Software


Open source doesn't just mean access to the source code. The distribution terms of open
source software must fulfill with the following criteria:
1. Free 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.
2. 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.
3. 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.
4. 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

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

require derived works to carry a different name or version number from the
original software.
5. No Discrimination against Persons or Groups
The license must not discriminate against any person or group of persons.
6. 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.
7. 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.
8. 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.
9. License Must Not Restrict 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.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or
style of interface.

1.3 Need for Open Source


Few reasons why you need an Open Source Strategy are:

1. Reduce dependency on closed source vendors. Stop being dragged through constant
product upgrades that you are forced to do to stay on a supported version of the
product.
2. More access to tools. You can get your hands a variety of development and testing
tools, project and portfolio management tools, network monitoring, security, content
management, etc. without having to ask the boss man for a few hundred thousand
green backs.
3. Try before you buy. Are you getting ready to invest in SOA, BPM, or ECM? Why
not do a prototype without spending huge sums of money? First of all, it allows you to
get familiar with the tools so you can be educated when you go through the vendor
evaluation process. Second of all, you might find that the tool can do the job and you
don't need to lock yourself in to another vendor.
4. Great support and a 24/7 online community that responds quickly. Despite the
myths that you can't get support for open source software, the leading communities
provide support far superior to most closed source vendors. Most communities have a
great knowledge base or wiki for self service support. You can also post a question
and one of the hundreds of community members throughout the world will most

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

likely respond in minutes. Make sure you chose software with strong community
backing.
5. Access to source code and the ability to customize if you desire. You can see the
code, change the code, and even submit your enhancements and/or fixes back to the
community to be peer reviewed and possibly added to the next build. No longer do
you need to wait for a vendor roadmap that doesn't have the feature you need until
their Excalibur release.
6. Great negotiating power when dealing with closed source vendors. Tired of
vendors pushing you around because you don't have options? I wonder if companies
like Microsoft would be more willing to be flexible with their pricing if you have 20
desktops running Ubuntu as an alternative desktop pilot initiative.
7. Feature set is not bloated and is driven by collaboration amongst the community.
Are you tired of products that consume huge amounts of memory and CPU power?
With open source software, most features are driven by community demand. Closed
vendors have to create one more feature then their competitors to get the edge in the
marketplace.
8. Bug fixes are implemented faster then closed source vendors. Actually, many bugs
are fixed by the community before they are even reported by the users.

1.4 Advantages and Disadvantages of using Open Source

Below are some of the advantages that open source offers:

1. Core software is free


If you're just getting started in online business, cost can be a major factor. Using Open
Source software can really cut down on your initial capital outlay. It's also my firm
belief that the Open Source community has helped to rein in prices on commercial
software over the years.
2. Evolving software
As mentioned, some Open Source software projects can have huge communities of
programmers involved, allowing for the rapid implementation of new features and
security fixes. The communities of users and programmers are also invaluable
resources for asking questions relating to troubleshooting and suggesting
enhancements.
3. Encourages hands on
When you're short on cash, you are more than likely to want to make modifications to
software yourself. I'm not programmer, but the use of Open Source software has
encouraged me to go beyond the user interface; to dig into code to try and understand
what it does and to make minor edits. As a business owner, it doesn't hurt to
understand a little of the voodoo that goes on behind the scenes in the software you
use on your site.

4. Not tied to a single vendor


If you purchase a commercial application, you can then become reliant on a single
company to solve your problems and maintain the software - which can also be very
expensive. Some commercial software companies may only provide support and

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

upgrades for a limited time before you need to fork out for any further enhancements
or assistance.
5. Greater Security & Quality
Open source software is available publicly. A large amount of developers globally
contribute and analyze the code making it more secure and constantly increasing the
quality. The peer review process drive excellence in design.

Disadvantages of using Open Source


There's a flip side to everything, and in the case of Open Source software it all boils down
to the old saying of "there's no such thing as a free lunch". Most of the disadvantages only
apply if you're not somewhat code-savvy and willing to get your hands dirty:
1. Mostly used commercial applications.
2. Projects can die
3. Support issues

1.5 Application of Open Sources

1 Accounting
2 Content Management Systems
3 CRM (Customer Relationship Management)
4 Desktop Environments/ Shell replacements
5 Email Clients
6 Encoding, Conversion & Ripping Tools
7 ERP
8 File sharing & FTP
9 Graphics-Design & Modeling Tools
10 Messengers & Communication Clients
11 Project Management
12 Reporting Tools
13 RSS
14 Web Browsers

1.6 Open Source Software Vs Proprietary Software (Closed Software)

Open Source Software Proprietary Software(Closed Software)


Purchased with its source code. Purchased without its source code.
User can get open software free of charge. User must pay to get proprietary software.
Users can modify the software. Users cannot modify the software.
Users can install software freely into any User must have a license from the vendor
computer. before installing into computer.
No one is responsible to the software Full support from vendor if anything happen
to the software.
Example: Linux, Ubuntu, OpenOffice.org Example: Windows Vista, Adobe Photoshop,
Microsoft Office 2010

1.7 FOSS
Free and open-source software (FOSS) is software that gives users the right to run,
copy, distribute, study, change, and improve it as they see fit, without them having to
ask permission from or make additional payments to any external group or person.
Compiled By: Prof. Nilesh Patil
Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

The word free in FOSS refers not to fiscal cost, but to the autonomy rights FOSS
grants to its users.
The phrase open source emphasizes the rights of users to study, change and improve
the source code.
The definition of the term 'Free Software' has its origin in genesis of GNU Project.
The comparative definition maintained by Free Software Foundation indicates the
proper way of understanding meaning of the word 'free'. "Free software is a matter of
liberty, not price.
By Free Software Foundation (FSF) definition any program is free software if its
users have four freedoms:
freedom 0: "The freedom to run the program, for any purpose.
freedom 1: The freedom to study how the program works, and adapt it to your
needs). Access to the source code is a precondition for this.
freedom 2: The freedom to redistribute copies so you can help your neighbor .
freedom 3: The freedom to improve the program, and release your
improvements to the public, so that the whole community benefits. Access to
the source code is a precondition for this."

1.8 FOSS Usage


The reasons why people prefer using open source software are:
They have more control over that kind of software. They can examine the code to
make sure it's not doing anything they don't want it to do, and they can change parts
of it they don't like.
It helps them become better programmers. Because open source code is publicly
accessible, students can learn to make better software by studying what others have
written. They can also share their work with others, inviting comment and critique.
They consider it more secure and stable than proprietary software. Because anyone
can view and modify open source software, someone might spot and correct errors or
omissions that a program's original authors might have missed. And because so many
programmers can work on a piece of open source software without asking for
permission from original authors, open source software is generally fixed, updated,
and upgraded quickly.
Many users prefer open source software to proprietary software for important, long-
term projects. Because the source code for open source software is distributed
publicly, users that rely on software for critical tasks can be sure their tools won't
disappear or fall into disrepair if their original creators stop working on them.
1.9 Free Software Movement
The free-software movement is a social movement with the goal of obtaining and
guaranteeing certain freedoms for software users, namely the freedom to run the
software, to study and change the software, and to redistribute copies with or without
changes.
The philosophy of the movement is that the use of computers should not lead to
people being prevented from cooperating with each other.

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

The core work of the free software movement focused on software development. The
free software movement also rejects proprietary software, refusing to install software
that does not give them the freedoms of free software.
The idea of the Free Software Movement is that computer users deserve the freedom
to form a community. You should have the freedom to help yourself, by changing the
source code to do whatever you need to do. And the freedom to help your neighbor,
by redistributing copies of programs to other people. Also the freedom to help build
your community, by publishing improved versions so that other people can use them.

1.10 Open-source Software Development Model


The feature development life-cycle, illustrated in figure below, begins with an idea for a
new project, feature or enhancement, which is proposed to other project developers.

Feature Request Process

Feature requests are generally tracked and prioritized using processes that are visible to the
rest of the development community. This ensures a common understanding of which features
have been requested, their relative priority, their development status, associated bugs and
blockers, and when they are planned for release. The request is typically made by whoever is
likely to lead the implementation work. The purpose of the request is to notify others of the
need, solicit feedback, gain acceptance for the idea, and come to a consensus on next steps.

Project contributors and maintainers then evaluate the request, and determine whether it
should be a candidate for a future release. There will often be discussions between the
requester and the development community to clarify needs and requirements. If the request is
approved, a target release will be set, and development begins.

Architecture and Design Discussion


Compiled By: Prof. Nilesh Patil
Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

One of the major contributing factors to the success of the open source development model is
its transparency, and ability to accommodate distributed collaboration among project teams.
This is accomplished using communication methods that are accessible to all within the
project community for strategic decision making, architecture discussions, and code reviews.

Mailing lists are one of the most commonly used communication channels because they are
self-documenting, transparent, and typically anyone involved in the project can participate.
This includes end users, who may be monitoring the lists to understand future features as they
evolve or to provide practical feedback.

Collaboration on Implementation

The open source development model places strong emphasis upon collaborative development
and peer review, from first idea to final acceptance. Because it evolved to support highly
decentralized teams where submitters were not all personally known to the maintainers, the
model favors those who work with others on design and implementation while clearly
communicating their plans.

Source Code Submission

The life-cycle of a new code submission begins with collaborative development among a
subset of developers who have taken ownership for delivering the feature. When the code is
functional and applies cleanly against the mainline project, the project team submits the code
to a project maintainer over the project mailing list. The maintainer and other project
participants may provide feedback on the submission and decline to accept it, in which case
the implementation team would revise and resubmit the code.

Because smaller patches are easier to understand and test, submitters are generally
encouraged to submit changes in the smallest increments possible. Smaller patches are less
likely to have unintended consequences, and if they do, getting to root cause of an issue is
much easier.

When the maintainer accepts submitted code, it will then be integrated into his or her
development tree. In a large, multi-layer project, the maintainer may then be responsible for
submitting it to additional maintainers further up the tree. When the code has been approved
by the top-most maintainer, it is integrated for distribution in the mainline release.

Continuous Testing and Integration

Because work may be highly distributed, the open source development model places
emphasis upon detecting issues early and fixing them quickly. Many larger projects create
nightly and weekly builds using an automated build suite, evaluating new code as soon as
possible after integration.

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

In addition to automated build suites, some projects also create custom test suites to detect
functional issues as they occur during active development. These test suites are typically open
source as well.

The open source development model favors small, incremental changes, which can make
diagnosing build issues, bugs, security holes, and regressions much easier. This ensures that
new code does not impact the projects overall focus upon high quality and secure code.

Source Code Release

With few exceptions, projects that use the open source model make both a stable snapshot of
the last release and the current development tree available. This helps ensure that users can
retrieve the most recent stable release, while developers can work from the most current code.

Release management practices vary from project to project, but most nominate an individual
or team to evaluate the maturity of features in the development tree, and monitor QA metrics.
When the release criteria are met, this team declares the release to be complete and branches
the development tree.

1.11 Open Source Software License


Open source licenses are licenses that comply with the Open Source Definition in
brief, they allow software to be freely used, modified, and shared. To be approved by the
Open Source Initiative (also known as the OSI), a license must go through the Open
Source Initiative's license review process.
The following OSI-approved licenses are popular, widely used, or have strong
communities:
1. Apache License
The Apache License is a free software license written by the Apache Software
Foundation (ASF).
The ASF and its projects release the software they produce under the Apache
License.
The Apache License requires preservation of the copyright notice and disclaimer.
Like other free software licenses, the license allows the user of the software the
freedom to use the software for any purpose, to distribute it, to modify it, and to
distribute modified versions of the software, under the terms of the license,
without concern for royalties.

The Apache License 1.0 was the original Apache License which applies only to older
versions of Apache packages (such as version 1.2 of the Web server).

The Apache License 1.1 was approved by the ASF in 2000: The primary change from the 1.0
license is in the 'advertising clause' (section 3 of the 1.0 license); derived products are no
longer required to include attribution in their advertising materials, but only in their
documentation.

The ASF adopted the Apache License 2.0 in January 2004. The stated goals of the license
included making the license easier for non-ASF projects to use, improving

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

compatibility with GPL-based software, allowing the license to be included by reference


instead of listed in every file, clarifying the license on contributions, and requiring a patent
license on contributions that necessarily infringe a contributor's own patents.

2. BSD License
BSD licenses are a family of permissive free software licenses, imposing minimal
restrictions on the redistribution of covered software.
The original BSD license was used for its namesake, the Berkeley Software
Distribution (BSD), a Unix-like operating system.
Two variants of the license, the New BSD License/Modified BSD License (3-
clause), and the Simplified BSD License/FreeBSD License (2-clause) have been
verified as GPL-compatible free software licenses by the Free Software
Foundation, and have been vetted as open source licenses by the Open Source
Initiative, while the original, 4-clause license has not been accepted as an open
source license and, although the original is considered to be a free software license
by the FSF, the FSF does not consider it to be compatible with the GPL due to the
advertising clause.
In all BSD licences as following, <organization> is the organization of
the <copyright holder> or just the <copyright holder>, and <year> is the year of
the copyright. As published in BSD, <copyright holder> is "Regents of the
University of California", and <organization> is "University of California,
Berkeley".

Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials provided
with the distribution.
3. All advertising materials mentioning features or use of this software must display the
following acknowledgement: This product includes software developed by the
<organization>.
4. Neither the name of the <organization> nor the names of its contributors may be used to
endorse or promote products derived from this software without specific prior written
permission.

3. GNU General Public License Versions

This license has two versions that are actively used in many open source communities:

GNU General Public License, version 2.0 (GPLv2)

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

GNU General Public License, version 3.0 (GPLv3)


The GNU General Public License (GNU GPL or GPL) is the most widely used free
software license, which guarantees end users(individuals, organizations, companies) the
freedoms to use, study, share (copy), and modify the software. Software that allows these
rights is called free software and, if the software is copylefted, then it also requires that this
be retained. The GPL demands both. The license was originally written by Richard
Stallman of the Free Software Foundation (FSF) for the GNU project.

In other words, the GPL grants the recipients of a computer program the rights of the Free
Software Definition and uses copyleft to ensure the freedoms are preserved whenever the
work is distributed, even when the work is changed or added to. The GPL is a copyleft
license, which means that derived works can only be distributed under the same license
terms.

4. GNU Lesser General Public License

The GNU Lesser General Public License (LGPL) is a free software license published by
the Free Software Foundation (FSF). The license allows developers and companies to use and
integrate LGPL software into their own (even proprietary) software without being required by
the terms of a strong copyleft license to release the source code of their own software-parts.
The license requires that only the LGPL software-parts be modifiable by end-users via source
code availability. For proprietary software, LGPL-parts are usually in the form of a shared
library such as a DLL so that there is a clear separation between the proprietary and LGPL
parts. The LGPL is primarily used for software libraries, although it is also used by some
stand-alone applications.

The LGPL was developed as a compromise between the strong copyleft of the GNU General
Public License (GPL) and more permissive licenses such as the BSD licenses and the MIT
License. The word "Lesser" in the title shows that the LGPL does not guarantee the end user's
complete freedom in the use of software: it only guarantees the freedom of modification for
the LGPL-parts, but not for any proprietary software-parts.

5. MIT License

The MIT License is a free software license originating at the Massachusetts Institute of
Technology (MIT). It is a permissive free software license, meaning that it permits reuse
within proprietary software provided all copies of the licensed software include a copy of the
MIT License terms and the copyright notice. Such proprietary software retains its proprietary
nature even though it incorporates software under the MIT License. The license is also GPL-
compatible, meaning that the GPL permits combination and redistribution with software that
uses the MIT License.

Notable software packages that use one of the versions of the MIT License include Expat,
the Mono development platform class libraries, Ruby on Rails, Nodejs, Lua (from version 5.0
onwards), Wayland and the X Window System, for which the license was written.

6. Eclipse Public License

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320
Open Source Technology /(SEM-V)/IT

The Eclipse Public License (EPL) is an open source software license used by the Eclipse
Foundation for its software. It replaces the Common Public License (CPL) and removes
certain terms relating to litigations related to patents.[6]

The Eclipse Public License is designed to be a business-friendly free software license and
features weaker copyleft provisions than contemporary licenses such as the GNU General
Public License (GPL). The receiver of EPL-licensed programs can use, modify, copy and
distribute the work and modified versions, in some cases being obligated to release their own
changes.[7]

The EPL is approved by the Open Source Initiative (OSI)[3] and is listed as a free software
license by the Free Software Foundation(FSF).

7. Mozilla Public License

The Mozilla Public License (MPL) is a free, open source, and detailed software
license developed and maintained by the Mozilla Foundation. It is characterized as a
hybridization of the modified BSD license and GNU General Public License (GPL) that
seeks to balance the concerns of proprietary and open source developers.

It has undergone two revisions, most recently to version 2.0 with the goals of greater
simplicity and better compatibility with other licenses.

The MPL is the license for the Mozilla Firefox, Mozilla Thunderbird, and most other
Mozilla software, but it has been used by others, such as Adobe to license their Flex product
line, and LibreOffice 4.0 (also on LGPL 3+). Version 1.1 was also notably adapted by
companies to form derivative licenses like Sun Microsystems' own Common Development
and Distribution License

Compiled By: Prof. Nilesh Patil


Mobile No.: 7350791320

You might also like