OPEN-SOURCE SOFTWARE
INTRODUCTION
Software is a collection of instructions, data, or programs used to operate computers and execute
specific tasks. It is the intangible component of a computer system, enabling the hardware to
perform functions as directed by the user or developer.
Types of Software
1. System Software:
1. Manages hardware resources and provides a platform for other software.
2. Examples: Operating systems (e.g., Windows, Linux), and device drivers.
2. Application Software:
1. Designed to perform specific user tasks.
2. Examples: Microsoft Office, web browsers, photo editing software.
3. Development Software:
1. Tools used to create, debug, and maintain other software.
2. Examples: Integrated Development Environments (IDEs) like Visual Studio, Eclipse
Characteristics of Software
Intangibility, Unlike hardware, software cannot be physically touched.
Functionality, Performs specific tasks or operations.
Upgradability, Can be updated or modified without replacing physical
components.
Dependence, Requires compatible hardware and often other software to
function.
Key Components of Software
Code, The programming instructions written in various languages (e.g., Python,
Java).
User Interface (UI), The visual elements through which users interact with the
software.
INTRODUCTION
Open-source software (OSS) is software whose source code is publicly available
for anyone to view, use, modify, and distribute. The philosophy behind OSS
promotes collaboration, transparency, and freedom in software development.
Core Principles:
• Free access to the source code.
• Rights to modify and share the software.
• Collaborative community-driven development.
• Examples: Linux, Apache HTTP Server, Mozilla Firefox, and LibreOffice.
Operating Systems Programming Languages and
Development Tools
• Linux Distributions:
• Programming Languages:
• Ubuntu • Python
• Fedora • Ruby
• PHP
• Debian
• Perl
• CentOS (now Rocky Linux or
• Rust
AlmaLinux) • Development Tools:
• Arch Linux • Git (version control)
• Visual Studio Code
• Eclipse
• Apache Maven
• Jenkins (CI/CD automation)
Web Servers Database Systems
• Apache HTTP Server • MySQL
• Nginx • PostgreSQL
• Lighttpd • MariaDB
• Caddy • SQLite
• Apache Cassandra
Web Development Cloud and Containerization
Frameworks • Kubernetes
• Django (Python) • Docker
• Flask (Python) • OpenStack
• Ruby on Rails (Ruby) • Terraform
• Spring Boot (Java)
• Angular (JavaScript)
Office Suites Graphics and Multimedia
• LibreOffice • GIMP (image editing)
• Apache OpenOffice • Blender (3D modeling and
• Calligra Suite animation)
Gaming • Inkscape (vector graphics)
• Godot Engine (game • Audacity (audio editing)
development) • VLC Media Player
• OpenRA (strategy games) (multimedia playbac
• SuperTuxKart (racing game)
Security Tools Content Management
• Wireshark (network analysis) Systems (CMS)
• OpenVAS (vulnerability • WordPress
scanning) • Joomla
• Metasploit Framework • Drupal
(penetration testing) • Ghost
• Nmap (network scanning)
• ClamAV (antivirus)
Communication and Data Analysis and Machine
Collaboration Learning
• Mozilla Thunderbird (email • TensorFlow
client) • Scikit-learn
• Nextcloud (file sharing and • R
collaboration) • Apache Spark
• Rocket.Chat (messaging • KNIME
platform)
• Jitsi Meet (video
conferencing)
History of Open-Source Software (OSS)
• Pre-1980s:
• Software was often distributed along with hardware, and users could freely
access and modify the code.
• 1983:
• Richard Stallman launched the GNU Project intending to create a free
operating system. This project emphasized “freedom” as a primary principle.
• 1985:
• The Free Software Foundation (FSF) was established by Stallman to
advocate for free software and provide tools and frameworks like the GNU
General Public License (GPL).
• 1991:
• Linus Torvalds released the Linux Kernel, which, when combined with GNU tools,
became the widely used Linux operating system.
• 1998:
• The term "Open Source" was introduced as a business-friendly rebranding of
free software to emphasize the practical benefits of collaborative development.
• The Open-Source Initiative (OSI) was formed to promote and certify open-
source software.
• 2000s-Present:
• OSS gained mainstream acceptance, powering key technologies such as cloud
computing, web servers, and enterprise software.
Difference Between Open Source and Proprietary Software
Feature Open-Source Software (OSS) Proprietary Software
Available for viewing, modification,
Source Code Hidden and not accessible.
and sharing.
Usually requires purchase or
Cost Often free to use.
licensing fees.
Distributed under licenses like GPL, Restrictive licenses prohibiting
Licensing
Apache, or MIT. modification.
Fully customizable due to open Limited to the features provided by
Customization
access. the vendor.
Community-driven and Controlled by a single company or
Development
collaborative. developer.
Community-based or optional paid
Support Vendor-provided support services.
support.
1. Source Code Access
• Open Source Software, Users can access and edit the source code to understand how the
software works and make improvements or customizations.
• Proprietary Software, Source code is a trade secret, making it inaccessible for modification or
inspection.
2. Licensing and Usage
• OSS, Distributed under permissive licenses like GPL or MIT, allowing redistribution and
modification with minimal restrictions.
• Proprietary, Licensing terms often restrict usage to a single user or device and prohibit sharing
or reverse-engineering.
3. Cost
• OSS, Often free to use, with optional costs for support or advanced features. This makes it
appealing for cost-sensitive users.
• Proprietary, Typically requires payment upfront or recurring fees, increasing costs for long-
term use.
4. Development Model
• OSS, Developed collaboratively by a global community, which leads to
diverse contributions and quicker innovation.
• Proprietary, Developed by a dedicated team within a single company,
focusing on specific business goals.
5. Customization and Flexibility
• OSS, High flexibility; users can adapt the software to fit their unique
requirements.
• Proprietary, Customization options are predefined and often limited to
what the vendor allows.
6. Security
• OSS, Open code allows more developers to identify and fix vulnerabilities,
enhancing security through transparency.
• Proprietary, Relies on the vendor to detect and patch vulnerabilities, which
may delay fixes.
Key Milestones in the OSS Movement
1. GNU Project (1983):
1. Created the foundation for free software and the philosophy of user freedom.
2. Linux Kernel (1991):
1. Revolutionized OSS by creating an open and flexible operating system used globally.
3. Apache HTTP Server (1995):
1. Became the dominant web server, showcasing the power of community-driven projects.
4. Open-Source Initiative (OSI) Formation (1998):
1. Defined the Open-Source Definition and promoted OSS to businesses and governments.
5. Git and GitHub (2005/2008):
1. Made collaborative software development more efficient, enabling the growth of OSS
communities.
6. Adoption by Enterprises (2000s):
1. Companies like Red Hat, Google, and IBM embraced OSS for its reliability and cost-efficiency.
Overview of the Free Software Foundation (FSF) and Open-
Source Initiative (OSI)
1. Free Software Foundation (FSF):
• Founded by Richard Stallman in 1985 to advocate for free software.
• Core Philosophy: Software should respect users’ freedom and
rights.
• Key Contributions:
• GNU General Public License (GPL), Ensures that software
remains free and derivatives are also open-source.
• Development of free tools and software libraries.
• Focus: Ethical and moral aspects of software freedom.
2. Open-Source Initiative (OSI):
• Founded in 1998 by Bruce Perens and Eric Raymond.
• Core Philosophy: Promote open-source software based on practical
benefits, such as cost-efficiency, innovation, and collaboration.
• Key Contributions:
• Open-Source Definition (OSD), A standard defining the criteria
for open-source software.
• Certification of open-source licenses, ensuring compatibility and
compliance.
• Focus: Encouraging businesses and governments to adopt OSS for
practical advantages.