1 basic knowledge of open source (oss) and free software (fs) lecture 1 of tdt10 jingyue li 19 sept....

38
1 Basic knowledge of Open Source (OSS) and Free Software (FS) Lecture 1 of TDT10 Jingyue Li 19 Sept. 2008

Upload: madeleine-charla-hodges

Post on 27-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

1

Basic knowledge of Open Source (OSS) and Free Software (FS)

Lecture 1 of TDT10

Jingyue Li

19 Sept. 2008

2

Outline

Why OSS and FS? Look at the number!• The definition of OSS and FS• The history of OSS and FS• The current status and future of OSS and FS• The classic licenses of OSS and FS

3

Market share of OSS/Free software*1

• Apache is the current #1 web server• GNU/Linux is the #1 server OS on public internet• Sendmail is the leading email server• PHP is the web’s #1 server-side Scripting language• OpenSSH is the Internet’s #1 implementation of the

SSH security protocol

*David A. "Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers!" Wheeler Calibre project

4

Market share of OSS/Free software*2

• By Feb. 2004, 1.1 million developers in North America were working on OSS/FS project

• A Feb. 2005 survey found that 64% of database administrators use an Open Source database

• IDC’s Spring 2006 survey found that developers around the world are increasing their use of OSS/FS

• Half of the mission-critical business applications are expected to run on GNU/Linux by 2012

*David A. "Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers!" Wheeler Calibre project

5

Quality of OSS/FS SW - Reliability• GNU/Linux is more reliable than windows NT,

according to a 10-month ZDnet experiment• MySQL database had fewer defects than a set of 200

commercial programs used for comparison• Miscroft’s IIS Web server have double the time offline

(on average) than sites using the Apache software, according to a 3-month Swiss evaluation

• 80% of the top ten most reliable hosting providers ran OSS/FS, according to Netcraft’s survey in May 2004

6

Quality of OSS/FS SW - Performance• GNU/Linux had better performance than Windows for

pipes, process, and thread creation• MySQL was quite comparable to the proprietary

Oracle database with respect to performance• Microsoft themselves found that Linux and FreeBSD

had better performance than Windows by many measures

7

Quality of OSS/FS SW - Scalability• GNU/Linux is used in 78% of the world’s 500 fastest

supercomputers• OSS/FS development processes can scale to

develop large software systems

8

Quality of OSS/FS SW - Security• The majority of the most serious security problems

only apply to Microsoft’s products, and not to OSS/FS, according to a CERT/CC’s report in 2001

• A 2002 survey of developers found that GNU/Linux are relatively immune from attacks from outsiders

• Apache has a better security record than Microsoft’s IIS, as measured by reports of serious vulnerabilities

• Several recent summaries in August 2005 suggest Microsoft’s IE is still more dangerous than OSS/FS

9

Total cost of ownership (TCO) of OSS/FS vs. Commercial SW• OSS/FS costs less to initially acquire• Upgrade/maintenance costs are typically far less• Forrester research found that the average savings on

TCO when using OSS/FS database management system is 50% of the commercial ones

• TCO of the GNU/Linux is roughly 40% that of Microsoft Windows and only 14% that of the Sun’s Solaris

10

Governments and OSS/FS

• More than two dozen countries in Asia, Europe, and Latin America, including China and Germany, are encouraging their government agencies to use OSS, according to a 2002 New York Times article

• On June 27, 2005, Morten Andreas Meyer, the Norwegian Minister of Modernization, announced at a press conference that: Proprietary formats will no longer be acceptable in communication between citizens and government.

11

Outline

• Why OSS and FS? Look at the number! The definition of OSS and FS• The history of OSS and FS• The current status and future of OSS and FS• The classic licenses of OSS and FS

12

The definition of FS1*Free software is a matter of liberty, not price. To understand the concept,

you should think of free as in free speech, not as in free beer. Free software is a matter of the users' freedom to run, copy, distribute,

study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

– The freedom to run the program, for any purpose (freedom 0). – The freedom to study how the program works, and adapt it to your

