Open-Source Software

advertisement
Open-Source Software
ISYS 475
Open-Source Software
• Open-source software (OSS) is computer
software with its source code made available and
licensed with an open-source license in which the
copyright holder provides the rights to study,
change and distribute the software for free to
anyone and for any purpose.
• Digital rights management (DRM) technologies
attempt to give control to the seller of digital
content or devices after it has been given to a
consumer.
Free Software and Free Software Foundation
• Free software is about having control over the
technology we use in our homes, schools and
businesses, where computers work for our individual
and communal benefit, not for proprietary software
companies or governments who might seek to restrict
and monitor us
• The Free Software Foundation is working to secure
freedom for computer users by promoting the
development and use of free (as in freedom) software
and documentation and by campaigning against
threats to computer user freedom like Digital Rights
Management (DRM) and software patents.
– http://www.fsf.org/
Free Software Definition
• A program is free software if the program's users
have the four essential freedoms:
– The freedom to run the program, 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
your neighbor (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.
Brief History
• Tiny BASIC: 1975
– It is a dialect of the BASIC programming language that can
fit into as little as 2 or 3 KB of memory.
– Collaboratively developed and implemented on many
computers.
– "@COPYLEFT ALL WRONGS RESERVED”
• GNU project: 1983
– A Unix-like operating system includes a kernel, compilers,
editors, text formatters, mail software, graphical
interfaces, libraries, games and many other things.
– GNU/Linux system
– GNU General Public License
The Open Source Definition
http://opensource.org/osd
• 1. Free Redistribution
• 2. Source Code
• 3. Derived Works: allow them to be distributed under the same terms as the
license of the original software.
• 4. Integrity of The Author's Source Code:may restrict source-code from being
distributed in modified form
• 5. No Discrimination Against Persons or Groups
• 6. No Discrimination Against Fields of Endeavor:
– Type of business, genetic research, etc.
• 7. Distribution of License:
– The rights attached to the program must apply to all users
• 8. License Must Not Be Specific to a Product:
– The rights attached to the program must not depend on the program's being
part of a particular software distribution.
• 9. License Must Not Restrict Other Software:
– the license must not insist that all other programs distributed on the same
medium must be open-source software.
• 10. License Must Be Technology-Neutral
Open Source Licenses
• Open source licenses are licenses that comply
with the Open Source Definition — in brief,
they allow software to be freely used,
modified, and shared.
GNU General Public License, version 2
http://opensource.org/licenses/GPL-2.0
• freedom to distribute copies of free software (and
charge for this service if you wish),
• receive source code or can get it if you want it,
• can change the software
• if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the
rights that you have.
• It protect your rights with two steps: (1) copyright the
software, and (2) offer you this license which gives you
legal permission to copy, distribute and/or modify the
software.
• there is no warranty for this free software.
Copyleft
• Copyleft is a form of licensing and can be used
to maintain copyright conditions for works
such as computer software, documents, and
art.
• It uses copyright law to offer the right to
distribute copies and modified versions of a
work and requiring that the same rights be
preserved in modified versions of the work.
Characteristics of Open Source
• Have access to the source code
– Availability of source code provides greater continuity
and security against :
• Financial collapse of vendors of key products
• Vendors choosing to withdraw support for unprofitable
products
• Distributed with a license
• Open-source software is very often developed in
a public, collaborative manner.
• No warranty
Example: Sendmail
• License:
– C:\xampp\sendmail\license
• Source code:
– C:\xampp\sendmail\source\sendmail.dpr
• This program can be opened with NotePad
Benefits of Using Open Source Software
http://open-source.gbdirect.co.uk/migration/benefit.html
• Quality vs features: Commercial products typically
favor visible features (giving marketing advantage)
over harder-to measure qualities such as stability,
security and similar less glamorous attributes.
• Flexibility through freedom:
– Freedom from a single vendor
– Freedom to modify your software tailored for the way
you do business.
• Total cost of ownership:
– Total of direct capital investment in software plus
indirect costs of installation, training, repairs,
downtime, technical support, and upgrading.
Total cost of ownership (TCO)
• Arguments in favor of low TCO for open source software
include:
– Possibly zero purchase price
– Potentially no need to account for copies in use, reducing
administrative overhead
– Claimed reduced need for regular upgrades (giving lower/nil
upgrade fees, lower management costs)
– Claimed longer uptimes and reduced need for expensive
systems administrators
– Near-zero vulnerability to viruses eliminating need for virus
checking, data loss and downtime
– Claimed lower vulnerability to security breaches and hack
attacks reducing systems administration load
– Claimed ability to prolong life of older hardware while retaining
performance
Disadvantages of Open Source Software
• Projects can die
• Support issues:
– Open Source community does not have a legal
obligation to answer your questions.
– Open Source support usually consists of forums only
and it's not unusual for questions to go unanswered.
• No guarantee of updates
• Liability for intellectual property infringement
– The typical open source project contains contributions
from many people. It is almost impossible to audit the
entire code base for violations of previous license
conditions.
Typical Open Source Platform for Web
Applications Development
• LAMP:
– Linux, Apache, MySQL, PHP
• XAMPP:
– an easy to install Apache Distribution for Linux,
Windows, Mac OS X, and Solaris. The package
includes the Apache web server, MySQL, SQLite,
PHP and Perl
Software for this course
• Operating System:
– Windows
• Web server:
– Apache
• Database management system:
– MySQL, SQLite
• Development language:
– PHP
• IDE:
– NetBeans
Download