0% found this document useful (0 votes)
22 views17 pages

Unit 1 - Introduction - Oss

The document provides a comprehensive overview of Open Source Software (OSS), defining it as software that allows users to run, modify, and distribute it freely. It discusses the principles and advantages of OSS, including cost savings, flexibility, and community support, while also addressing its disadvantages such as lack of professional support and potential security risks. Additionally, it contrasts OSS with Free Software and Public Domain Software, highlighting their similarities and differences.

Uploaded by

deveshkale08
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views17 pages

Unit 1 - Introduction - Oss

The document provides a comprehensive overview of Open Source Software (OSS), defining it as software that allows users to run, modify, and distribute it freely. It discusses the principles and advantages of OSS, including cost savings, flexibility, and community support, while also addressing its disadvantages such as lack of professional support and potential security risks. Additionally, it contrasts OSS with Free Software and Public Domain Software, highlighting their similarities and differences.

Uploaded by

deveshkale08
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

FUNDAMENTALS OF OPEN SOURCE SOFTWARE

UNIT I

Introduction to Open Source software:

Briefly, OSS/FS programs are programs whose licenses give users the freedom to run the
program for any purpose, to study and modify the program, and to redistribute copies of
either the original or modified program (without having to pay royalties to previous
developers).”

DEFINITION:

Open source software is the software in which users have the ability to run, copy, distribute,
study, change, share and improve for any purpose.
A software for which source code is freely available with a license to study, change and
further distributed to any other individual for any purpose is called open source software.
Open Source Software is something which you can modify as per your needs, share with
others without any licensing violation burden. When we say Open Source, source code of
software is available publicly with Open Source licenses which allows us to edit source code
and distribute it.

The basic features in Open Source software are:


1. It is non-proprietary software.
2. Source code is open to all.
3. OSS license promotes collaboration and sharing.
4. Less restriction on usability and modification of softwares.
5. Big and active community enabling quite development and easy fixes.
6. Support is through forums, informative blogs and hiring experts.
7. Less costly.
8. More flexibility as we can add features, modify,etc.
9. It can easily be installed into the computer.
10. Fails but fixes fast
11. No one is accountable for any failure.

FREE SOFTWARE:

Free software means software that respects users' freedom and community. Roughly, it means
that the users have the freedom to run, copy, distribute, study, change and improve the
software. Free software may be packaged and distributed for a free; the "free" refers to the
ability to reuse it, modified or unmodified, as part of another software package. As part of the
ability to modify, users of free software may also have access to and study the source code.
Thus, “free software” is a matter of liberty, not price.
The concept of free software is the brainchild of Richard Stallman, head of the GNU Project
in 1985. He meant Free as in freedom. Because the word free in English means without cost
the terms open source was created. The best known example of free software is Linux, an

1
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

operating system that is proposed as an alternative to Windows or other proprietary operating


systems.

The four essential freedoms of Free Software:


A program is free software if the program's users have the four essential freedoms:
• The freedom to run the program as you wish, for any purpose.
• The freedom to study how the program works, and change it so it does your computing
as you wish. Access to the source code is a precondition for this.
• The freedom to redistribute copies so you can help others.
• The freedom to distribute copies of your modified versions to others. By doing this you
can give the whole community a chance to benefit from your changes. Access to the source
code is a precondition for this.

FREE SOFTWARE v/s. OPEN SOURCE SOFTWARE:

“Free” and “open source” are two terms commonly used interchangeably in the software
industry. Yet, for many developers, the difference between the two is not always clear. This
can lead to confusion about how to use each source code, as well as how to make source code
available for others.

FREE SOFTWARE OPEN SOURCE SOFTWARE


Free software usually refers open source Your source code is accessible to anyone to
under GNU GPL license. Because the word read and modify and redistribute depending
free in English means without cost the terms on license conditions. Publishing source code
open source was created. online without the public being able to
modify them doesn’t make lots of sense.
Software is an important part of people’s Software is just software. There are no ethics
lives. associated directly to it.
Software freedom translates to Ethics are to be associated to the
social freedom. people not to the software.
Freedom is a value that is more important Freedom is not an absolute concept. Freedom
than any economical advantage. should be allowed, not imposed.
Examples: the Linux kernel, the BSD and Examples: the Apache HTTP Server, the e-
Linux operating systems, the GNU Compiler commerce platform osCommerce, internet
Collection and C library; the MySQL browsers Mozilla Firefox and Chromium (the
relational database; the Apache web server; project where the vast majority of
and the Sendmail mail transport agent. development of the freeware Google Chrome
is done) and the full office suite Libre Office.