needs (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 improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

*http://www.gnu.org/philosophy/free-sw.html

13

The definition of FS2*

• A program is free software if users have all of these freedoms. Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission.

• You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way.

• The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity.

*http://www.gnu.org/philosophy/free-sw.html

14

The definition of OSS1*

Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:– 1. Free Redistribution

– 2. Source Code

– 3. Derived Works

– 4. Integrity of The Author's Source Code

– 5. No Discrimination Against Persons or Groups

*http://www.opensource.org/osd.html

15

The definition of OSS2*

• Other criteria:– 6. No Discrimination Against Fields of Endeavor

– 7. Distribution of License

– 8. License Must Not Be Specific to a Product

– 9. License Must Not Restrict Other Software

– 10. License Must Be Technology-Neutral

*http://www.opensource.org/osd.html

16

FS movement vs. OSS movement1*• The fundamental difference between the two

movements is in their values, their ways of looking at the world. – For the Open Source movement, the issue of whether software

should be open source is a practical question, not an ethical one. As one person put it, “Open source is a development methodology; free software is a social movement.”

– For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.

*http://www.gnu.org/philosophy/free-software-for-freedom.html

17

FS movement vs. OSS movement2*• FS and OSS disagree on the basic principle, but

agree more or less on practical recommendation• OSS definition is very close to FS. However, it is a

little looser in some aspect, and they have accepted a few licenses that FS considers unacceptably restrictive of the user

• The views and values of OSS stem from an attempt of making FS to be ”more acceptable to business”

*http://www.gnu.org/philosophy/free-software-for-freedom.html

18

Outline

• Why OSS and FS? Look at the number!• The definition of OSS and FS The history of OSS and FS• The current status and future of OSS and FS• The classic licenses of OSS and FS

19

The history of FS and OSS

• Richard Stallman (MIT AIL lab.) started the GNU project in 1984 and established the Free Software Foundation (FSF) in 1985.

• Meanwhile, UC Berkeley built a new Unix system, and release the BSD license

• In 1991, Linux Torvalds began developing a small operating system kernel called ”Linux”

• In 1997, a group FSF leaders, including Eric Raymond, Tim O’Reilly, and Larry Wall concerned the term ”Free Software” was too confusing and unhelpful. They coined the term ”Open Source” as an alternative

• In 2002, the first user-ready version of capable and critical desktop application (i.e. Mozilla Fireforx web browser) was announced.

20

Outline

• Why OSS and FS? Look at the number!• The definition of OSS and FS• The history of OSS and FS The current status and future of OSS and FS• The classic licenses of OSS and FS

21

The transformation of OSS/FS1* – Development lifecycleFOSS: • Planning: Concatenated and performed

typically by a single developer or a small core group

• Analysis: part of conventional agree-upon knowledge in software development

• Design: firmly based on principles of modularity to accomplish separation of concerns

• Implementation– Code– Review– Pre-commit test– Fast development release– Parallel debugging– Production release

(planning, analysis and design phases are done by one person/small group who serves as ”a tail-light to follow” in the bazaar)

OSS 2.0• Planning: Purposive strategies by major

players trying to gain competitive advantage

• Analysis and design: more complex in spread to vertical domains where business requirements not universally understood

• Implementation: subphases as with FOSS, but to overall development process becomes less bazaar-like

• Increasingly, developers being paid to work on open source

*Fitzgerald, B. “The transformation of Open Source Software”, MIS Quarterly, 30 (3), 587-598

22

The transformation of OSS/FS2* FOSS

• Product domain: Horizontal infrastructure (operating systems, utilities, compilers, DBMS, web and print server)

• Primary business strategy: – Value-added service-enabling

– Loss-leader/market-creating

OSS 2.0

• Product domain: More visible IS application in vertical domains

• Primary business strategy– Value-added service

– Market-creating (loss-leader; dual product/licensing, cost reduction, accessorizing)

– Leveraging community development

– Leveraging the open source brand

23

The transformation of OSS/FS3*FOSS• Product support:

– Fairly haphazard – much reliance on email lists/bulletin boards, or on support provided by specialized software firms

• Licensing:– GPL, LGPL, Artistic License,

BSD, and emergence of commercially oriented MPL

– Viral term (i.e. The same rights to subsequent users) used in relation to licenses

OSS 2.0• Product support:

– Customers willing to pay for a professional, whole-product approach

• Licensing: – Plethora of license (85 to date

validated by OSI or FSF)– Corporate-style licenses are

central to OSS 2.0

24

Outline

• Why OSS and FS? Look at the number!• The definition of OSS and FS• The history of OSS and FS• The current status and future of OSS and FS The classic licenses of OSS and FS

25

The overview of OSS/FS licenses1• An OSS license defines the privileges and restrictions that a user must

follow in order to use and modify software• If a developer wants to publish a program as OSS, he/she can

distribute the program as an uncopyrighted product. The user of the program can read, copy, modify, and redistribute the program.

• However, it is possible for someone to make the program copyrighted by modifying the original program. Consequently, the modified, copyright-protected program became a personal property, and is not OSS anymore.

• To prevent this situation, most of the OSS licenses implement ”copyleft” concept, i.e., anyone who redistributes the software with or without changes, must pass along the freedom to further copy and change it.

26

The overview of OSS/FS licenses2

Classification Examples

Academic style MIT, BSD, Apache License

Viral/reciprocal GPL, LGPL, Open Source License (OSI)

Corporate style MPL, Qt Public license, SUN Public license

Non-approved (shared source family)

Microsoft Shared Source Initiative License

SUN Community Source License

27

MIT (X) license

Copyright (c) <year> <copyright holders>Permission is hereby granted, free of charge, to any person

obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

– The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

– THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED…

28

BSD License

Copyright (c) <YEAR>, <OWNER>All rights reserved. Redistribution and use in source and binary forms, with

or without modification, are permitted provided that the following conditions are met:– Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.– Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

– Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Differences with MIT License

29

Philosophy of MIT and BSD licenses• MIT and BSD licenses are ideal for situations in

which you want wide deployment of your ideas and do not care whether this results in open source software or proprietary software.

30

GNU Public License (GPL)1

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work, provided that you also meet all of these conditions:a) You must cause the modified files to carry prominent notices

