Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

FUNDAMENTALS OF OPEN SOURCE SOFTWARE

UNIT 2

PHILOSOPHY: SOFTWARE FREEDOM

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.

OPEN SOURCE DEVELOPMENT MODEL


An open source development model is the process used by an open source community
project to develop open source software. The software is then released under an open
source license, so anyone can view or modify the source code.
Open Source refers to a development model in which products are created and
maintained by a public community, rather than by a single company. The source code for
these products is publicly accessible, enabling anyone with the appropriate skills and
interest to contribute to the development and improvement of the software. As a result,
the solutions developed through this process belong to the public at large, rather than to
any single organization. Open Source products are also typically freely available for
anyone to use, modify, and distribute.

1
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

The role of each phase in an OSS Community Development Process,

1. Assert Requirements Design:


This phase is all about the need for the software that is being proposed to the
community for development and also the requirements during the development
process are kept in mind in this phase. Along with it the design or the approach to
be followed during the development is also a part of this phase.
2. Develop OSS Code:
The requirements are fulfilled; the need has been understood and the design is
ready. Now, it’s time for the contributors to start developing the backbone or the
skeleton of the software by the means of Coding.
3. Manage Configuration:
Once the basic OSS Code is developed it is necessary to provide an initial
configuration too is that its integration works perfectly fine along with all the
features provided with that particular version.
4. Download and Install:
Once the initial version is ready and configured properly it is ready to go in the
markets for general use.
5. End-Use:
The users who require the software to fall into this phase and use the OSS daily to
provide experience and feedback to the developers or for personal benefits.
6. Communicate Experience:
Once it is deployed in the market, the users share their experience with the OSS
and give feedback, suggestions, and reviews on the functions that are good to be
intact and also on the features that could be enhanced or added in the later
versions of the software.
7. Read, Analyze and Redesign:
Once the feedbacks are registered, it all comes back to the developers to work on
the feedbacks, keep updating their Software and also track control of version.

The open source development model provides the enhancements as given


below:
1. Reduced duplication effort
2. Building upon work of others
3. Better quality control
4. Reduced maintenance cost
5. No application charges a licensing free
6. Comparatively cheaper than traditional softwares

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

GPL APACHE BSD EPL MIT

3
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

IMPORTANT FOSS LICENSES

I) GNU General Public License (GPL)


 GNU General Public License is the most popular open source license
around.
 Richard Stallman created the GPL to protect the GNU software from
becoming proprietary.
 It is a specific implementation of "copyleft" concept.
 The GNU General Public License family, or GPL for short, includes two of
the most commonly used copyleft licenses: GPL v2 and GPL v3. (GPL v1 is
no longer widely used.)
 The GPL License states that if you write and distribute a program using a
GPL-licensed component, you must also release the full source code while
giving your users the same rights you received.
 This license was created to protect software from becoming proprietary, or
private, which is why many programmers like this license.
 They get the assurance that the restrictions with the GPL License will keep
their work free and acknowledged.

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.

II) The Apache License

 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.

III. Berkeley Software Distribution (BSD)

The original BSD License and its two variants –


1. (2-clause)- the Simplified BSD License/FreeBSD License
2. (3-clause)-the Modified BSD License
The detailed description of its’ variants is given below:
4
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

 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.

IV. Common Development and Distribution License (CDDL)

 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

V. Eclipse Public License (EPL)

 Eclipse Public License is an open source license developed by the Eclipse


Foundation.
 It’s derived from the Common Public License (CPL).
 The EPL license is a copyleft license.

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.

VI. MIT License (Massachusetts Institute of Technology)

 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.

COPYRIGHTS AND COPYLEFTS


MIT is one of the most permissive free software licenses. Basically, you can do whatever
you want with software licensed under the MIT license - only if you add a copy of the
original MIT license and copyright notice to it. Its simplicity is the reason behind its high
adoption rate among developers.

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

Prevents unauthorized copying or selling Modify the software/documentation and


of original work. distribute it as & when required.

Work is original and not copy of an y It is an idea of collaboration.


other.

Copyright grants permission to an Copyleft can be used freely by all


individual only.

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.

PATENTS ECONOMICS OF FOSS