Free Software and Open-Source Software

Free Software:

“Free software” means software that respects users’ freedom and community. Roughly, it
means that the users have the freedom to run, copy, distribute, study, change and improve the
software. The term “free software” is sometimes misunderstood—it has nothing to do with
price. It is about freedom.

2
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Advantages:

• Cost: Free software is typically free to use, modify and distribute.

• Freedom: Free software is often accompanied by a set of ethical principles that


promote users’ freedom to use, study, modify, and share the software.
• Collaboration: Free software often encourages collaboration among developers
and users, leading to faster development and better quality software.
• Transparency: Free software is often developed in a transparent way, with the
source code and development process available for public scrutiny.
• Flexibility: Free software can be used on a wide range of platforms and devices.

Disadvantages:

• Support: While free software does have a community of developers and users, it
may not always have the same level of professional support as commercial
software.
• Compatibility: Free software may not always be compatible with other software
applications and hardware devices.
• Security: Because free software is available for everyone to use and modify, it
may be easier for malicious actors to identify and exploit vulnerabilities.
• Complexity: Free software can be more complex and difficult to use than
commercial software, especially for non-technical users.
• Documentation: Free software may not always have the same level of
documentation and user guides as commercial software.

Open Source Software:

Open Source Software is something that you can modify as per your needs, and share with
others without any licensing violation burden. When we say Open Source, the source code of
the software is available publicly with Open Source licenses like GNU (GPL) which allows
you to edit the source code and distribute it. Read these licenses and you will realize that
these licenses are created to help us.
1. Coined by the development environments around software produced by open
collaboration of software developers on the internet.
2. Later specified by the Open Source Initiative (OSI).
3. It does not explicitly state ethical values, besides those directly associated with
software development.

Advantages:

• Cost: Open source software is typically free to use, modify and distribute.
• Customization: The source code of open source software is available to
everyone, allowing users to modify and customize it to suit their needs.
• Community support: Open source software often has a large community of
developers and users who contribute to its development and provide support.

3
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

• Transparency: The source code of open source software is open for everyone to
see, making it easier to identify and fix bugs and vulnerabilities.
• Flexibility: Open source software can be used on a wide range of platforms and
devices.

Disadvantages:

• Support: While open source software does have a large community of


developers and users, it may not always have the same level of professional
support as commercial software.
• Compatibility: Open source software may not always be compatible with other
software applications and hardware devices.
• Security: Because the source code of open source software is available to
everyone, it may be easier for malicious actors to identify and exploit
vulnerabilities.
• Complexity: Open source software can be more complex and difficult to use
than commercial software, especially for non-technical users.
• Documentation: Open source software may not always have the same level of
documentation and user guides as commercial software.

Similarities:
• Both free software and open source software have access to the source code,
allowing users to modify and improve the software.
• Both types of software often rely on a community of users and developers to
provide support and contribute to the development of the software.
• Both free software and open source software are often distributed under open
licenses, allowing users to use, modify, and distribute the software without
restrictions.

PUBLIC DOMAIN SOFTWARE:

Public domain software is any software that has no legal, copyright or editing restrictions
associated with it. It is free and open-source software that can be publicly modified,
distributed or sold without any restrictions.
➢ Public domain software is any software which is not owned by a person or a
company, so it is not subjected to copyright laws. Anyone can use or modify it as per
their needs. Generally, no fees is required for PD software but some of them require
attribution.
Features:
• Not copyrighted
• Released without any condition upon its use & may be used without any
restriction
• Programmers are provided with freedom at no cost.
• Can be modified, distributed or sold without any regulation
• Generally, these softwares have lowest level of support available.

4
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Advantages and Disadvantages of Public Domain Software

Public domain software has several advantages, including cost savings and flexibility.
However, there are also some potential disadvantages to using public domain software,
including a lack of support and potential legal issues.

Advantages of Public Domain Software:

1. Cost Savings: One of the primary benefits of public domain software is that it is free
to use, modify, and distribute. This can be particularly helpful for individuals and
organizations with limited budgets, as it eliminates the need topay licensing fees for
proprietary software.
2. Flexibility: Because there are no legal restrictions on how the software can be used or
modified, users have a high degree of flexibility in adapting the software to meet their
specific needs. This can be particularly useful for research purposesor for developing custom
software solutions.
3. Wide Availability: Public domain software is often widely available and can be easily
downloaded from the internet. This can be particularly helpful for individuals and
organizations with limited access to proprietary software, or for those who need to access
software quickly and easily.

Disadvantages of Public Domain Software:

1. Lack of Support: Because public domain software is typically created and maintained
by volunteers, there is often little or no support available for users who encounter issues or
need help with the software. This can be particularly problematic for organizations with
complex software needs or for individuals who are not
2. Potential Legal Issues: Because public domain software is not protected by any form
of intellectual property, there is a risk that users may inadvertently infringe on the rights of
others when using or distributing the software. This can be particularly problematic for
organizations that rely on software to support their business operations.
3. Quality Control: Because there are no legal restrictions on how the software can be
modified, there is a risk that modified versions of the software may contain malware or other
security vulnerabilities. This can be particularly problematic for organizations that rely
on software for critical business operations or for individuals who use the software for
sensitive personal information.

Examples of Public Domain Software

Among the most popular examples of public-domain software are the Linux kernel, Apache
web server, and a range of other applications. These pieces of software are usually free to use
and modified. Some of the most popular examples of public-domain software include PHP,
Python, and MySQL. The same applies to open-source applications, such as open- source

5
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

projects. It is important to note that many public-domain projects are proprietary and are not
intended for commercial use.

FOSS does not mean no cost

FOSS is usually free, but there are some exceptions. While the software itself may be free,
make sure you consider the need for additional services or products, as these may have costs
attached (e.g. access to software updates, support services).
➢ This does not mean that the software is free of cost. The term ‘free’ indicates that
software does not have constraints on copyrights.
➢ It means the source code is open for all & anyone can use, study or modify it.
➢ It is not true that all FOSS is free. A large portion of FOSS is free to use but plenty of
programs are not. WORDpress and Discord’s premium plans are ex of FOSS that
users purchase.
➢ You also have to take into account possible switching costs. These costs would
include moving data from an old system to new systems, training costs and costs
involved when switching from one platform to another one (e.g. the costs of switching
from Microsoft Windows to a Linux operating system).
➢ FOSS projects make money by gaining large profits by charging support and
enterprise fees. It is legal to download FOSS software.
Now a days there is a FOSS alternative to nearly every type of software that you need.
You can replace:
Adobe Illustrator with Inkscape,
MSWord with LibreOffice
Media player with VLC.
1. The popular myth surrounding Free/Open Source Software is that it is always “free”-
that is, “free of charge.” To a certain degree this is true. No true FOSS application
charges a licensing fee for usage. Most FOSS distributions (Red Hat, SuSE,
Debian,etc.) can be obtained at no charge off the Internet.
2. On a licensing cost basis, FOSS applications are almost always cheaper than
proprietary software.
However, licensing costs are not the only costs of a software package or
infrastructure. It is also necessary to consider personnel costs, hardware requirements,
opportunity costs and training costs. This is often referred to as the Total Cost of
Ownership (TCO).

FEATURES/CHARACTERISTICS OF FOSS

• Reduced duplication of effort


• Building upon the work of others
• Better quality control
• Reduced maintenance costs
• No application charges a licensing fee
• Comparatively cheaper than traditional software

6
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

PRINCIPLES OF OSS
• Transparency
• Collaboration
• Release early & often
• Include diverse perspectives
• Community development

WHAT ARE THE BENEFITS OF USING FOSS?

1. Security
2. Reliability/Stability
3. Open standards and vendor independence
4. Reduced reliance on imports
5. Developing local software capacity
6. Piracy, IPR, and WTO
7. Localization
8. Free of cost
9. High quality
10. Control to modify software
11. availability

WHAT ARE THE SHORTCOMINGS OF FOSS?

• Lack of business applications: This problem has come about in part due to the
scarcity of people competent in both technical and business subjects.