stating that you changed the files and the date of any change.b) You must cause any work that you distribute or publish, that in

whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

...

31

GNU Public License (GPL)2

Implementation the licenseAttach the following notices to the program. It is safest to attach them to the start of

each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

one line to give the program’s name and a brief idea of what it does.Copyright (C)This program is free software; you can redistribute it and/or modify it under the terms

of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

32

GNU Public License (GPL)3

• Made by Richard Stallman• The most popularly used licenses• All bundled and derivative works must be under GNU

GPL (thus, difficult to be combined with close code software)

• GPL is incompatible with several other OSS licenses• Philosophy:

– Free distribution– No limits on modification

33

Lesser General Public License (LGPL)• The modified work must itself be a software library• Derivative works must be under LGPL or GPL• Libraries licensed under GPL are permitted to link

with non-GPL licensed software• Philosophy:

– For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

34

Mozilla Public License (MPL)1

• Hybrid of ideas of the GPL and BSD licenses• Allow copy or change the source code, with a

restriction, which the source code changed under MPL must stay under MPL (i.e. Prohibit the modification of the MPL licensed source code and put it under another license) – As GPL

• Allow bring source code from another license to the MPL code – As BSD

35

Mozilla Public License (MPL)2

• Philosophy of MPL– An attempt to get some of the benefits of open source development

into a program developed under a proprietary license

– Reflect a development model under which ” contributors” would be supplying their work to a continuing project, not one under which licenses would be free to appropriate the code to their own use, subject to certain restrictions on their distribution of the code

36

License comparisonRedistribution of the modified work

Combination with the code licensed under other licenses

Linking to close code (commercial) code

Original source code attached to the modification

Liability notice

BSD Y Y Y N Y

MIT Y Y Y Y Y

GPL Only under GPL or LGPL

Not allowed with software whose license is not GNU GPL compatible.

N Y Y

LGPL Only under GPL or LGPL

Allowed in case the non-LGPL program is not a derivative work (i.e. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it)

Y Y Y

MPL Only under MPL

Y Y Y Y

37

License compliance

Compatible with GNU GPL

BSD Y

MIT Y

LGPL Y

MPL N

License compatible: It impossible to combine source code from such packages in order to create new software packages.

Example of incompatible: one requires that “modified versions must mention the developers in any advertising materials", and another license says "modified versions cannot contain additional attribution requirements"

38

Other interesting licenses

• Qt public license (QPL) by Trolltech – Redistributing of the code with changes only in the form of patches

to the original code.

• Microsoft Reference license – Shared source licenses which have some similarities with open

source, such as the Microsoft Reference License (MS-RL), but are not compatible with the Open Source Definition.

– Only allows licenses to view source code