O pen S o urc e Computing
Chapter 1 – Introduction
Asmelash G.
Department of Information Technology
What is Open Source?
• The term "open source" refers to something people can modify and share
because its design is publicly accessible.
• “Open source" designates a broader set of values—what we call “the open
source way”.
• Open source projects, products, or initiatives embrace and celebrate
principles of open exchange, collaborative participation, rapid prototyping,
transparency, meritocracy, and community-oriented development.
2019-04-08 IT4208 Open Source Computing 2
What is Open Source?...
• Any software whose source code is freely distributed and allowing everybody to
modify the code.
• No discrimination against fields of endeavor
• The definition version 1.9
• Distribution of license
• Free distribution
• License must not be specific to a product
• Source code
• License must not restrict other software
• Derived works
• Integrity of the author’s source code
• No discrimination against persons or groups
2019-04-08 IT4208 Open Source Computing 3
History and Evolution of Open Source
• The history time line
2019-04-08 IT4208 Open Source Computing 4
Open Source Projects
• How it is created & distributed
2019-04-08 IT4208 Open Source Computing 5
Open Source Projects…
• Analogy
Single Brain
(Proprietary, eg. Microsoft)
Collective Brain
(Open Source)
2019-04-08 IT4208 Open Source Computing 6
What is the motivation?
• Knowledge to be shared “like knowledge the sharing of recipes among
cooks”
• Most developers have a need or a want to; they are not simply
programmer drones at a huge corporation!
• OSS projects have log files listing all contributors of the software.
• They find it desirable to participate in OSS projects to signal their ability and to
enhance professional advancement.
• Some individuals find it fun to go against the giant such as Microsoft
2019-04-08 IT4208 Open Source Computing 7
Open Source Computing
Open source computing is a diverse and fertile ecosystem of tools and
methods
1. Open source programming languages
2. Open source development environments
3. Open source tools to learn programming
4. Software freedom
5. Contributing to open source projects
6. Open source mentors
2019-04-08 IT4208 Open Source Computing 8
Open Source Programming Languages
• A number of programming languages are essentially open source
projects
• Source code for interpreters and compilers,
• Standard libraries of the language.
• Scripting languages for web based applications such as Perl, PHP and
Python are open source PLs
2019-04-08 IT4208 Open Source Computing 9
Open Source Development Envir’nt
• Open source tools can also be used to provide rich, fully featured
development environments for PLs
• Gnu Compiler Collection (C, C++ Objective C, Fortran, Java, and Ada),
• On GNU/Linux project
• On multipurpose development environments such as Emacs, Eclipse, KDevelop
2019-04-08 IT4208 Open Source Computing 10
Open Source Tools to Learn Programming
• Scratch,
• Alice,
• Squeak E-Toys
• Greenfoot
2019-04-08 IT4208 Open Source Computing 11
Software Freedom
• Free software contains freedom to:
• Study how the program works
• Change it to make it do what you wish
• Distribute the modified version to others
2019-04-08 IT4208 Open Source Computing 12
Contributing to Open Source Projects
• “These freedoms create the opportunity for anyone to contribute to open
source projects, from supporting others and helping with documentation
(‘legitimate peripheral participation’) through spotting and then fixing bugs
to contributing and maintaining modules and even the core code of a
project.” MILES BERRY
• Examples:
• GitHub
• Q & A community
2019-04-08 IT4208 Open Source Computing 13
Open Source Mentors
• Providing internship opportunities for students
• Small open source project
2019-04-08 IT4208 Open Source Computing 14
Open Source vs Proprietary Software
General Attributes Licensing Models Attributes
2019-04-08 IT4208 Open Source Computing 15
Features, Benefits & Myths of OSC
Features and Benefits of Open Source Myths of Open Source
1. Open source is free
Features Benefits
2. Only small companies use open
• Freedom • Flexibility source software
• Innovation • Stability 3. Security is a problem with open
• Integration • Security and reliability source software
• Continuity • Easier evaluation 4. You can’t get support with open
• Better support source software
• Possible savings 5. Open source is not compatible with
proprietary programs
2019-04-08 IT4208 Open Source Computing 16
Open Source Mentors
• Open Source is Free
2019-04-08 IT4208 Open Source Computing 17
Open Source Open Source Technologies
• Open source applications
• TCP/IP protocol suite
• Linux OS
• Firefox
• BIND/DNS
• SENDMAIL
• Apache
• OpenOffice
2019-04-08 IT4208 Open Source Computing 18
Open Source Software
• 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 see; it's the code computer programmers can manipulate to
change how a piece of software—a "program" or "application"—
works.
2019-04-08 IT4208 Open Source Computing 19
Types of Open Source Software
• Operating systems: Linux, FreeBSD, Android, ReactOS
• Web servers: Apache HTTP Server, NGINX, Node.js, Apache Tomcat, Lighttpd
• Database systems: TrustRadius, MySQL, PostgreSQL, MariaDB, Apache Hive, SQLite
• Mobile development frameworks: Ionic, React Native, Flutter, Xamarin
• QA automation tools: Selenium, Watir (Web App Testing in Ruby), Robot framework
• Big data analytics tools: Apache Hadoop, Apache SAMOA, HPCC
• Office software suites: Apache OpenOffice, LibreOffice, NeoOffice
2019-04-08 IT4208 Open Source Computing 20
Types of Open Source Software…
• Content management systems (CMSs):
• WordPress, Django, Joomla, Drupal, DNN
• Enterprise resource planning (ERP) tools:
• ERPNext, MixERP, Apache OFBiz,
• Customer relationship management (CRM) systems:
• SuiteCRM, CiviCRM, EspoCRM,
Src: https://www.altexsoft.com/blog/engineering/how-to-use-open-source-software-
features-main-software-types-and-selection-advice/
2019-04-08 IT4208 Open Source Computing 21
How to select an Open Source Software?
• Functionality and flexibility
• Security – Check SecurityFocus (news portal)
• Maintenance and support
• User community
• Documentation
• Licensing
• Budgeting
2019-04-08 IT4208 Open Source Computing 22
Open Source in Education, Industry,
and Government
Today, open source technologies are being used in education, industries, and by governments
Education Industry Government
• Virtual universities • Data aggregation • s
• Online courses • Device management
• Education portals • Event management
• Courseware • Data analysis
LMS tools • Security
• Moodle
• Bodington
2019-04-08 IT4208 Open Source Computing 23
Project Assignments
• Make a group of four people in a group
• Create an account at GitHub, https://github.com
• Follow me @asmelu, https://github.com/asmelu
• Read more regarding GitHub @https://guides.github.com/
• I will create [a] project/s and we will work with it
• Select one open source software form slides 20 and 21, and learn how to customize it to
your own preference in group
2019-04-08 IT4208 Open Source Computing 24
The End ☺