• Not compatible with proprietary systems: FOSS systems, especially on the


desktop, are not completely compatible with proprietary systems.

• Lacks Documentation and “polish”: FOSS lacks the extensive documentation and
user-friendliness foundin commercial software. The primary focus of early FOSS
developers was functionality. Creating a program that worked well was far more important
than ease of use.

• Knowledge of coding is required: To handle the software of open source


configuration, basic knowledge of coding is essential.

7
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

OPEN SOURCE SOFTWARE vs CLOSED SOFTWARE

OPEN SOURCE SOFTWARE CLOSED SOFTWARE


1. It is non-proprietary software. It is proprietary software.
2. Source code is open to all. Source code is closed/protected.
3. OSS license promotes collaboration Only those who created it can access it.
and sharing.
4. Less restrictions on usability and More restrictions on usability and
modification of softwares. modification of software.

5. Big and active community enabling Development and fixes depend on discretion
quite development and easy fixes. of creators.
6. Support is through forums, informative Dedicated support.
blogs and hiring experts.
7. Less costly. High priced.
8. More flexibility as we can add features, Limited flexibility only as proposed by
modify,etc. creators.
9. It can easily be installed into the Need valid license before installation.
computer.
10. Fails but fixes fast Failure is out of question.
11. No one is accountable for any failure. Responsibility for failure belongs to
creator/vendor.

History of BSD:

Berkeley Software Distribution (BSD) is a prominent version of the Unix operating system
that was developed and distributed by the Computer Systems Research Group (CSRG) from
the University of California at Berkeley between 1977 and 1995.
Historically, BSD has been considered as a branch of UNIX — "BSD UNIX", because it
shared the initial codebase and design with the original UNIX operating system.
BSD kernel handles process scheduling, memory management, multiprocessing, etc.
BSD developers focus more on polishing their code than marketing it.
No one person or corporation owns BSD.
It is created & distributed by a community of highly technical 7 committed contributors all
over the world.
BSD kernels are developed & updated based on Open Source Development model.
Each program has an accessible source tree that contains all source files for project(like
documents & other files)
Developers of BSD are divided into three kinds:
1. Contributors(write code or documentation)
2. Committers(developers with write access to the source code)
3. The Core Team(group of people who manage project and entire environment)
Various versions of BSD are:

• FreeBSD Operating System


• OpenBSD Operating System
• NetBSD Operating System
• DragonFly BSD Operating System

8
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

• Ghost BSD Operating System


• Midnight BSD Operating System
• Nomad BSD Operating System

THE FREE SOFTWARE FOUNDATION AND THE GNU PROJECT

The FSF
• The FSF (Free Software Foundation) was founded in the early eighties by Richard M.
Stallman, researcher at MIT's Artificial Intelligence laboratory.
• The foundation's objective is to develop free software. That is software that you can
freely copy, use, modify, and redistribute as you wish. The only condition is that the
source code of these programs must be freely available on demand.
• It is important to understand that the term Free in Free Software Foundation does not
refer to price, but to freedom.
• These programs can be bought and sold, but there is always a legal way to obtain
them gratis.
The Free Software Foundation was established to encourage the development of free
software. The free software movement, which liberated users to freely create and share their
software and programs, was a major driver behind this foundation. FSF’s primary objective is
to instigate the rejection of propriety software that cannot be shared, published or altered
legally.
The Free Software Foundation is a nonprofit organization founded by Richard Stallman in
1985. Its primary mission is to promote and defend the principles of free software. The FSF
advocates for the use and distribution of software that grants users the essential freedoms to
run, study, modify, and share the software. These principles are commonly known as the
"four freedoms":

a. Freedom 0: The freedom to run the program for any purpose.

b. Freedom 1: The freedom to study how the program works and access its source code.

c. Freedom 2: The freedom to redistribute copies so you can help others.

d. Freedom 3: The freedom to distribute modified versions, thus giving the community
an opportunity to benefit from your changes.

The GPL
• The GPL (General Public License) specifies the conditions under which all GNU
software is ditributed.
• The LGPL (Library General Public License) was the corresponding license used for
sub-program libraries Roughly, these licenses specify that GNU software may be
copied, modified, and redistributed in any manner as long as the source code remains
freely available.
• The main advantage of software distributed under these conditions is that if you wish
to improve the program, you may; and you may redistribute your new and improved
version. Thus, everyone benefits.
• This leads to programs of excellent quality, written by dozens of different people.