Unlike the holder of an Open Source license, the owner of a patent has exclusive rights over the
patented software. No one else can make, use, modify, or sell patented software, and the source
code is not available to the public.
Patent rights give the holder control over who uses software and for what purpose. Though
software developers can protect their work using both copyrights and patents, copyrights only
protect the code itself. Patents, however, protect the program's functionality.
Patents are better than copyrights for software developers because they protect the program
regardless of the code and language used. In comparison, copyrights aren't very practical for
developers. If you want to release Open Source software while retaining some rights, a
copyright only gives you power over someone who steals your work verbatim.

Zero Marginal Cost


 FOSS has zero negligible expense for digital maintenance
 Foss is accessible to end user, but there is expense in building the product.
 Many online interfaces like SourceForge offer web facilities, content storage and mailing
records,etc. without costing anything.
 The expense of promoting FOSS is typically lower.
 Creating something under GPL can allow free access to critical which are costly to
purchase or not accessible.

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:

 Google Summer of Code(GSOC)


 Outreachy
 MOSS-Mozilla Open Source Support Programme

FOSS can attain various benefits by using following :


1. Paid support
2. Software as a service [SaaS]
3. Open core model
4. GitHub sponsors
5. Paid feature request
6. Get paid to build OS extensions for existing products

PROBLEMS WITH TRADITIONAL COMMERCIAL SOFTWARE


1. High costs & wasted budgets
2. Delays in device process
3. Changes are difficult and costly
4. Management approvals request &so delays are generated
5. Lack of transparency
6. Lack of productivity

TRADITIONAL SOFTWARE OPEN SOURCE SOFTWARE

High costs & wasted budgets. No costs required & negligible budgets.

Delays in development process. Development process is fast.

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

Lack of transparency. The system is completely transferred.

Lack of productivity. The system is very productive.

INTERNATIONALIZATION

Locale -A term that defines language &specific cultural conventions.


 Internationalization is a process of designing software so that it can be
adapted to various languages &regions without engineering changes.
 It enables a software appear to function equally well in any of
supported locals.
 It facilitates smooth translation process & tracking of future updates.
 Internationalization is abbreviated as i18n or I18N as 18 middle letters
are removed in the word 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

4 things to consider when you internationalize your software :


1. Create place holders [To search across translation files to serve correct
language to users].
2. Enable cultural formatting [ex. Some countries use 24 hour clock & some
use 12 hour clock].
3. Organise your source code[include separate files for each language].
4. Optimize your code language [to make its accessible to international
users].

8 tools for Software Internationalization:

1. CLI- Command line interface


2. API- Application programming interface
3. Web Hooker- Send automatic notification from one app to another

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.

Comparison of Internationalization v/s localisation

Internationalization Localisation

Process of designing a software Process of adopting a product


so that it can be adopted to software to a specific locale or
various languages &region marked
without engineering changes.

Represented as I18M Represented as L10N

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’

making product in such a way Changing product better to suit


that it makes it easy to localize different place

it involves designing product It involves translation, adopting


with language, cultural &customizing a product to meet
difference in mind. specific requirement of a particular
market

Internationalization is done first It is done after internationalization


before localization to form
foundation for product in
different language &culture.

11
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

APACHE WEB SERVER

 Apache is a version of web server that accepts requirement from


internet users & sends them desired information in the form of files &
web pages.
 Web Server is a software that responds to requirement for web
resources.
 Apache web server is an open source cross platform that is developed &
maintained by open community developers.
 It is officially represented as Apache HTTP.
 The original source code is freely available for viewing & collaboration.
 It can handle a large amount of traffic with minim al configuration.
 We can configure it to do required task.
 We can also remove modules to make it efficient & light weight.

FEATURES OF APACHE WEB SERVER are as follows:


1. Handling the static files
2. Handling loadable dynamic modules
3. Auto indexing
4. Smart compatibility
5. Advanced connections like FTP
6. Load balancing
7. URL rewriting
8. Geolocation based on IP address.

MODULE 1 MODULE 2 MODULE 3

APACHE CORE

 Various modules correspond to functionality that is executed on each


requirement.

12
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

 The specific Apache deployment can be configured to include


different types of modules.
 We can have certain security features, some management of dynamic
content or even some modules are responsible for more basic HTTP
requirement processing.
 The flow of control is similar to event driven model where each
requirement passes through all module.
 Apache is a combination of multi-process and multi-threaded model.
 In Apache, a single process is internally a multi-threaded
