CMPF 124:Basic Skills for Knowledge Workers
OPEN SOURCE SOFTWARE
CMPF124: Basic Skills for Knowledge Workers
2
Chapter Overview
Introduction to FSF
Open Source Software vs. Software Piracy
Introduction to GNU
Comparisons between Open Source and Commercial Software
Introduction to FSF
CMPF124: Basic Skills for Knowledge Workers
4
Background
• FSF stands for Free Software Foundation
• Early days of computing..1950's,1960's– it was customary for programmers to share
software– e.g. if anybody sees someone using an
unfamiliar and interesting program, they could always ask to see the source code, so that they could read it, change it, or modify parts of it to make a new program
CMPF124: Basic Skills for Knowledge Workers
5
Background (cont.)
• 1970’s– situation changed drastically– software became proprietary– users were prevented from sharing or
modifying programs
CMPF124: Basic Skills for Knowledge Workers
6
Background (cont.)
• 1980’s– proprietary software had become the norm– computing community was no longer free to
cooperate in using and altering software for specific needs
– users had to sign a nondisclosure agreement even to get an executable copy of software
– by the 1980s, software freedom had been lost
CMPF124: Basic Skills for Knowledge Workers
7
FSF’s Mission
• To preserve, protect and promote the freedom to use, study, copy, modify, and redistribute computer software, and to defend the rights of free software users
CMPF124: Basic Skills for Knowledge Workers
8
FSF’s Function
• Dedicated to promote computer users' right to use, study, copy, modify, and redistribute computer programs
• Promotes the development and use of free software particularly the GNU operating system and free documentation
CMPF124: Basic Skills for Knowledge Workers
9
FSF’s Function (cont.)
• Concentrates on development of new free software—and on making that software into a coherent system, which can eliminate the need to use proprietary software
• FSF protects, preserves, and promotes free software
• Helps to spread awareness of the ethical and political issues of freedom in the use of software
CMPF124: Basic Skills for Knowledge Workers
10
What is Free Software?
• Free software is a matter of freedom not price
• Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software
• Refers to four kinds of freedom, for the users of the software
CMPF124: Basic Skills for Knowledge Workers
11
What is Free Software? (cont.)
(freedom 0)
The freedom to run the program, for any purpose
(freedom 1)
The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this
CMPF124: Basic Skills for Knowledge Workers
12
What is Free Software? (cont.)
(freedom 2) The freedom to redistribute copies so you
can help your neighbor(freedom 3)
The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. Access to the source code is a precondition for this
CMPF124: Basic Skills for Knowledge Workers
13
Funding
• FSF distributes copies of GNU software and manuals for a distribution fee, and accepts tax-deductible gifts to support GNU development
• FSF raises funds by selling GNU CD-ROMs, T-shirts, manuals and deluxe distributions (all of which users are free to copy and change)
CMPF124: Basic Skills for Knowledge Workers
14
Funding (cont.)
• Donations (rely on support from individuals)
• Receives very little funding from corporation or grant-making foundations
Open Source Software vs. Software Piracy
CMPF124: Basic Skills for Knowledge Workers
16
What is Software Piracy?
• Any use of software that is beyond the allowable terms of the software license under which it's delivered
• Unauthorized duplication of computer software• Most common activity in software piracy:
taking software from someone else that has purchased the original software and making illegal copies of it
CMPF124: Basic Skills for Knowledge Workers
17
Types of Software Piracy?
Five common types of software piracy:• End User Piracy
Occurs when a company employee reproduces copies of software without authorization – acquiring academic or other restricted or non-retail
software without a license for commercial use– using one licensed copy to install a program on
multiple computers
CMPF124: Basic Skills for Knowledge Workers
18
Types of Software Piracy? (cont.)
• Client-Server OveruseOccurs when too many employees on a network are using a central copy of a program at the same time– if you have a local-area network and install
programs on the server for several people to use, you have to be sure your license entitles you to do so
CMPF124: Basic Skills for Knowledge Workers
19
Types of Software Piracy? (cont.)
• Internet Piracy
Occurs when software is downloaded from the Internet– pirate websites that make software available
for free download or in exchange for uploaded programs
CMPF124: Basic Skills for Knowledge Workers
20
Types of Software Piracy? (cont.)
• Hard-Disk Loading
Occurs when a business that sells new computers loads illegal copies of software onto the hard disks to make the purchase of the machines more attractive
CMPF124: Basic Skills for Knowledge Workers
21
Types of Software Piracy? (cont.)
• Software Counterfeiting
This type of piracy is the illegal duplication and sale of copyrighted material with the intent of directly imitating the copyrighted product
CMPF124: Basic Skills for Knowledge Workers
22
OSS could Stem Software Piracy
• OSS is helping people around the globe escape the crime of software "piracy“
• Open source software can eliminate software piracy because under most of the recognized open-source software licenses, it is perfectly acceptable to purchase a single copy of software and install it on any number of machines, or simply download it for free off the Internet
CMPF124: Basic Skills for Knowledge Workers
23
OSS could Stem Software Piracy (cont.)
• Users do not have to worry about buying licenses in order to install the software in few computers
• Open source software price fall to a point that is dramatically low compared to proprietary software and thus affordable to millions
Introduction to GNU
CMPF124: Basic Skills for Knowledge Workers
25
GNU/Linux and History
• GNU = GNU’s Not Unix• It is an Unix-like operating system that comes
with source code that can be copied, modified and redistributed that runs on different hardware (PCs, Macs, DEC Alphas, etc.)
• It is free• Created by GNU project in 1984 by Richard M.
Stallman• Written almost an entire operating system by the
early 1990s, but the kernel was missing
CMPF124: Basic Skills for Knowledge Workers
26
GNU/Linux and History (cont.)
• Linus Torvalds, a graduate student of the University of Helsinki in Finland, added the kernel in the 1990s
• This GNU/Linux released under the GNU General Public License (GPL)
CMPF124: Basic Skills for Knowledge Workers
27
Linux Kernel
• The OS used by all GNU/Linux systems• Some of the features provided by Linux Kernel :
– Multi-tasking – Security – Virtual Memory– Networking – File system– Hardware
CMPF124: Basic Skills for Knowledge Workers
28
GNU Software (cont.)
• Software that is released under the GNU Project• Available by several different methods:
– Buy copies on CD-ROM from the FSF – Get it by FTP – Get a copy from a friend– Buy a computer with a wholly free GNU/Linux system
preinstalled from one of the companies that can offer this
– Get the development sources for a package and build them
CMPF124: Basic Skills for Knowledge Workers
29
GNU/Linux capability
• GNU/Linux can do a lot of things
• It can do tasks which were originally left to server Operating Systems like Solaris, Unix, etc. (enterprise environment)
• It can also do tasks performed on normal desktop Operating Systems
CMPF124: Basic Skills for Knowledge Workers
30
GNU/Linux for the Enterprise Environment
• It is a popular choice among IT Managers, Systems/Network administrators for enterprise solutions
• Because GNU/Linux has its roots in Unix, it can do practically anything any other Unix-variant can
• Some companies that use GNU/Linux in their day-to-day operations:– Google.com– Amazon.com– Various Internet Service Providers
CMPF124: Basic Skills for Knowledge Workers
31
GNU/Linux for the Desktop
• A ‘desktop environment’ is a set of software that provides a common look-and-feel along with a standard set of applications which use the common look
• Recently there has been efforts to push GNU/Linux as a desktop Operating System
• More applications, easier to user:– XFree86 with GNOME or KDE– StarOffice/OpenOffice, KOffice, AbiSuite, etc.– GIMP– Package management utilities
CMPF124: Basic Skills for Knowledge Workers
32
What exactly can it do?
• Network/Service-related
• Scientific-computing
• General Productivity
• Entertainment
• And lots more
Comparisons between Open Source and Commercial Software
CMPF124: Basic Skills for Knowledge Workers
34
What is Open Source Software?
• Software whose source codes are available to anyone to see
• Software for which the source code is readily obtainable, with or without a charge
• Development work on open-source projects is voluntary
CMPF124: Basic Skills for Knowledge Workers
35
What is OSS? (cont.)
• Basic idea behind open source is to enable programmers to:– Read– Modify– Redistribute
the source code of a piece of software
CMPF124: Basic Skills for Knowledge Workers
36
Characteristics of OSS
• Source code of open source programs are accessible to users such that they can make changes or extensions to that code
• Changes and extensions are freely redistributable
• The source code can be modified by many people without the need for those people to be employed by the same software vendor
CMPF124: Basic Skills for Knowledge Workers
37
Distribution Terms of OSS
• To be OSI certified, open source software must be distributed under a license that guarantees the right to read, redistribute, modify, and use the software freely
What is OSI ?Open Source Initiative (OSI) is a non-profit corporation dedicated to managing and promoting the Open source definition for the good of the community, specifically through the OSI Certified Open Source Software certification mark and program
CMPF124: Basic Skills for Knowledge Workers
38
What is Commercial Software?
• Also known as closed-source software– e.g. Microsoft Windows operating systems, Microsoft Office
• Source code is a carefully guarded secret• Users are not allowed to do whatever they like
with the software• Requires purchase and licensing• Developed in a commercial environment, that
has "profit as a chief aim"
CMPF124: Basic Skills for Knowledge Workers
39
OSS vs. Commercial Software
Criteria Open source software
Commercial software
Users Most of the users of these applications are relatively technically sophisticated.
Average computer users.
Funding OSS projects are voluntary and so work on small budgets.
Laboratories and large scale experiments are not economically viable for most OSS projects. Constrained by resource limitations.
Has money and financial incentive to promote commercial software.
Proper investment and management enables developers who are totally focused to create a really good program in a much shorter time.
CMPF124: Basic Skills for Knowledge Workers
40
OSS vs. Commercial Software (cont.)
Criteria Open source software
Commercial software
Development Work on open-source projects is voluntary, developers work on the topics that interest them.
Volunteers work thru internet.
Hired programmers work for software companies in developing software.
Normally work in a focused group (Software development team).
CMPF124: Basic Skills for Knowledge Workers
41
OSS vs. Commercial Software (cont.)
Criteria Open source software
Commercial software
Development
(cont.)
Open source projects are rarely developed against a fixed timeline, affording more opportunity for peer review, and usually offer extensive beta testing before “release.”
Have datelines to meet. Commercial systems development is usually about solving the needs of another group of users. The incentive is to make money by selling software to customers who do not have development knowledge themselves.
CMPF124: Basic Skills for Knowledge Workers
42
OSS vs. Commercial Software (cont.)
Criteria Open source software
Commercial software
Development
(cont.)
Users don’t just report bugs, as they would do with commercial software, but actually track down their root causes and fix them. Many developers review each other’s code, in order to understand the codes before it can be changed or extended.
Users only give feedback of the bugs to developers.
CMPF124: Basic Skills for Knowledge Workers
43
OSS vs. Commercial Software (cont.)
Criteria Open source software
Commercial software
Development
(cont.)
Most projects lack formal requirements, capture processes and even formal specifications.
Capturing the requirements of software for such customers is acknowledged as a difficult problem in software engineering and consequently techniques have been developed to attempt to address it.
CMPF124: Basic Skills for Knowledge Workers
44
OSS vs. Commercial Software (cont.)
Criteria Open source software
Commercial software
Cost of software
The differences in cost can be equally vast -- in many cases the Open Source solution is both cheaper and better.
Need to pay if users purchase a packaged commercial distribution. Free if downloaded.
Licensing fees.
Customers need to pay ongoing licensing fees or royalties.
CMPF124: Basic Skills for Knowledge Workers
45
Pros and Cons of OSS
• Variation of source codespros:-different parts of a software module (codes) can be swapped out and replaced by superior modules that are then incorporated in the next version
cons:-variations in between modules and different versions of modules can irritate and confuse, marring the overall user experience
CMPF124: Basic Skills for Knowledge Workers
46
Pros and Cons of OSS (cont.)
• Open source software is freepros:-a functional open source software can be downloaded from mirror sites without any payment
cons:--accountability issues-no one party can be referred to or held responsible if problem arises with the downloaded software
CMPF124: Basic Skills for Knowledge Workers
47
Pros and Cons of OSS (cont.)
• It's open source
pros:-- programmers can play around with the source codes,
modify and improve it- updates, bug fixes and security patches are usually
much faster in coming when things go wrong
cons:-- deviants; they can easily mess up the source code
CMPF124: Basic Skills for Knowledge Workers
48
Example of OSS
• Operating SystemsLinux: the most used Unix-like operating system. Versions have been run on anything from a handheld computers and regular PCs, to the world's most powerful supercomputers.
FreeBSD, OpenBSD, and NetBSD: The BSDs are all based on the Berkeley Systems Distribution of Unix, developed at the University of California, Berkeley.
CMPF124: Basic Skills for Knowledge Workers
49
Example of OSS (cont.)
• InternetApache, which runs over 50% of the world's web servers.
Mozilla, the open source redesign of the venerable Netscape Browser, is retaking the ground lost by Netscape in the "browser wars". It has quickly moved from 1.0 to 2.0, adding functionality, stability and cross-platform consistency that is not available from any other browser.
CMPF124: Basic Skills for Knowledge Workers
50
Example of OSS (cont.)
• Programming ToolsPerl, Zope, and PHP, are popular engines behind the "live content" on the World Wide Web.
Powerful High Level Languages like Python, Ruby, and Tcl/Tk owe much of their success and prevalence to the active community of developers that use them and continue their development.
The End
CMPF 124:
Basic Skills for Knowledge Workers