9
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

The GNU Project


The GNU General Public License (GPL) is a free, copyleft license used primarily for
software. The GNU GPL allows users to change and share all versions of a program. GPL is
provided through the Free Software Foundation, a nonprofit corporation that works to
provide free software for the GNU Project.

• The FSF's GNU (GNU is not Unix) Project's objective is to develop a complete
operating system, distributed under the conditions of the GPL.
• This operating system uses some UNIX concepts, but is not UNIX.
• Richard Stallman started this project on his own right after he founded the FSF. The
first part of the project was to program the editor with which he could then program
the rest of the software. That editor is the now famous GNU Emacs. He then wrote a
C compiler to compile his operating system. That would be the famous GCC.
• Since then, many people have joined him to write all sorts of programs. The operating
system itself, known as HURD, has recently become available.

GNU has a Unix-like design, but it is available as free software and does not contain any
Unix code. GNU is comprised of a collection of software applications, libraries and
developer tools, along with a program to allocate resources and communicate with the
hardware, or kernel. GNU can be used with other kernels and is often used with a Linux
kernel. A GNU/Linux combination is the GNU/Linux operating system. The main
components of a GNU system include the following:

• GNU compiler collection


• GNU C library
• GNU Emacs text editor
• GNOME desktop environment

METHODOLOGIES OF FREE AND OPEN SOURCE SOFTWARE

a) Open Source History


b) Initiatives
c) Principles and methodology of the open source

OPEN SOURCE HISTORY

The history of open source began in the 1960s with the first large-scale commercial computers that came
with freely distributed software with source code. The trend died in the 1970s, when it was more likely to
find proprietary software. The Free Software Movement of the mid 1980s desired to return to the 1960s
system of software distribution. The movement gave freedom to computer users by replacing proprietary
software under restrictive licensing terms with free software. The leading force behind the movement,
Richard Stallman, introduced the GNU operating system in order to develop free software. The 1990s
continued to develop open source software. By 1993, GNU was stable and a common platform. Various
other open source projects emerged, including many GIS packages, which we will discuss throughout this
site.

10
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

A brief timeline of the major events in Open Source history:

1960s- First Large-Scale commercial computers by IBM include free software and source code.
1970s- Open Source Trend dies. Proprietary software takes hold.
1983- Free Software Movement- lead by Richard Stallman.
Goal: "to liberate everyone in cyberspace."
1993- Open Source operating systems: GNU/Linux and 386 BSD are considered stable platforms. GNU
built completely on free software, achieving a major goal of the free software movement.
1998- Netscape releases web browser and free source code (Mozilla Project)
Goal: "promote innovation on the web and help keep the Internet open."

The history of open source software can be traced back to the early days of computing. However, the term
"open source" as we know it today emerged in the late 1990s. Here are some key milestones in the history
of open source:

Early Days of Computing: In the early days of computing, software was often distributed freely with
hardware purchases, and source code was commonly shared among developers and users.

1. The Rise of Proprietary Software: As the software industry grew, companies started to adopt
proprietary models, where the source code was kept secret, and users could only access the compiled
executable version.

2. Richard Stallman and the Free Software Movement: In the early 1980s, Richard Stallman
launched the Free Software Movement and the GNU Project, advocating for software that respects users'
freedoms and provides access to the source code.

3. The GNU General Public License (GPL): Stallman and the Free Software Foundation introduced
the GPL in 1989, a strong copyleft license that ensured software licensed under it would remain free and
open source.

4. Open Source Initiative (OSI): In 1998, the term "open source" was coined, and the OSI was
founded to promote the open source philosophy and certify licenses that meet their open source definition.

5. Netscape's Open Source Release: In 1998, Netscape Communications Corporation released the
source code of its web browser under an open source license, which became the basis for the Mozilla
project.

6. The Success of Linux: The Linux operating system, originally created by Linus Torvalds, gained
popularity in the mid-1990s and became a flagship example of successful open source software.

7. Apache Web Server: The Apache HTTP Server, released in 1995, became the most popular web
server on the internet, further showcasing the power of open source software.