Authority/Employee process that has dynamic management of
number of threads.
 We can increase/decrease the number of threads.
 The total number of processes can also be dynamically adjusted.

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.

A typical Linux system contains the following components:

 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

 Background services: Also known as "daemons," these small systems serve as


workers in the background, assuring that critical tasks such as scheduling,
publishing, and multimedia work properly. They begin to run once the user logs in to
the computer or right after the system gets booted

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 is a Linux-based operating system it is designed primarily for touch screens


mobile devices such as smartphones and tablet computers. The operating system has
developed a lot in the last 15 years starting from black and white phones to recent
smartphones or mini computers. One of the most widely used mobile OS these days is
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

8. Custom Home Screen


9. Widgets
10. Custom ROMs
11. Headset layout
12. Storage
13. Connectivity
14. Messaging
15. Multilanguage support
16. Multi-touch
17. Video calling
18. Screen capture
19. External storage
20. Streaming media support
21. Optimized graphics

Mozilla Firefox

Firefox is an open-source, privacy-conscious, lightweight, fast browser. It has everything you


want or need from a browser, such as bookmarks, tabbed pages, a URL and a search bar.
There are a lot of customization options, add-ons, and a very active user forum where you can
have any questions answered.

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:

 creating and editing content with editor tools


 controlling publication status and workflows
 creating and managing custom URLs and menu items
 managing users and the access they have to content and features of the site
 organizing content with categories and listing pages
 moving blocks of content to different areas of the page

WORDPRESS

WordPress is a free, open-source website creation platform. On a more technical level,


WordPress is a content management system (CMS) written in PHP that uses a MySQL
database. In simple words, WordPress is the easiest and most powerful blogging and website
builder in existence today.

17
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

WordPress is an excellent website platform for a variety of websites. From blogging to e-


commerce to business and portfolio websites, WordPress is a versatile CMS. Designed with
usability and flexibility in mind, WordPress is a great solution for both large and small
websites.
A content management system (CMS) is a software application that manages content online.
Create websites and blogs with ease using this tool. Websites and blogs can be created in any
style you like. For creating a website, you do not need any coding skills or design experience.
Website themes and plugins can easily be changed. This will make building a website easier
for you. As compared to other open-source content management systems like Joomla and
Drupal, WordPress allows you to easily create a website and maintain it at a low cost.
WordPress Features
1. Flexibility
2. News and blog posts integration
3. Themes can be selected from a wide range
4. Upgrade and install quickly
5. Secure website management
6. Manage categories, tags, and titles of posts quickly
7. Mobile-friendly WordPress sites
8. SEO friendliness
9. Links can be easily created in the editor

Here are just a few examples of the types of websites you can build with WordPress:

 Blog – A blog is a special type of website devoted to sharing thoughts, photos,


reviews, tutorials, recipes and so much more. Blogs usually display the most
recently-published content first.
 E-commerce website – An e-commerce website allows you to sell goods or
services online and collect payment via an online payment system. You can
download and install a WordPress e-commerce plugin to extend the default
functionality of WordPress so you can have an online store on your website.
 Business website – Many businesses will benefit from having an online presence
in the form of their own website. If your business needs a website for customers to
learn about your company and what you have to offer, WordPress is an excellent
option. Customers can contact you, ask for a quote, schedule an appointment and
much more.
 Membership website – A membership website allows you to put content behind a
paywall or an account login. To access pages or posts, users must login or pay for
the content. WordPress can also handle membership websites with additional
plugins.
 Portfolio website – Show off your artwork, design skills and more with a
portfolio website built on WordPress.
 Forum website – A forum website can be a helpful place for users to ask
questions or share advice. Believe it or not, many forum websites run on
WordPress.
 Event website – Hosting an event? WordPress makes it easy for you to share your
event details and sell tickets.
 E-learning website – Students can take online courses, track their progress,
download resources and much more from an e-learning website. With a special

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.

GCC (GNU Compiler Collection)

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.

The design and development goals are:

 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

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:

1. Drag and Drop Gist Code


2. Creating a folder via the Web Interface
3. Using Git URL Shortener
4. File Finder
5. Using Github Emoji
6. Using Github Command Line Interface
7. Linking Lines
8. Task Checklist
9. 3D Rendering

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.

Apache OpenOffice features six personal productivity applications:

 a word processor (and its web-authoring component),

 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

You might also like