CS – 19 Open Source Tools
Unit-1 Open Source Software
❖ Basic concept about What is source code?
• Source code is the version of software as it is originally written by
human in plain text.
• The term software refers to all operating system, application
program.
• Source code can be written in any of the programming languages
(C, C++, COBOL, FORTRAN, JAVA, PHP,PYTHON.).
Q-1Understanding Open Source Software
• Definition
• Principles
• History and evolution
➢ Definition: -
• Open source software is software with source code that anyone can inspect,
modify, and enhance.
• "Source code" is the part of software that most computer users don't ever
[Link] code of computer programmers that can manipulate to change how a
piece of software a "program" or "application” that works. Programmers
who have access to a computer program's source code can improve that
program by adding features to it or fixing parts that don't always work
correctly.
➢ Principle of open source software
• An open source software (OSS) has become an integral part of a model
technology landscape.
• It is set of principles and practices that promote transparency, collaboration
and accessibility in software development.
• Let us now explore the principle of open source software.
Page 1 of 16
Prepared By: Krupali Barad
1. Free Redistribution
2. Access to source code
3. Derived works
4. Integrity of Author’s code
5. No discrimination against person or group
6. No discrimination against field of Endavor
7. Distribution of license
8. License must not be specific to a product
9. License must not be restrict other software
10. License must be technology -Neutral
11. No Royalties
12. Collaboration and community
1. Free Redistribution
• One of the fundamental principles of open source software is that can be
freely distributed to anyone without restriction.
• Usershave the freedom to share, copy and distribute the software without
violating licensing agreement.
2. Access to source code
• Opensource software makes it source code available to publicly.
• Users can view, modify and study the source code which provide
transparency and promote collaborate development.
• Access to the source code allows for customization and adaptation to
specific needs.
3. Derived works.
• Users of open source software have the rights to create derived work based
on original software.
• They can modify the code to add feature, fix bugs or adapt the software for
new use cases.
• This principle encourage innovation and empowers developers to build
upon existing solution.
4. Integrity of the author’s code.
• While users can modify open source software, they must ensure that their
contribution don’t compromise the integrity of the original author’s code.
Page 2 of 16
Prepared By: Krupali Barad
• This principle safeguards the quality and trustworthiness of the software,
preventing malicious alteration.
5. No discrimination against person or group
• Open source license prohibit discrimination against individual or group in
the use of the software.
• This means that open source software is accessible of everyone regarding
of their background, nationality or affiliation.
• it promotes inclusivity and quality.
6. No discrimination against field of Endeavor
• Open source software can be used in any field or industry without
restriction.
• It has no any limitation to specific application or purposes.
• This principle encourages the versatility of open source software, making
it suitable for a wide range of use cases.
7. Distributed of License
• Open source licensesare included with software distribution, ensuring that
users are aware of their rights and obligation.
• Users are provided with clear guidelines on how they can use, modify
and distribute the software while adhering to the term of the license.
8. License must not be specific to a product
• Open source licenses should not be tied to a specific product or vendor.
• They are design to be independent of any particular software or company.
• This principle allows users to use open source software without being locked
into proprietary ecosystems.
9. License must not be restrict other software
• Open source licenses should not impose restrictions on other software that
is used alongside open source component.
• Users should have the freedom to combine open source and proprietary
software as needed.
10. License must be technology -Neutral
• Open source licenses are designed to be technology neutral, meaning they
do not favor any specific technology stack of platform.
• This ensure that open source software can be integrated into a wide range
of technological environments.
11. No Royalties
Page 3 of 16
Prepared By: Krupali Barad
• Open-source software is typically available at no cost and users are not
required to pay royalties or licensing fees
• This principle promotes accessibility and reduces financial barriers to
software adoption.
12. Collaboration and Community:
• Open-source development thrives on collaboration and community
participation
• Developers from around the world contribute to open-source projects, share
knowledge, and collectively improve the software.
• This collaborative spirit is a cornerstone of open source principles.
• These principles have led to the creation of a vast ecosystem of high-quality
software that is freely accessible and adaptable to a wide range of needs.
• software continues to play a pivotal role in shaping the digital landscape and
driving innovation across various industries.
➢ History and evolution
1. Early Computing Era (1950s-1970):
• During the starting of computing, software was generally shared freely
among developers and researchers.
• This era saw the birth of early programming languages and software tools
that were often distributed without strict proprietary rights.
2. Proprietary Software Dominance (1970-1980):
• As commercialization of software grew, proprietary models became
dominant.
• Companies like IBM, Microsoft, and Oracle led the market, controlling the
distribution and licensing of software.
3. Emergence of Free Software Movement (1980):
• Richard Stallmanlaunched the Free Software Foundation (FSF) in 1985,
advocating for software that users could freely use, modify, and distribute.
This led to the GNU (GNU's Not Unix) Project, which aimed to develop a
completely free Unix-like operating system.
4. GNU GPL License (1989):
Page 4 of 16
Prepared By: Krupali Barad
• The GNU General Public License (GPL) was introduced by Richard Stallman
in 1989. It allowed software to be freely used, modified, and distributed under
specific conditions, ensuring that derivative works remained open source.
5. Birth of Linux (1991):
• Linus was released the Linux kernel in 1991 under the GPL. Linux, combined
ssswith GNU tools, created a complete operating system that was both free
and open source.
• This marked a significant milestone in the open source movement.
6. The Cathedral and the Bazaar (1997):
• Eric S. Raymond's essay, "The Cathedral and the Bazaar," published in 1997,
analysed the effectiveness of the open source development model. It
highlighted the decentralized, collaborative nature of open source projects
compared to traditional closed development.
7. Open Source Initiative (1998):
• The term "open source" was formalized in 1998 by a group of individuals
who later formed the Open Source Initiative (OSI). They defined open source
software as having specific criteria related to its distribution and licensing.
8. Growth and Acceptance (2000s-2010s):
• Open source software gained mainstream acceptance in the 2000, driven by
projects like Apache HTTP Server, MySQL, and Mozilla Firefox.
• Businesses increasingly adopted open source solutions due to their flexibility,
cost-effectiveness, and community support.
9. Expansion Beyond Software (2010s-present):
• The principles of open source have expanded beyond software to include
hardware (e.g., open-source hardware designs), data (open data initiatives),
and standards (open standards).
• Organizations and governments worldwide have embraced open source as a
model for collaboration and innovation.
10. Impact on Industry and Society:
• Open source software has revolutionized the tech industry by democratizing
access to technology, that innovation through collaboration, and providing
transparency in software development.
• It continues to play a crucial role in shaping the future of computing and
digital infrastructure.
Page 5 of 16
Prepared By: Krupali Barad
➢ Evolution of open source software.
1. Early Beginnings (Pre-1980)
• The concept of open source began with the sharing of source code among
researchers and developers.
• Early computer science communities at universities and research institutions
often shared their code to improve and learn from each other.
• And Richard Stallman launched the Free Software Foundation (FSF) in
1985.
2. Birth of Open Source (1980-1998)
1989:
• Richard Stallman launched the GNU Project with the aim of creating a free
Unix-like operating system.
• This was a foundational moment for open source, as it introduced the concept
of "free software" with the GNU General Public License (GPL) to ensure that
software remains free for users to run, modify, and distribute.
3.1991:
• Linus released the first version of the Linux kernel, an open-source alternative
to proprietary Unix systems.
• The combination of the Linux kernel and GNU utilities led to the creation of a
full-fledged operating system known as Linux.
4.1998:
• The term "open source" was formally coined at a meeting organized by Eric
S. Raymond and Bruce Perens.
• This marked a shift from the term "free software" to a broader, more
commercially friendly term that emphasized the practical benefits of open-
source development.
Q-2 Open-Source Licensing
• Overview
• Rights and responsibilities of users and developers under open source
licenses.
• Contracts & licenses and related issues
➢ Overview
Page 6 of 16
Prepared By: Krupali Barad
1. Introduction to Open Source Software
• Definition:
Software with source code that is freely available for anyone can modify,
inspect and enhance.
• History:
Brief history of open-source software, including key milestones such as the
release of the GNU General Public License (GPL) and the formation of the
Open Source Initiative (OSI).
2. Key Concepts in Open Source Licensing
• Source Code:
The human-readable instructions that make up a software program.
• Binary Code:
The machine-readable output of source code, typically distributed as
executable files.
• Licenses:
Legal documents that how software can be used, modified, and
shared.
3. Types of Open Source Licenses
1. Permissive Licenses:
• Allow code to be freely used, modified, and distributed with minimal
restrictions.
• Examples: MIT License (Massachusetts Institute of Technology), Apache
License 2.0, BSD License.
2. Copyleft Licenses:
• Require derivative works to be licensed under the same terms as the
original work.
• A derivative work is a concept under copyright law.
• Examples: GNU General Public License (GPL), GNU Lesser General Public
License (LGPL).
3. Hybrid Licenses: Combine aspects of permissive and copyleft licenses is
called hybrid licenses.
Page 7 of 16
Prepared By: Krupali Barad
• Examples: Mozilla Public License (MPL).
4. Importance of Licensing in Open Source Software
• Legal Protection:
Protects the rights of the authors and contributors, ensuring that their work
is not used in ways they do not approve it.
• Community Building:
Encourages collaboration and sharing within the open-source community by
setting clear guidelines on how software can be used and contributed to.
• Commercial Use:
Allows businesses to use open-source software and Key Licensing Terms and
Conditions
6. Open Source Licensing and Intellectual Property
• Copyright: How copyright law applies to open-source software and how it is
different from proprietary software.
• Trademarks: Use of trademarks in open source software to protect branding
and prevent misuse.
7. Examples of Popular Open Source Licenses
• GNU General Public License (GPL):
strong copyleft license that requires derivative works to be licensed under
the GPL.
• MIT License:
A permissive license that is simple and allows for almost unrestricted use,
modification, and distribution.
• Apache License 2.0:
A permissive license that includes an explicit grant of patent rights from
contributors.
8. How to Choose an Open Source License
• Project Goals:
Consider whether you want to encourage wide use and modification or
enforce certain restrictions.
• Community Expectations:
Align with the norms and expectations of the community related to the
project.
• Legal Considerations:
Page 8 of 16
Prepared By: Krupali Barad
Ensure that the license is legally sound and compatible with other licenses
used in the project.
9. Compliance and Enforcement
• License Compliance: Understanding and follow to the terms of the chosen
license.
• Enforcement: How violations of open-source licenses can be addressed and
resolved.
10. Resources and Tools for Managing Open Source Licenses
• License Checkers: Tools and services for scanning codebases for license
compliance.
• License Compatibility: Resources for understanding how different licenses
interact.
➢ Rights and responsibilities of users and developers under
open source licenses.
Rights and Responsibilities of Users
Rights
1. Freedom to Use:
Users can use the software for any purpose without restriction.
2. Freedom to Study and Modify:
Users can study the source code and modify it to fit their needs. They can
also distribute their modified versions.
3. Freedom to Distribute:
Users can distribute original or modified versions of the software to others.
4. Access to Source Code:
Users have the right to access the source code of the software.
Responsibility
Page 9 of 16
Prepared By: Krupali Barad
1. Respect License Terms and condition:
Users must comply with the specific terms and condition of the open source
license, such as including copyright notices or licensing information.
2. Attribution:
When redistributing the software, users may need to give appropriate credit
to the original authors.
3. No Warranty:
Users should be aware that open source software is typically provided "as-
is," without any warranty or guarantee of support.
Rights and Responsibilities of Developers
Rights
1. Freedom to License:
Developers can choose the open source license that best fits their needs and
goals, as long as they comply with its terms.
2. Attribution and Credit:
Developers can receive credit for their contributions according to the terms
of the license.
3. Control Over Contributions:
Developers can manage how others contribute to their projects, including
setting guidelines or requiring contributors to agree to specific terms.
Responsibility
1. License Compliance/follow:
Developers must to follows the terms of the open source license they
select, including obligations related to distribution and modification.
2. Maintaining Open Access:
Page 10 of 16
Prepared By: Krupali Barad
If using a license that requires source code to remain open (e.g., copyleft
licenses), developers must ensure that the source code remains accessible
when redistributing the software.
3. Providing Attribution:
Developers must give appropriate credit to other contributors and respect
the attribution requirements of licenses used in their project.
4. Contributing Back:
In a collaborative environment, developers are encouraged (though not
always required) to contribute improvements or bug fixes back to the
original project or community.
➢ Contracts & licenses and related issues
1. Contributor Agreements:
• Many open-source projects use contributor license agreements (CLAs) to
formalize the contribution process.
• These agreements ensure that contributions are licensed under the project's
open-source license and may include clauses regarding copyright.
2. Commercial Licensing:
• Some open-source projects offer dual licensing, where the software is
available under an open-source license and a commercial license.
• This allows businesses to use the software in proprietary applications while
providing revenue to the project.
3. Support and Services Contracts:
• Open-source tools often come with the option for additional commercial
support or services.
• Contracts for these services should clearly define the scope, terms, and
pricing for support, maintenance, and other services.
4. Distribution Agreements:
• When distributing open-source software, especially if bundled with other
software, agreements should outline the terms under which the software is
included, how licenses are managed, and how compliance is ensured.
Page 11 of 16
Prepared By: Krupali Barad
5. Derivative Works:
Open-source licenses may have specific terms regarding the creation of works
or derivative works. Contracts related to these aspects should clarify how
derivatives are managed and how the original license terms apply.
Related Issues
1. License Attribution and Documentation:
Ensuring proper attribution and documentation in distributed software is
critical. Failing to include required license texts or acknowledgments can lead
to legal issues.
2. Patents and Intellectual Property:
Some open-source licenses include patent clauses to protect users from
patent litigation. Understanding these clauses is important for both
contributors and users to avoid potential legal conflicts.
3. Governance and Maintenance:
Open-source projects often have governance structures to manage
contributions and licensing issues. Clear documentation and agreements help
maintain the integrity and sustainability of the project.
4. Security and Vulnerability Management:
Open-source software may have vulnerabilities that need addressing.
Contracts for security services or vulnerability management should specify
how issues are identified, reported, and resolved.
Q-3 Application of Open sources
1. Web Development
• Content Management Systems (CMS): WordPress, Joomla, and Drupal are
popular for building and managing websites.
• Web Servers: Apache HTTP Server and Nginx are widely used to serve web
content.
2. Software Development
• Programming Languages: Languages like Python, Ruby, and PHP are open
source and have extensive libraries and frameworks.
Page 12 of 16
Prepared By: Krupali Barad
• Integrated Development Environments (IDEs): Tools like Eclipse,
NetBeans, and Visual Studio Code help developers write, test, and debug
code.
3. Operating Systems
• Linux: A versatile open source operating system used in servers, desktops,
and embedded systems.
• Unix-like Systems: FreeBSD and OpenBSD offer secure and robust
environments.
4. Data Management
• Database Management Systems (DBMS): MySQL, PostgreSQL, and
SQLite are used for storing and managing data.
• Data Analysis Tools: R and Python libraries (like pandas and NumPy) are
used for data analysis and visualization.
5. Networking
• Network Monitoring: Tools like Wireshark and Nagios help in monitoring
and analyzing network traffic and performance.
• Firewall and Security: pfSense and iptables provide network security
solutions.
6. Education and Research
• Learning Management Systems (LMS): Moodle and Sakai are used to
manage educational content and courses.
• Research Tools: Jupyter Notebook is popular for interactive computing and
data analysis.
7. Graphics and Multimedia
• Image Editing: GIMP is an alternative to Adobe Photoshop for raster
graphics editing.
• Video Editing: Blender is used for 3D modeling and video editing.
8. Business and Enterprise
• Customer Relationship Management (CRM): SuiteCRM and Odoo offer
CRM solutions for managing customer interactions.
• Enterprise Resource Planning (ERP): Odoo and ERPNext are used for
integrating various business processes.
9. Cloud Computing
Page 13 of 16
Prepared By: Krupali Barad
• Cloud Platforms: OpenStack provides cloud infrastructure management, and
Kubernetes helps with container orchestration.
10. Security
• Penetration Testing: Kali Linux and Metasploit Framework are used for
security testing and vulnerability assessments.
11. Community and Collaboration
• Project Management: Redmine and Taiga are used for tracking project tasks
and progress.
• Version Control: Git and platforms like GitHub and GitLab facilitate
collaborative development and version control.
Q-4 Open Sources Operating System:
• FEDORA
• UBUNTU
Introduction
• Open source operating systems are software systems whose source code is
available for anyone to use, modify, and distribute.
• This case study focuses on two popular open-source operating systems:
Fedora and Ubuntu.
• We will explore their history, features, community support, and typical use
cases.
Overview of Open Source Operating Systems
• Open source operating systems provide users with the freedom to customize
their systems.
• This is in contrast to proprietary operating systems like Windows and
macOS, which restrict access to their source code.
• Open source systems are typically maintained by a community of developers
and users who contribute to their development and support.
❖ Fedora
Page 14 of 16
Prepared By: Krupali Barad
History
• Fedora was first released in November 2003 by Warren Togami and it
sponsored by Red Hat, a major player in the open-source community.
• It serves as a testing ground for new features that may eventually be
included in Red Hat Enterprise Linux (RHEL).
Features
1) Cutting-edge Software: Fedora is known for including the latest software and
technologies.
2) Modularity: Users can choose different versions of software packages to fit
their needs.
3) Security: Fedora includes SELinux (Security-Enhanced Linux) for advanced
security features.
4) Regular Releases: Fedora has a predictable release schedule, with new versions
every six months.
Community Support
Fedora has a vibrant community with group, mailing lists, and chat channels. Users
can find documentation and tutorials on the official Fedora website.
Use Cases
• Development Environment: Fedora is ideal for developers who want to
work with the latest tools.
• Enterprise Testing: Businesses use Fedora to test new software before
deploying it in production environments.
Page 15 of 16
Prepared By: Krupali Barad
❖ Ubuntu
History
• Ubuntu was first released in October 2004 and is based on Debian. (Mark
Shuttleworth gathered a small team of Debian)
• It is developed by Canonical Ltd. and has gained a reputation for being user-
friendly.
Features
• User-Friendly Interface: Ubuntu provides a simple interface that is
accessible to beginners.
• Software Center: Users can easily install and manage software through the
Ubuntu Software Center.
• Long-Term Support (LTS): Ubuntu offers LTS versions, which provide five
years of support and updates.
• Wide Hardware Compatibility: Ubuntu supports a broad range of
hardware, making it suitable for various devices.
Community Support
• Ubuntu has one of the largest open-source communities.
• Users can access extensive documentation, community groups, and
tutorials. There are also regular events and conferences to connect
community engagement.
Use Cases
• Personal Computing: Ubuntu is an excellent choice for home users who
want a reliable and easy-to-use operating system.
• Server Environment: Ubuntu Server is widely used for web hosting and
cloud computing due to its stability and performance.
Page 16 of 16
Prepared By: Krupali Barad