8. Open Source in Business: Companies like IBM, Oracle, and others started embracing open source
software, recognizing its value and contributing to various open source projects.

11
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

9. Open Source Today: Open source software is now widespread and has found its place in various
industries and technologies. It powers many critical systems worldwide and continues to grow.

Free software (later renamed “open source software”) appeared even before people
started thinking in terms of proprietary software, at a time when software development
was ruled by open source principles. In the 1960s and 1970s, software programming was
mainly performed in both academic and corporate laboratories by scientists and engineers
who freely gave, exchanged and modified software. In the early 80s, as software
programming increasingly turned proprietary, Richard Stallman founded the Free
Software Foundation (FSF) to define and 4 diffuse legal mechanisms and conceptual
principles of what he called “free software”.

Specifically, all open source software grants users the following key rights:
1. The right to full access to the source code. When a computer programmer sees how a piece
of software actually works, as specified in the source code, they can fully understand the inner
workings and can intelligently modify the software as they deem appropriate
2. The right for anyone to run the program for any purpose without restriction. There are no
restrictions against commercial, military, foreign, or any other use, and discrimination against
users for any reason is expressly forbidden.
3. The right to modify the source code. This includes absorbing the software, in whole or in
part, into other pieces of software created by other developers.
4. The right to distribute both the original software and the modified software. A key
difference between “free software” and “freeware” is that while freeware generally permits 5 and
encourages free distribution of the software, it does not permit sale of the distributed software
beyond reasonable distribution costs; free software, in contrast, permits resale at any price.
5. The right to know about their open source rights.The open source license must be
prominently displayed and distributed to users, so that they are aware of their rights (including
access to the source code). Practically, since users are aware that they can obtain the source code
for free, the sale price of OSS tends to be zero, or quite low.

OPEN SOURCE INITIATIVES (OSI)

The Open Source Initiative defines open source software as software that is distributed with
human readable source code in order to allow the user freedom to run, review, alter, enhance
and modify the code for any purpose.
OSI is quite distinct from the Free Software Foundation (FSF) led by Richard Stallman. Although
they have similar history and motivation, OSI considers its ends as more pragmatic and business-
driven, while FSF is based on anti-establishment and moralistic viewpoints. Nevertheless, the two
organizations have worked together on several projects, and even Mr. Stallman has acknowledged that
their differences are mostly philosophical.

The Open Source Initiative (OSI) is a non-profit corporation whose goal is to promote the use
of open source software in the commercial world. To accomplish this goal, OSI maintains

12
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

and promotes the Open Source Definition and offers the OSI Certified Open Source Software
Certification Mark and Program. To be OSI certified, the software must be distributed under
a license that guarantees the right to read, redistribute, modify, and use the software freely.
The Open Source Definition provided by OSI contains the following elements:

• Free redistribution
• Source code
• Derived works
• Integrity of the author's source code
• No discrimination against persons or groups
• No discrimination against fields of endeavor
• Distribution of license
• License must not be specific to a product
• License must not restrict other software
• License must be technology-neutral

Some open source initiatives are:


1. NRCFOSS - National Resource Centre for Free & Open Source Software
2. BOSS – Bharat Operating System Solutions
3. BOSS Support Centers

