Professional Documents
Culture Documents
UNIT 2_OSS
UNIT 2_OSS
UNIT 2
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 (freedom 0).
• The freedom to study how the program works, and change it so it does your computing as you
wish (freedom 1). Access to the source code is a precondition for this.
• The freedom to redistribute copies so you can help others (freedom 2).
• The freedom to distribute copies of your modified versions to others (freedom 3). 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.
1
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
2
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
LICENSE:
OSS License means any license for open source or free software (including the GNU public
license) that requires as a condition of use, modification or distribution such that it satisfies
given conditions;
(a) be disclosed or distributed in source code form,
(b) be licensed for the purpose of making derivative works or
(c) be redistributable at no charge.
Open source licenses are legal and binding contracts between the author and the user of a
software component, declaring that the software can be used in commercial applications
under specified conditions. The license turns the code into an open source component.
OSS licenses are intended to permit and encourage the contributions of others to the project.
Open source licenses are subjective. It means their interpretation depends on the technical
usage of the licensed software.
Therefore, it’s difficult to determine the legal risks of using open source software, especially
for developers, who are not usually legal experts.
There are two main open source license:
COPYLEFT
PERMISSIVE
Copyleft Licenses
In contrast to permissive licenses, copyleft licenses generally require that any derivative work
of the copyleft-licensed software be released under the same license as the original. In other
words, the modified code has to be exactly as “open” as the original.
Permissive licenses
Permissive licenses generally allow for use of the licensed code with few restrictions. Users
can take the permissive-licensed software, make it their own through changes or additions,
and distribute that modified program with only a handful of conditions.
FOSS licenses
COPYLEFT PERMISSIVE
3
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
GPL is a copyleft license. This means that any software that is written based on any
GPL component must be released as open source. The result is that any software that
uses any GPL open source component is required to release its full source code and
all of the rights to modify and distribute the entire code.
Apache License is an open source software license released by the Apache Software
Foundation (ASF). It’s a popular and widely deployed license backed by a strong
community.
The Apache License allows you to freely use, modify, and distribute any Apache
licensed product. But you’re required to follow the terms of the Apache License.
The Apache License 2.0 is commonly used permissive open source license. With this
license, you have the freedom to do what you want with the software.
But while doing so, you must include the original copyright and license notice, state
any significant changes, and include the NOTICE file if there is one.
It's also important to note that while the Apache License 2.0 is compatible with GPL
v3, it is not compatible with GPL v2.
The BSD License lets you freely modify and distribute your software’s code in the
source or binary format as long as you retain a copy of the copyright notice, list of
conditions, and the disclaimer.
The original BSD License or the 4-clause BSD License also contains an advertising
clause and a non-endorsement clause.
The modified BSD License or the 3-clause BSD License was formed by removing the
advertising clause from the original BSD License.
The FreeBSD version or the 2-clause BSD License was formed by removing the non-
endorsement clause from the modified BSD License or the 3-clause BSD License.
The BSD License, short for Berkeley Software Distribution, allows the freedom to use,
modify, and distribute the software as long as the copyright notice and license text are
included in the copy of the software. There are several different variants of this license; the
difference between these versions is the number of clauses, or restrictions, included.
The BSD 3-Clause License is the most popular variant. The BSD 3-Clause is very similar to
the MIT Licenses, with the key exception of the BSD 3’s non-endorsement clause, which
prohibits distributed derivative works from using the name of the original code's author or
contributors for promotional purposes.
CDDL is an open source license published by Sun Microsystems to replace the Sun
Public License (SPL).
It is a weak copyleft license in-between GPL and BSD permissive licenses.
The CDDL license is inspired by the Mozilla Public License (MPL).
CDDL is often considered as a modified up version of the MPL and it provides
reusability.
It allows free distribution in an executable form, but you are required to make the
source code available as well under the CDDL.
The executable form may be released under the CDDL or any CDDL compatible
licenses.
User can modify & distribute any original or derivative work of any software license
under CDDL.
But you must not remove or make any changes to any copyright, patent or trademark
notices in software.
You must include a copy of the CDDL with any source code that you distribute.
For each modification that you make, you must identify yourself as the modifier by
including a notice in your modified files
5
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
If you modify an EPL’ed component and distribute it in the source code form as
part of your program, you’re required to disclose the modified code under the
EPL.
If you distribute such a program in its object code form, then you must make the
source code available to the recipient upon request.
The EPL protects the author from possible lawsuits or damages caused if a
company used his/her component in a commercial product. It also offers a patent
grant.
The MIT License is one of the most commonly used and permissive open source
licenses.
Under this license, you can essentially do anything with the software as long as
you include the original copyright and license notice in the copy of the software.
It is also compatible with many copyleft licenses, including the GPLs.
It is a short, simple & permissive software license.
Copyright
©
Copyright is a bundle of rights granted to a creator providing him with exclusive rights
over his original artistic and literary creation.
It is not necessary that a copyright be registered, it is attached automatically to any
original artistic work.
When the idea of a creator is converted to a material form, the same immediately gets
protected under the copyright.
For a work to be copyrighted, it is necessary that the work is original work of literature,
drama, music, or any other art having artistic value. While copyright protects the material
form of an idea it does not protect the idea in itself. It is essential and of significant
importance, that permission is sought and the same is granted by the copyright owner
before it is republished or reproduced.
The bundle of rights granted to the copyright owner includes the rights to reproduce, copy,
publish, communicate, and translate the copyrighted work. Such a right is a natural right
granted to the owner of the artistic work immediately on the making of the same.
6
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Copyleft
Most of the creative works, including software programs and codes, comes within the domain of
copyright protection and therefore can be copyrighted.
But, we must know that software and programming is an area where already existing programs
can be used as a base to build new software or program.
So, many software owners tend to grant a license to its users that allows them to modify and alter
their work. Such permission and license can be referred to as Copyleft.
Copyleft is a specific kind of license that allows free use of copyrighted material but
under certain terms and conditions, granted by the owner of the copyright himself.
For instance, software having a copylefted license can be modified, used, distributed, or
reproduced provided the source code kept open and available to the public.
A copylefted software must be transferred with a similar copyleft license to all its
successive users and the license also shall mandate any modification to the software shall
be copylefted in a similar manner.
In simpler words, copyleft is a license that provides original work to a third person giving
him certain rights like that of copying and modifying and any new work carved out based
on such original work shall have a copyleft license in a similar manner.
The main objective of a copyleft license is to provide people with opportunities to use and modify
an original work, and later grant a similar set of rights to all other interested people. Thus any
person who receives a copylefted work and then modifies the same, he cannot restrict the rights to
himself alone over the modified work.
To conclude Copyleft is an option derived within the domain of copyright laws itself, providing
a little bit of freedom and liberty, that allows users to modify and distribute the software and the
program, which was surely not possible with the traditionally copyrighted programs. It would
not be wrong to conclude that the concept of copyleft will create communal ownership of
several individuals within the confines and limitations of copyright laws.
COPYRIGHT COPYLEFT
Copyright protects our original ideas & Copyleft has the facility to make changes
work from others getting access to it. to others ideas & give them back.
Copyright is represented by symbol ©
Copyleft is represented by symbol
7
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Copyright protection can be very well Copyleft can be applied when users
applied to published work. distribute derivative works under a license.
While Free and Open Source is allowed to the end client, there is an expense related to building
up the product. These expenses might be littler than creating exclusive programming since
building up the task under Free and Open Source permit implies that:
Various online interfaces like Source Forge would offer web facilitating, content store, mailing
records and other basic highlights for nothing.
The expense of promoting a Free and Open Source venture (like introducing it in the related
gatherings) is typically lower.
Creating something under GPL may give free access to top-notch parts (like QT) that are in any
case costly to purchase or not accessible by any stretch of the imagination.
All things considered; improvement of any product initially requires the designer time. Without
a doubt, extremely famous activities may hope to get an excellent code commitment for
nothing.
8
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
INCOME-GENERATION OPPORTUNITIES
While contributing time and exertion in creating, improving and documenting Free and Open
Source doesn't give any immediate salary, the improvement of skill in Free and Open Source
gives an expansive scope of revenue generation opportunities - from producing in-house
investment funds from upgrades to Free and Open Source to counseling openings in installing,
preparing, customizing and the arrangement of TechSupport for Free and Open Source
establishments.
With IT budgets increasingly strained, more and more companies are looking to open source
software to help lower costs.
The platforms that prove fruitful in this scenario are:
High costs & wasted budgets. No costs required & negligible budgets.
Changes are difficult and costly. Changes are easily done & no cost is
required to do so.
Management approvals are required & Management approvals are not required
so delays are generated. & so no delays are generated.
9
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
INTERNATIONALIZATION
LOCALISATION
Process of adopting a product software to a specific locale or market
Represented as L10N
We can change date &time formats address ,numbers ,currencies , etc to
meet the need & preference of ’target market’
Changing product better to suit different place
It involves translation, adopting &customizing a product to meet specific
requirement of a particular market
It is done after internationalization
10
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
4. In-context editing- gives the translation &team an idea how translated text
will appear.
5. Code respository – to host code , collaborates , discuss and review code
changes, ex -GitHub
6. Pseudolocalization-for i18n purpose.it provides a sense of amount of space
that will be taken up in design for a software Localization.
7. Designer tools – will allow you to see how designs will change based on
target language.
8. Lokalise -it gives management tools that allow team to collaborate ,manage
& review the management.
Internationalization Localisation
Without changing the code base, We can change date &time formats
the software develops design the address ,numbers ,currencies , etc
code &resources so that they are to meet the need & preference of
utilised by various locals ’target market’
11
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
APACHE CORE
12
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
GNU/Linux
GNU is a Unix-like operating system. That means it is a collection of many programs:
applications, libraries, developer tools, even games.
The development of GNU, started in January 1984, is known as the GNU Project.
Many of the programs in GNU are released under the auspices of the GNU Project;
those we call GNU packages.
The name “GNU” is a recursive acronym for “GNU's Not Unix.”
The program in a Unix-like system that allocates machine resources and talks to the
hardware is called the “kernel.”
GNU is typically used with a kernel called Linux.
This combination is the GNU/Linux operating system. GNU/Linux is used by
millions, though many call it “Linux” by mistake.
Hardware layer: This layer comprises all the peripheral devices such as (RAM/
HDD/ CPU etc.).
Kernel: It is Linux's main component and is also in charge of many of the LINUX
operating system's functions. It communicates with hardware directly and delivers
low-level operations to upper-layer elements.
Shell/GCC: It is a user-to-kernel interface that hides the complexities of the kernel's
operations from users. Shell processes the user's command and performs the kernel's
functions.
Application Software: The desktop environment that comes with your Linux OS or
that you choose to install has individual applications installed. Most Linux
distributions, such as Ubuntu, come with dedicated app stores to find and install the
software.
Bootloader: Computers go through a startup process known as booting. This boot
process requires instruction, and your operating system is in charge of it. The
bootloader for your operating system precedes the process when you turn on your
computer.
13
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
FEATURES:
1. Portable Environment
2. Free and Open-Source
3. Shell/ Command-line Interface
4. End-to-end encryption
5. Graphical User Interface (GUI)
6. Configure Keyboards into Different Languages
7. Frequent New Updates
8. Lightweight Infrastructure
9. Extremely Flexible
10. Best for developers
ANDROID
Android Architecture
The android is an operating system and is a stack of software components which is divided
into five sections and four main layers that is
Linux kernel
Libraries
Android runtime
Application Framework
Applications
Features of Android Operating System
The unique features/characteristics of the android operating system include the following.
1. Near Field Communication (NFC)
2. Alternate Keyboards
3. IR Transmission
4. No-Touch Control
5. Automation
6. Wireless App Downloads
7. Storage & Battery Swap
14
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Mozilla Firefox
Firefox Features
1. Fast and lightweight: The latest version of Firefox is faster than ever.
2. Sync your browser: Create an account and sync your Firefox data across multiple
platforms. If you’re logged in from both phone and computer, you can send tabs to
open in the other device.
3. Save passwords: Never remember a password or purchase a password manager again
- Firefox can securely store all your passwords.
4. Pocket: This is a handy add-on that was created by Mozilla. You can easily save an
article to read later. Pocket will add an estimated “time-to-read” to each article, and
you can add tags, to help you remember why you saved the article when you have the
time to read it.
5. Send: This feature makes it easy to share files, up to 2.5GB. Firefox will create a
temporary link, that will expire after a predetermined number of downloads, or days
(up to 7 days) expire.
6. Screenshot: This is perhaps one of the most underrated features on Firefox. Right-
click your mouse and the TAKE SCREENSHOT option will appear on the menu. The
15
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
screenshot tool can recognize different elements on the page, making it easy to
capture specific images or text, or you can select the area you want to screenshot. The
final feature is the option to take a screenshot of the entire page, not just the visible
area.
7. Built-in PDF reader: The built-in PDF reader can open, print, organize, zoom in,
rotate PDF documents.
These are just a few of the features that you’ll find with Firefox.
Security Features
Built-in pop-up blocker: Avoid annoying pop-ups and the need to download buggy
or costly pop-up blockers.
Blocks malicious websites: Firefox will prevent malicious websites from opening up
and potentially harming your computer and security. It also gives you a warning when
visiting an unsecured HTTP website.
Monitor: Firefox will scan all data breaches, dating back to 2007 to see if your Email
address has been part of a hack or breach. Monitor will then update you as to what
data was exposed in the breach and give tips for how to proceed, and what to do to
protect yourself in the future.
Lockwise Password: Password managers can be very costly, but with Firefox you
can get the Lockwise password manager for free. Download the mobile app and
secure it with TouchID or FaceID protection. The passwords are protected with a 256-
bit encryption to make sure that no one but you can access them.
Frequent updates: Firefox is constantly updating its browser, quickly patching any
security flaws or hacks that are discovered.
User Privacy
Tracking Protection: When you see the shield icon on the address bar, you’ll know
that Firefox is blocking trackers and other harmful content. You can click on it for
more information or manage the protection settings.
Doesn’t rely on Google’s Chromium: Firefox is the only cross-platform browser
that doesn’t use the Google-powered open-source Chromium platform. Instead, it uses
the open-source Mozilla platform called Gecko.
16
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Data collection policy: Mozilla states that they don’t collect user data unless you
specifically sign up with the Firefox Pioneer tool that will give the company insights
as to how users are browsing. They do collect a limited set of data, which is needed to
improve tools and overall user experience, but even this data is not tied back to you in
any way. The data is connected with a random identifier and not your user account.
DRUPAL
Drupal is a free, open-source content management system (CMS) with a large, supportive
community.
A CMS (Content Management System) is software that helps you manage digital content.
More specifically, a CMS like Drupal is a web application that allows one or more users to
create, edit, publish, and control access to a website using a graphical user interface (GUI).
Drupal is a robust content management platform. Functionality is bundled in "modules"
which you can use to alter and extend your out-of-the-box Drupal site.
Drupal helps you create dynamic, content-driven websites.
Drupal is software that you can download from Drupal.org and use to build a website. As a
modern CMS, it has many features for managing a site through a GUI, including:
WORDPRESS
17
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Here are just a few examples of the types of websites you can build with WordPress:
18
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
kind of plugin called a WordPress LMS plugin, you can offer online courses from
a WordPress website.
Wedding website – Share the details of your big day with a wedding website built
on WordPress. With an array of WordPress wedding themes, you can get a
website up quickly and easily.
The GNU Compiler Collection – GCC – is one of the most complex software systems
available in full source form. It was initiated by the Free Software Foundation
GCC is a portable compiler--it runs on most platforms available today, and can produce
output for many types of processors. In addition to the processors used in personal computers,
it also supports microcontrollers, DSPs and 64-bit CPUs.
GCC is not only a native compiler--it can also cross-compile any program, producing
executable files for a different system from the one used by GCC itself. This allows software
to be compiled for embedded systems which are not capable of running a compiler. GCC is
written in C with a strong focus on portability, and can compile itself, so it can be adapted to
new systems easily.
GCC is free software, distributed under the GNU General Public License (GNU GPL). This
means you have the freedom to use and to modify GCC, as with all GNU software. If you
need support for a new type of CPU, a new language, or a new feature you can add it
yourself, or hire someone to enhance GCC for you. You can hire someone to fix a bug if it is
important for your work.
Furthermore, you have the freedom to share any enhancements you make to GCC. As a result
of this freedom you can also make use of enhancements to GCC developed by others. The
many features offered by GCC today show how this freedom to cooperate works to benefit
you, and everyone else who uses GCC.
New languages
New optimizations
New targets
Improved run time libraries
Faster debug cycle
Various other infrastructure developments
FEATURES:
19
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
1. The GNU Compiler Collection is an open source (GPL) compiler. It's found on a wide
variety of systems.
2. GCC contains support for many languages (C, C++, Fortran, to name but a few). It's
highly portable, and widely used, and tends to produce good code. It can also be used
as a cross-compiler (compiling for a system other than the one running GCC).
3. It is free
4. it is available on platforms other than Windows, and it's ability of building cross-
platform binaries.
5. Once you have written your code using the GCC compilers, you are assured that your
code will work on a lot of other OSs/platforms/architectures.
GDB, the GNU Project debugger, allows you to see what is going on `inside' another
program while it executes -- or what another program was doing at the moment it crashed.
GDB stands for GNU Project Debugger and is a powerful debugging tool for C (along with
other languages like C++). It helps you to poke around inside your C programs while they
are executing and also allows you to see what exactly happens when your program crashes.
GDB operates on executable files which are binary files produced by the compilation
process.
GDB can do four main kinds of things (plus other things in support of these) to help you
catch bugs in the act:
Start your program, specifying anything that might affect its behavior.
Make your program stop on specified conditions.
Examine what has happened, when your program has stopped.
Change things in your program, so you can experiment with correcting the effects of
one bug and go on to learn about another.
Those programs might be executing on the same machine as GDB (native), on another
machine (remote), or on a simulator. GDB can run on most popular UNIX and
Microsoft Windows variants, as well as on Mac OS X.
GDB offers many more ways to debug and understand your code like examining
stack, memory, threads, manipulating the program, etc
GDB’S FEATURES:
1. code examination
2. breakpoint management
3. variable manipulation
4. program execution control which allow us to efficiently debug and issue
resolution.
20
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
GITHUB
GitHub is a website and cloud-based service that helps developers store and manage their
code, as well as track and control changes to their code. Git is a specific open-source version
control system created by Linus Torvalds in 2005.
GitHub is a platform for hosting, storing, and editing code. Individuals use it to host small
websites, organize projects, and collaborate with teammates and community members. The
platform is built around "Repositories" used to organize code for single projects.
Organizations use GitHub to share code and collaborate on projects internally, or to publicly
post open source projects.
Individuals and organization members alike benefit from GitHub's massive community of
creators. GitHub creators borrow inspiration and ideas from one another and help each other
to solve problems.
GitHub even has a sponsorship program so that funders that find open source projects that
they are passionate about can contribute to the individual or organization behind it.
Git is a version control system which means that when developers create something, they
make constant changes to the code, releasing new versions.
Version control systems keep these revisions straight, storing the modifications in a central
repository. This allows developers to easily collaborate, as they can download a new version
of the software, make changes, and upload the newest revision. Every developer can see these
new changes, download them, and contribute.
Git is a command-line tool, but the centre around which all things involving Git revolve is the
hub---GitHub.com---where developers store their projects and network with likeminded
people.
Specifically, Git is a distributed version control system, which means that the entire
codebase and history is available on every developer’s computer, which allows for easy
branching and merging.
GitHub’s interface is user-friendly enough so even novice coders can take advantage of Git.
Strengths of Github:
1. Repository
A repository (usually abbreviated to "repo") is a location where all the files for a particular
project are stored
2. Forking a Repo
“Forking” is when you create a new project based off of another project that already exists.
This is an amazing feature that vastly encourages the further development of programs and
other projects. If you find a project on GitHub that you’d like to contribute to, you can fork
the repo, make the changes you’d like, and release the revised project as a new repo.
3. Pull Requests
You've forked a repository, made a great revision to the project, and want it to be recognized
by the original developers---maybe even included in the official project/repository. You can
21
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
do so by creating a pull request. The authors of the original repository can see your work, and
then choose whether or not to accept it into the official project
4. Social networking
The social networking aspect of GitHub is probably its most powerful feature, allowing
projects to grow more than just about any of the other features offered. Each user on GitHub
has their own profile that acts like a resume of sorts, showing your past work and
contributions to other projects via pull requests.
5. Changelogs
When multiple people collaborate on a project, it’s hard to keep track revisions---who
changed what, when, and where those files are stored. GitHub takes care of this problem by
keeping track of all the changes that have been pushed to the repository.
Features of GitHub:
OPEN OFFICE
Open Office is a free office suit intended to replace Microsoft Office. It is distributed
free of charge via download and is available for most popular operating systems.
The GPL license under which Open Office is distributed allows unlimited use of
the software for both home and business use.
Because of its compatibility and the fact that it is free, Open Office is increasingly
popular with students at school, in higher education, technological fields and other
varying degrees.
Although it can read and write Microsoft's proprietary document formats, Open
Office defaults to the Open Document format.
Apache OpenOffice is the leading open-source office software suite for word
processing, spreadsheets, presentations, graphics, databases and more. It is available in many
languages and works on all common computers. It stores all your data in an international
open standard format and can also read and write files from other common office software
packages. It can be downloaded and used completely free of charge for any purpose.
22
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
Apache OpenOffice® is the free and open productivity suite from the Apache Software
Foundation.
spreadsheet,
presentation graphics,
drawing,
equation editor,
database.
OpenOffice is released on Windows, Linux and macOS, with more communities joining,
including ports for FreeBSD and OS/2. OpenOffice is localized, supporting over 110
languages worldwide.
OpenOffice.org was donated to the Apache Software Foundation (ASF) on June 1, 2011. As
with any code base brought to the ASF, OpenOffice.org underwent incubation
before graduating to a top-level project on 2012-10-17.
FEATURES:
Great software
Apache OpenOffice is the result of over twenty years’ software engineering. Designed from
the start as a single piece of software, it has a consistency other products cannot match. A
completely open development process means that anyone can report bugs, request new
features, or enhance the software. The result: Apache OpenOffice does everything you want
your office software to do, the way you want it to.
Easy to use
Apache OpenOffice is easy to learn, and if you’re already using another office software
package, you’ll take to OpenOffice straight away. OpenOffice is probably available and
supported in many languages. If you already have files from another office package -
OpenOffice will probably read them with no difficulty.
It’s free
Best of all, Apache OpenOffice can be downloaded and used entirely free of any license fees.
Like all Apache Software Foundation software, Apache OpenOffice is free to use. Apache
OpenOffice is released under the Apache 2.0 License. This means you may use it for any
purpose - domestic, commercial, educational, public administration. You may install it on as
many computers as you like. You may make copies and give them away to family, friends,
students, employees - anyone you like.
Where is Apache OpenOffice currently used?
Governments
Education
Businesses
Not for profits
23
FUNDAMENTALS OF OPEN SOURCE SOFTWARE
IT Businesses
F/OSS advocates
24