In 1991, Linus Torvalds, a 21-year-old Finnish programmer, started the famous Linux Project,
released under the GPL, which implements a Unix-like operating system on Intel-based
microcomputers. The project has grown rapidly to produce a powerful, fast, efficient, stable,
reliable, and scalable operating system.
The Linux market is rapidly growing.
A major paradigm shift occurred in 1998, when Bruce Perens and Eric Raymond expressed their
suspicion that firms may not be convinced by GPL due to Stallman’s term, “free” software,
“which might understandably have an ominous ring to the ears of business people”. The “open
source” software movement was created based on the integrating of all the previous licensing that
had been prior designed. As a result, a major chasm appeared between Stallman’s free software
view, which was more ideological and philosophical, and Perens/Raymond’s open source view,
whose purpose was more business-oriented. The latter was 7 aimed at fighting against the evil
“proprietary software” by convincing firms to rely on OSS.
Several major OSS projects have marked people’s mind in such software revolution. The Apache
web-server project started in early 1995 and has become the most popular Web server software,
controlling over 60 percent of the market, much more than Microsoft and Netscape both
combined. Inspired by Eric Raymond’s paper “The Cathedral and the Bazaar”. Netscape, one of
the main actors in the Internet browser industry, decided to release its source code by creating
Mozilla, its first open source version of its former Communicator. In November 2004, the
Mozilla Foundation announced the worldwide availability of the Mozilla Firefox 1.0 web
browser.
Today, all major hardware and software vendors have at least forayed into the open source
approach. For example, Apple Computer surprisingly followed this model in 2000 when they
released the kernel of their Unix-based Mac OS X operating system to the open source
community as Darwin 1.0. In 2005, IBM announced their plan to spend $100 million over the
next three years to build support for Linux into desktop applications for its Workplace software.
Meanwhile, IBM has planned to spread Linux worldwide. In 2004, IBM concentrated on
implementing Linux in Brazil, Russia, India and China. Since 2005, the company has planned to
increase its efforts in those countries but will also begin extend its programs in Eastern Europe.

13
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

PRINCIPLES AND METHODOLOGY OF THE OPEN SOURCE

Principles of the open source


1. Transparency: Whether we're developing software or solving a business problem, we all
have access to the information and materials necessary for doing our best work. And
when these materials are accessible, we can build upon each other's ideas and discoveries.
We can make more effective decisions and understand how decisions affect us.
2. Collaboration: When we're free to participate, we can enhance each other's work in
unanticipated ways. When we can modify what others have shared, we unlock new
possibilities. By initiating new projects together, we can solve problems that no one can
solve alone. And when we implement open standards, we enable others to contribute in
the future.
3. Release early and often: Rapid prototypes can lead to rapid discoveries. An iterative
approach leads to better solutions faster. When you're free to experiment, you can look at
problems in new ways and seek answers in new places. You can learn by doing.
4. Inclusive meritocracy: Good ideas can come from anywhere, and the best ideas should
win. Only by including diverse perspectives in our conversations can we be certain we've
identified the best ideas, and decision-makers continually seek those perspectives. We
may not operate by consensus, but successful work determines which projects gather
support and effort from the community.
5. Community: Communities form when different people unite around a common purpose.
Shared values guide decision making, and community goals supersede individual interests
and agendas.

Methodology of the open source

Open-source software development creates many interesting legal and business issues, but in this
column I’m going to focus on open source’s software development methodology.
Methodologically, open source’s best-known element is its use of extensive peer review and
decentralized contributions to a code base. A key insight is that “given enough eyeballs, all bugs
are shallow.” The methodology is driven mainly by Linus Torvalds’ example: Create a kernel of
code yourself; make it available on the Internet for review; screen changes to the code base; and,
when the code base becomes too big for one person to manage, delegate responsibility for major
components to trusted lieutenants.
The open-source methodology hasn’t been captured definitively in writing. The single best
description is Eric Raymond’s “The Cathedral and the Bazaar” paper, and that is sketchy at best.
The rest of open source’s methodology resides primarily in the informal legend, myth, and
surrounding specific projects like Linux.

• Bug Me Now or Bug Me Later


• Not All Eyeballs Are Shallow
• Economic Shell Game
• One-Hit Wonder or Formidable Force?

14
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

The details of methodologies and approach are described below:

1. Bug Me Now or Bug Me Later

• Open-source projects use extensive field testing and unmatched code-level peer review.
• Open-source projects typically have sketchy marketing requirements, no system-level
design, little detailed design, virtually no design documentation, and no system-level
testing.
• Advance organizations use a combination of practices that produce better quality, shorter
schedules, and lower development costs than average, and software development
effectiveness at that level makes a more useful comparison.
• In OSS, the requirements and design defects cost far more to correct at coding or system
testing time than they cost to correct upstream.
• It’s a lot easier to change a line on a design diagram than it is to change a module
interface and all the code that uses that module.
• Open source’s methodology focuses on fixing all bugs at the source code level—in other
words, downstream.
• Error by error, without upstream reviews, the open-source project will require more total
effort to fix each design error downstream than the closed-source project will require to
fix it upstream.
• Open-source advocates claim that giving users the source code reduces the time needed
for downstream defect correction—the person who first experiences the problem can also
debug it.
For this open source approach to work, large numbers of users have to be both interested in and
capable of debugging source code.

2. Not All Eyeballs Are Shallow

• Open-source advocates emphasize the value of extensive peer review.


• Industry-leading inspection practices usually limit the number of reviewers to five or six,
which is sufficient to produce software with close to zero defects on closed-source
projects.
• The question for open source is, Howmany reviewers is enough, and how many is too
many?
• Open source’s typical answer is, “Given enough eyeballs, all bugs are shallow.” The more
the merrier.
• About 1,200 programmers have contributed bug fixes and other code to Linux.
• It means that if a bug is reported in Linux, a couple dozen programmers might begin
looking for it, and many bugs are corrected within hours.
• From this, we can conclude that large numbers of reviewers lead to “efficient”
development.
• This answer confuses “fast” and “effective” with “efficient.” To one of those people, the
bug will turn out to be shallow. To the rest, it won’t be shallow, but some people will
spend time looking for it and trying to fix it.
• Having several dozen people all looking for the same bug may indeed be fast and
effective, but it is not efficient.

15
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

3. Economic Shell Game

• A key factor considered in OSS is that the open-source methodology must reduce
development costs overall
• Considering open source’s focus on downstream defect correction with significantly
redundant peer reviews, for now the approach looks more like a shell game than a better
mousetrap.
• It is appealing at first glance because so many people contribute effort that is free or
unaccounted for.
• The results of this effort are much more visible than the effort itself. But when you add up
the total effort contributed—both seen and unseen—open source’s use of labor looks
awfully inefficient.
Open source is most applicable when you need to trade efficiency for speed and efficacy. This
makes it applicable to mass-distribution products like operating systems where development cost
hardly matters and reliability is paramount.
4. One-Hit Wonder or Formidable Force?

• The open-source movement has not yet put its methodology under the open-source review
process.
• The methodology is currently so loosely defined that it can hardly even be called a
“methodology.”
• At this time, the strength of the open-source approach arises largely from its massive
code-level peer review.
• For open source to establish itself as a generalizable approach, it needs to fix four major
problems:
1. Create a central clearinghouse for the open-source methodology so it can be fully captured and
evolved.
2. Kick its addiction to Code and Fix.
3. Focus on eliminating upstream defects earlier.
4. Collect and publish data to support its claims about the effectiveness of the open-source
development approach.

Open source methodologies are the approaches and practices used by developers and
communities to collaboratively create and maintain open source software. Some key
methodologies include:
1. Distributed Development: Open source projects often involve a distributed community of
developers worldwide who work together to contribute code, bug fixes, and new features.
2. Version Control: Version control systems like Git enable developers to collaborate
efficiently by managing changes to the source code, allowing them to track revisions and merge
contributions.
3. Issue Tracking: Open source projects use issue tracking systems like GitHub or Bugzilla
to manage bug reports, feature requests, and other development-related tasks.
4. Transparency and Openness: The development process and decision-making within open
source projects are often transparent and open to the community, encouraging participation and
feedback.

16
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

5. Licensing: Open source projects typically use licenses like the GPL, MIT, Apache
License, etc., to ensure that the source code remains open and accessible to everyone.
6. Code Reviews: Peer code reviews are common in open source development to maintain
code quality, catch errors, and ensure that contributions meet project standards.
7. Collaboration and Communication: Open source developers rely on communication
platforms like mailing lists, forums, chat rooms, and social media to interact, share ideas, and
seek assistance.
8. Forking and Collaboration: The ability to fork a project (creating a separate version)
allows developers to experiment, create derivatives, and contribute back to the original project if
desired.
9. Documentation and Community Support: Open source projects emphasize the importance
of well-maintained documentation and community support to facilitate adoption and usage.
10. Open source methodologies have proven to be effective in fostering innovation, building
robust software, and creating vibrant communities around shared goals. The success of many
open source projects has demonstrated the viability of this collaborative and community-driven
approach to software development.

None of these weaknesses in open source’s current development practices are fatal in principle,
but if the methodology can’t be evolved beyond its current practices, history will record open
source’s development approach as a one-hit wonder. If open source can focus the considerable
energy at its disposal into defining and using more efficient development practices, it will be a
formidable force indeed.

17

You might also like