RealTime System Development Open Source cwhsuehcsie ntu edu

  • Slides: 122
Download presentation
Real-Time System Development 即時系統開發 Open Source 薛智文 cwhsueh@csie. ntu. edu. tw http: //www. csie.

Real-Time System Development 即時系統開發 Open Source 薛智文 cwhsueh@csie. ntu. edu. tw http: //www. csie. ntu. edu. tw/~chsueh/ 95/118 Fall 國立台灣大學 資訊 程學系

Open Source Software Development 2/21/2021 資 系網媒所 1/118 NEWS實驗室

Open Source Software Development 2/21/2021 資 系網媒所 1/118 NEWS實驗室

Outline Introduction History of Open Source Software Learning from hackers GNU GPL and LGPL

Outline Introduction History of Open Source Software Learning from hackers GNU GPL and LGPL The Open Source Definition GPL FAQ 2/21/2021 資 系網媒所 2/118 NEWS實驗室

Categories of Free and Non-Free Software -http: //www. gnu. org/philosophy/categories. html 2/21/2021 資 系網媒所

Categories of Free and Non-Free Software -http: //www. gnu. org/philosophy/categories. html 2/21/2021 資 系網媒所 3/118 NEWS實驗室

What Is Copyleft? Copyleft: Pragmatic Idealism Copyleft is a general method for making a

What Is Copyleft? Copyleft: Pragmatic Idealism Copyleft is a general method for making a program free software and requiring all modified and extended versions of the program to be free software as well. Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. Copyleft guarantees that every user has freedom. 2/21/2021 資 系網媒所 4/118 NEWS實驗室

Introduction (1) The open source development model fundamentally changes the approaches and economics of

Introduction (1) The open source development model fundamentally changes the approaches and economics of traditional software development. Open source software is developed by an internetbased community of programmers. Participation is voluntary and participants do not receive direct compensation for their work. The full source code is made available to the public. Developers also devolve most property rights to the public, including the right to use, to redistribute and to modify the software free of charge. 2/21/2021 資 系網媒所 5/118 NEWS實驗室

Introduction (2) Proponents : a paradigmatic change the economics of private goods built on

Introduction (2) Proponents : a paradigmatic change the economics of private goods built on the scarcity of resources are replaced by the economics of public goods where scarcity is not an issue. Critics : source software will always be relegated to niche areas, that it cannot compete with their commercial opponents in terms of product stability and reliability open source projects lack the capability to innovate. 2/21/2021 資 系網媒所 6/118 NEWS實驗室

Questions In the absence of direct compensations what is it that motivates the participants?

Questions In the absence of direct compensations what is it that motivates the participants? Is the image correct that open source developers are highly altruistic people who want to advance the good cause? Are there other explanations? What are the implications on social welfare? 2/21/2021 資 系網媒所 7/118 NEWS實驗室

History of Open Source Software (1) Year Event 1950 s Software source code is

History of Open Source Software (1) Year Event 1950 s Software source code is distributed without restrictions in and IBM and DEC user groups, ACM’s Algorithms Section etc. 1960 s 1969 Ken Thompson writes the first version of UNIX. Its source code is distributed freely throughout the seventies. 1978 Donald Knuth (Stanford) publishes TEX as free software 1979 Following AT&T’s announcement to commercialize UNIX, UC Berkeley begins with the creation of its own version of UNIX, BSD (Berkeley Software Distribution). Eric Allmann, a student at UC Berkely develops a program that routes messages between computers over ARPANET. It later evolves into Sendmail. 1983 Stallmann publishes GNU Manifesto calling for free software, and establishes Free Software Foundation. 2/21/2021 資 系網媒所 8/118 NEWS實驗室

History of Open Source Software (2) Year Event 1986 Larry Wall creates Perl (Practical

History of Open Source Software (2) Year Event 1986 Larry Wall creates Perl (Practical Extraction and Report Language), a versatile programming language used for writing CGI (Common Gateway Interface) scripts. 1987 Developer Andrew Tanenbaum releases Minix, a version of UNIX for the PC, Mac, Amiga, and Atari ST. It comes with complete source code. 1991 Linus Torvalds publishes version 0. 02 of a new UNIX variant that he calls Linux in a Minix newsgroup. 1993 Free. BSD 1. 0 is released. Based on BSD Unix, Free. BSD includes networking, virtual memory, task switching, and large filenames. Ian Murdock creates a new linux distribution called Debian Linux. 1994 Marc Ewing forms Red Hat Linux. It quickly becomes the leading Linux distributor. Bryan Sparks founds Caldera with backing by former Novell CEO Ray Noorda. 資 系網媒所 2/21/2021 9/118 NEWS實驗室

History of Open Source Software (3) Year Event 1995 The Apache Group builds a

History of Open Source Software (3) Year Event 1995 The Apache Group builds a new Web server, Apache, based on the National Center for Supercomputing Applications' (NCSA's) HTTPd 1. 3 and a series of patch files. It has become the dominant HTTP server today. 1998 Netscape not only gives away Communicator 5. 0 (Mozilla) but also releases its source code. Major software vendors, including Computer Associates, Corel, IBM, Informix, Interbase, Oracle, and Sybase, announce plans to port their products to Linux. Sun announces plans to release the source code for Java 2 to developers. 1999 Number of Linux users estimated at 7. 5 Million. 2000 More software companies such as Novell and Real release versions of their products which run on Linux. 2/21/2021 資 系網媒所 10/118 NEWS實驗室

Motivations of Participating in Open Source Projects Understanding what drives open source developers to

Motivations of Participating in Open Source Projects Understanding what drives open source developers to participate in open source projects is crucial for assessing the impact of open source software. internal factors: intrinsic motivation and altruism external rewards: future returns and personal needs Survey administered to open source programmer 2/21/2021 資 系網媒所 11/118 NEWS實驗室

Sources of Motivations Intrinsic motivation includes the desire of feeling competence and selfdetermination. External

Sources of Motivations Intrinsic motivation includes the desire of feeling competence and selfdetermination. External rewards include factors such as direct or indirect monetary compensation, and other’s recognition as well. Motivation is viewed as a function of : ability of the individual over potential, ability over ability reinforcement behavior. 2/21/2021 資 系網媒所 12/118 NEWS實驗室

Internal Factors Motivations that are ultimately rooted within the individual himself. Intrinsic motivation Altruism

Internal Factors Motivations that are ultimately rooted within the individual himself. Intrinsic motivation Altruism Community identification Open source programmers are not motivated by monetary incentives but by their own hobbies and preferences instead. they receive rewards from increasing the welfare of others. 2/21/2021 資 系網媒所 13/118 NEWS實驗室

Intrinsic Motivation (1) Certain activities and behaviors that people like to perform naturally, e.

Intrinsic Motivation (1) Certain activities and behaviors that people like to perform naturally, e. g. , playing games or collecting coins. Arising from a person’s inborn need for feeling competent and self-determining in dealing with his environment. -Deci That is why some of the intensity with which people pursue their hobbies. The need for -Maslow selfactualization esteem needs desire for a stable, firmly based, usually high evaluation of themselves some includes the external desires for recognition, fame and reputation 2/21/2021 資 系網媒所 14/118 NEWS實驗室

Intrinsic Motivation (2) Programmers are motivated by the feeling of competence, satisfaction and fulfillment

Intrinsic Motivation (2) Programmers are motivated by the feeling of competence, satisfaction and fulfillment that arises from writing programs. “Innate desire to code, and code until the day I die. ” Intrinsically motivated goals as autonomous goals have been suggested to be associated with most effortful behaviors comparing to controlled personal goals (nonintrinsically motivated goals), and will thus lead to higher possibility of goal attainment. 2/21/2021 資 系網媒所 15/118 NEWS實驗室

Problem of Intrinsic Motivation If the open source movement were solely based on this

Problem of Intrinsic Motivation If the open source movement were solely based on this motivation, a disadvantage over commercial development might result. The motivation of the participants is not necessarily linked to the needs of the users. if the community of users and the community of programmers are not identical, open source software would have an inherent problem of incorporating user needs. 2/21/2021 資 系網媒所 16/118 NEWS實驗室

Altruism A person seeks to increase the welfare of others. a personal disposition opposite

Altruism A person seeks to increase the welfare of others. a personal disposition opposite to selfishness doing something for another at some cost to oneself Open source programmers provide something for others (writing programs that have open source codes) at their own costs (time, energy, opportunity costs). Is widely regarded as being associated with positive norm and should have a positive influence on the level of participation in open source projects. 2/21/2021 資 系網媒所 17/118 NEWS實驗室

Maslow's Hierarchy of Needs 2/21/2021 資 系網媒所 18/118 NEWS實驗室

Maslow's Hierarchy of Needs 2/21/2021 資 系網媒所 18/118 NEWS實驗室

Maslow's Hierarchy of Needs 2/21/2021 資 系網媒所 19/118 NEWS實驗室

Maslow's Hierarchy of Needs 2/21/2021 資 系網媒所 19/118 NEWS實驗室

Community identification Maslow’s needs of belonging and love. Programmers may identify themselves as part

Community identification Maslow’s needs of belonging and love. Programmers may identify themselves as part of the open source community and align their goals with those of the community. They may treat other members of the community as their kin and thus be willing to do something beneficial to others but not to themselves. Also termed as “kin selection altruism” 2/21/2021 資 系網媒所 20/118 NEWS實驗室

External rewards Mostly not compensated for their contributions directly, but receive indirect rewards by

External rewards Mostly not compensated for their contributions directly, but receive indirect rewards by increasing their marketability and skill base or selling related products and services. Some, the fruits of the software. Future rewards Personal needs 2/21/2021 資 系網媒所 21/118 NEWS實驗室

Future rewards Some open source programmers may view their participation as an investment from

Future rewards Some open source programmers may view their participation as an investment from which they expect future returns. Revenues from related products and services. Human capital. Self-marketing. Peer recognition. 2/21/2021 資 系網媒所 22/118 NEWS實驗室

Revenues from related products and services commercial consulting, training, distribution, support, and implementation services.

Revenues from related products and services commercial consulting, training, distribution, support, and implementation services. the open source community endorses such income-generating activities. conflict: improving the open source software may reduce the potential for selling its related services or products such as maintenance and troubleshooting etc. 2/21/2021 資 系網媒所 23/118 NEWS實驗室

Human Capital Personal skills, capabilities and knowledge are deemed as a special form of

Human Capital Personal skills, capabilities and knowledge are deemed as a special form of capital, human capital, by economists. Open source programmers may also participate in open source projects to expand their skill base. Human capital level can be increased by education, training, learning, and practicing etc. leading to better job opportunities, higher salaries and more fulfilling jobs. The ‘open’ source codes and freedom to choose tasks enable the open source programmers to select the learning experiences that meet their demand interests. Entry-level programmers like college students to participate in realistic projects at a very early stage. 2/21/2021 資 系網媒所 24/118 NEWS實驗室

Self-marketing Working for open source software is an effective way to demonstrate their capability

Self-marketing Working for open source software is an effective way to demonstrate their capability and skillfulness in programming. Claims of competence in programming can be well reinforced by the achievements in open source projects. Participating in open source projects therefore can be a good advertising channel to publicize one’s skillfulness and capabilities. The larger the contribution of an individual to the open source projects, the more likely it is that the commercial software vendors will recognize the value of the individual, and the larger the incentive will be for this individual to apply his skills in a paid position. It may help to lure the best programmers and most productive minds away from these projects into more profitable commercial development. 2/21/2021 資 系網媒所 25/118 NEWS實驗室

Peer Recognition Derived from the desire for fame and esteem, which is associated with

Peer Recognition Derived from the desire for fame and esteem, which is associated with future returns. Open source programmers receive rapid and constructive feedback about the quality of their composition. Feedback always has a positive effect – it shows the programmer that people are using their contribution. Thus feedback is self-reinforcing: It encourages the author to spend additional effort to perfect his code. 2/21/2021 資 系網媒所 26/118 NEWS實驗室

Personal Needs (1) Many open source projects were initiated because a programmer had a

Personal Needs (1) Many open source projects were initiated because a programmer had a personal need for some software. PERL was created by Larry Wall when he needed to generate web pages programmatically. These routines were later shared with other programmers, who also extended and refined the routines. The similar development of the Apache in 1995. 1. Participants of open source projects may act rationally after their own self-interest. 2. There should be a limit to the amount of effort that a programmer may provides for free. 3. The interests of the users and developers are often aligned: both are interested in improving the functionality; both are willing to invest in improvements. 2/21/2021 資 系網媒所 27/118 NEWS實驗室

Personal Needs (2) The more complex a product is, the less dependent it is

Personal Needs (2) The more complex a product is, the less dependent it is on other modules of software, so the more likely its contribution be identified and communicated, and the more likely it is that a programmer will sell his software rather than provide it for free. Eric Allmann, the founder of Sendmail, one of the most successful email server programs, has started a company that provides an add-on product to Sendmail to simplify its configuration and administration. 2/21/2021 資 系網媒所 28/118 NEWS實驗室

Personal Needs (3) However, traditional software houses structure their license agreements in a way

Personal Needs (3) However, traditional software houses structure their license agreements in a way that prevents customers to invest in their software by making modifications and by sharing the improvements with others. because of the fear of piracy, software houses have given up considerable potential investment opportunities that customers are willing to take. A crucial oversight in the marketing and product evolution strategies of current software companies. 2/21/2021 資 系網媒所 29/118 NEWS實驗室

Empirical Analysis 389 persons sent, 81 responses, 2 invalid, 21% 95 % male 2/21/2021

Empirical Analysis 389 persons sent, 81 responses, 2 invalid, 21% 95 % male 2/21/2021 資 系網媒所 30/118 NEWS實驗室

Respondent Demographics 2/21/2021 資 系網媒所 31/118 NEWS實驗室

Respondent Demographics 2/21/2021 資 系網媒所 31/118 NEWS實驗室

Participant Characteristics 2/21/2021 資 系網媒所 32/118 NEWS實驗室

Participant Characteristics 2/21/2021 資 系網媒所 32/118 NEWS實驗室

Respondent’s Primary Open Source Projects 2/21/2021 資 系網媒所 33/118 NEWS實驗室

Respondent’s Primary Open Source Projects 2/21/2021 資 系網媒所 33/118 NEWS實驗室

Motivations by Programmer Type 2/21/2021 資 系網媒所 34/118 NEWS實驗室

Motivations by Programmer Type 2/21/2021 資 系網媒所 34/118 NEWS實驗室

Learning from Hackers -The open-source movement can teach project managers a lot BY DENIS

Learning from Hackers -The open-source movement can teach project managers a lot BY DENIS F. CIOFFI The George Washington University IEEE SPECTRUM • June 2001 2/21/2021 資 系網媒所 35/118 NEWS實驗室

Learning from Hackers 1999, Linux accounted for 27 percent of operating -system software for

Learning from Hackers 1999, Linux accounted for 27 percent of operating -system software for computer servers sold, up from 17 percent in 1998, — International Data Corp. Linux is more than just a product — it’s a mindset. On the surface, the distance between formal management and the open-source movement that created Linux is big. Linux seemed to defy that management is essential to good products and services. Managers can learn much from open-source practitioners, or hackers, from Eric Raymond’s 1997 manifesto “The Cathedral and the Bazaar” 2/21/2021 資 系網媒所 36/118 NEWS實驗室

Learning from Hackers Open-source hackers are people who “solve problems and build things. ”

Learning from Hackers Open-source hackers are people who “solve problems and build things. ” Being skilled at using management tools is less important than having a good outlook— one that encourages cooperation, yet gives each worker the opportunity to be creative. The New Hacker’s Dictionary defines management as follows: “Corporate power elites distinguished primarily by their distance from actual productive work and their chronic failure to manage. ” 2/21/2021 資 系網媒所 37/118 NEWS實驗室

The Hacker Attitudes The world is full of fascinating problems waiting to be solved.

The Hacker Attitudes The world is full of fascinating problems waiting to be solved. Nobody should ever have to solve a problem twice. Boredom and drudgery are evil. Freedom is good. Attitude is no substitute for competence. 2/21/2021 資 系網媒所 38/118 NEWS實驗室

Fascinating Problems A project in the standard management definition refers to a temporary effort

Fascinating Problems A project in the standard management definition refers to a temporary effort to create something new. A process, by contrast, is work that is repeatable and well understood. For each project to be truly new, then, completed projects need to be studied thoroughly, so that those aspects that are routine or repeatable can be turned into processes. For engineers and scientists, the fascinating problems exist where processes have yet to be defined. The more one reserves the word “project” for work that truly results in never-before-attained outcomes, the greater the opportunity for fascination, and the greater the possibility of attracting good minds. In a mature organization, the term “fascinating project” should be redundant. 2/21/2021 資 系網媒所 39/118 NEWS實驗室

Never Solve a Problem Twice How to dress? At the close of every project,

Never Solve a Problem Twice How to dress? At the close of every project, the manager needs to ask, What did we learn? And how can we do better? The importance of fully documenting the results of each project becomes obvious. A good hacker not only debugs code but also annotates it, so that others unfamiliar with the code may understand use it. 2/21/2021 資 系網媒所 40/118 NEWS實驗室

Boredom is Evil Some managers have great difficulty with the third hacker attitude, insisting

Boredom is Evil Some managers have great difficulty with the third hacker attitude, insisting that a certain amount of boredom and drudgery in work is unavoidable. While the term “project” may be used to describe what they do, in reality the employees are solving essentially the same problem many times, finding little challenge and consuming much effort. While boredom and drudgery exist, though, a good manager tries to reduce their occurrence, appreciates those who must contend with boring work, and looks for ways to minimize dull operations through automation. 2/21/2021 資 系網媒所 41/118 NEWS實驗室

Freedom is Good Employees who are free to think and to act will share

Freedom is Good Employees who are free to think and to act will share their ideas and point out mistakes as they occur; that in turn improves a company’s bottom line. If you’re not willing to give workers freedom, why hire bright people in the first place? Fundamental to freedom is valid (in the sense of modeling reality) information, which in turn requires honesty. Does your organization maintain an environment that gives workers freedom and encourages communication, or does it reward silence, while hoping for excellence? 2/21/2021 資 系網媒所 42/118 NEWS實驗室

Competence Trumps Attitude “zeal” or any other emotion does not excuse dishonesty and incompetence.

Competence Trumps Attitude “zeal” or any other emotion does not excuse dishonesty and incompetence. Freedom gives excellence its opportunity, but talent and hard work produce a successful result. 2/21/2021 資 系網媒所 43/118 NEWS實驗室

Suggestions (1) The attitudes communicate their intentions well because of their simplicity, and their

Suggestions (1) The attitudes communicate their intentions well because of their simplicity, and their simplicity is their power. Starting with the last one and working backward. Attitude is no substitute for competence. Freedom is good. Boredom and drudgery are evil. Nobody should ever have to solve a problem twice. The world is full of fascinating problems waiting to be solved. 2/21/2021 資 系網媒所 44/118 NEWS實驗室

Suggestions (2) As a reward for your competence, support of freedom, reduction of others’

Suggestions (2) As a reward for your competence, support of freedom, reduction of others’ drudgery, and appreciation that people should not waste their time and brainpower, you get to manage attacks on fascinating problems. Manager: One who believes and practices the five hacker attitudes in executing fascinating 2/21/2021 資 系網媒所 45/118 NEWS實驗室

GNU GPL and LGPL 2/21/2021 資 系網媒所 46/118 NEWS實驗室

GNU GPL and LGPL 2/21/2021 資 系網媒所 46/118 NEWS實驗室

Outline Introduction Copying, Distribution, and Modification Linking a Library of LGPL How to Apply

Outline Introduction Copying, Distribution, and Modification Linking a Library of LGPL How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Libraries Linux and GPL References 2/21/2021 資 系網媒所 47/118 NEWS實驗室

GPL (I) GPL (General Public License, 通用公共許可證) Guarantee your freedom to share and change

GPL (I) GPL (General Public License, 通用公共許可證) Guarantee your freedom to share and change free software. The software is free for all its users. To make sure Have the freedom of distribute copies of free software. You receive source code or can get it if you want it. You can change the software or use pieces of it in new free programs. You know you can do these things. 2/21/2021 資 系網媒所 48/118 NEWS實驗室

GPL (II) Protect your rights with two steps: copyright the software. offer you this

GPL (II) Protect your rights with two steps: copyright the software. 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. This License applies to any program or other work. It contains a notice placed by the copyright holder. It may be distributed under the terms of this General Public License. 2/21/2021 資 系網媒所 49/118 NEWS實驗室

Copying, Distribution, and Modification (I) Coping and distribution of the Program's source code must

Copying, Distribution, and Modification (I) Coping and distribution of the Program's source code must meet all of these conditions: keep intact all the notices that refer to this License and to the absence of any warranty. give any other recipients of the Program a copy of this License along with the Program. 2/21/2021 資 系網媒所 50/118 NEWS實驗室

Copying, Distribution, and Modification (II) Modification must meet all of these conditions: Must cause

Copying, Distribution, and Modification (II) Modification must meet all of these conditions: Must cause the modified files to carry notices stating such as the date of any change. No charge to all third parties under the terms of this License. Reads commands interactively when run the program, you must print or display an announcement includes: an appropriate copyright notice a notice that there is no warranty users may redistribute the program under these conditions telling the user how to view a copy of this License. 2/21/2021 資 系網媒所 51/118 NEWS實驗室

How to Apply These Terms to Your New Programs one line to give the

How to Apply These Terms to Your New Programs one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author 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. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc. , 59 Temple Place - Suite 330, Boston, MA 02111 -1307, USA. 2/21/2021 資 系網媒所 52/118 NEWS實驗室

LGPL (I) LGPL (Lesser General Public License, 較寬鬆公共許可證) Applies to some specially designated software

LGPL (I) LGPL (Lesser General Public License, 較寬鬆公共許可證) Applies to some specially designated software packages. typically libraries of the Free Software Foundation (FSF) and other authors. Protect your rights with two steps copyright the library. offer you this license, which gives you legal permission to copy, distribute and/or modify the library. 2/21/2021 資 系網媒所 53/118 NEWS實驗室

LGPL (II) Restrictions: forbid distributors to deny you these rights. ask you to surrender

LGPL (II) Restrictions: forbid distributors to deny you these rights. ask you to surrender these rights. These restrictions translate to certain responsibilities for you. When you distribute copies of the library or modify it. There is no warranty for the free library. 2/21/2021 資 系網媒所 54/118 NEWS實驗室

Copying, Distribution, and Modification (I) Coping and distribution of the Library's source code must

Copying, Distribution, and Modification (I) Coping and distribution of the Library's source code must meet all of these conditions: keep intact all the notices that refer to this License and to the absence of any warranty. distribute a copy of this License along with the Library. 2/21/2021 資 系網媒所 55/118 NEWS實驗室

Copying, Distribution, and Modification (II) Modification must meet all of these conditions: The modified

Copying, Distribution, and Modification (II) Modification must meet all of these conditions: The modified work must itself be a software library. Must cause the modified files to carry notices stating. No charge to all third parties under the terms of this License. 2/21/2021 資 系網媒所 56/118 NEWS實驗室

Linking a Library of LGPL A "work that uses the Library“ A program that

Linking a Library of LGPL A "work that uses the Library“ 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. such a work is not a derivative work of the Library. falls outside the scope of this License. An executable links a "work that uses the Library" The executable is a derivative of the Library. It is therefore covered by this License. 2/21/2021 資 系網媒所 57/118 NEWS實驗室

How to Apply These Terms to Your New Libraries one line to give the

How to Apply These Terms to Your New Libraries one line to give the library's name and an idea of what it does. Copyright (C) yyyy name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2. 1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc. , 59 Temple Place, Suite 330, Boston, MA 02111 -1307 USA 2/21/2021 資 系網媒所 58/118 NEWS實驗室

Linux and GPL The Linux Kernel is Copyright (c) Linus B. Torvalds under the

Linux and GPL The Linux Kernel is Copyright (c) Linus B. Torvalds under the terms of the General Public License. The most Linux software is GPL’ed. 2/21/2021 資 系網媒所 59/118 NEWS實驗室

References GNU General Public License http: //www. gnu. org/copyleft/gpl. html http: //www. linux. org.

References GNU General Public License http: //www. gnu. org/copyleft/gpl. html http: //www. linux. org. tw/CLDP/doc/GPL. html GNU Library General Public License http: //www. gnu. org/copyleft/lgpl. html http: //www. linux. org. tw/CLDP/doc/LGPL. html 2/21/2021 資 系網媒所 60/118 NEWS實驗室

The Open Source Definition From the first draft of this document as "The Debian

The Open Source Definition From the first draft of this document as "The Debian Free Software Guidelines" -- Bruce Perens, June, 1997. Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria: Free Redistribution Source Code Derived Works Integrity of The Author's Source Code No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor Distribution of License Must Not Be Specific to a Product The License Must Not Restrict Other Software 2/21/2021 資 系網媒所 61/118 NEWS實驗室

Free Redistribution The license shall not restrict any party from selling or giving away

Free Redistribution The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale. Rationale: By constraining the license to require free redistribution, we eliminate the temptation to throw away many long-term gains in order to make a few short-term sales dollars. If we didn't do this, there would be lots of pressure for cooperators to defect. 2/21/2021 資 系網媒所 62/118 NEWS實驗室

Source Code The program must include source code, and must allow distribution in source

Source Code The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost–preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed. Rationale: We require access to un-obfuscated source code because you can't evolve programs without modifying them. Since our purpose is to make evolution easy, we require that modification be made easy. 2/21/2021 資 系網媒所 64/118 NEWS實驗室

Derived Works The license must allow modifications and derived works, and must allow them

Derived Works The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. Rationale: The mere ability to read source isn't enough to support independent peer review and rapid evolutionary selection. For rapid evolution to happen, people need to be able to experiment with and redistribute modifications. 2/21/2021 資 系網媒所 66/118 NEWS實驗室

Integrity of The Author's Source Code The license may restrict source-code from being distributed

Integrity of The Author's Source Code The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. Rationale: Encouraging lots of improvement is a good thing, but users have a right to know who is responsible for the software they are using. Authors and maintainers have reciprocal right to know what they're being asked to support and protect their reputations. Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, "unofficial" changes can be made available but readily distinguished from the base source. 資 系網媒所 2/21/2021 68/118 NEWS實驗室

No Discrimination Against Persons or Groups The license must not discriminate against any person

No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons. Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to contribute to open sources. Therefore we forbid any opensource license from locking anybody out of the process. Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself. 2/21/2021 資 系網媒所 70/118 NEWS實驗室

No Discrimination Against Fields of Endeavor The license must not restrict anyone from making

No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it. 2/21/2021 資 系網媒所 72/118 NEWS實驗室

Distribution of License The rights attached to the program must apply to all to

Distribution of License The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. Rationale: This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement. 2/21/2021 資 系網媒所 74/118 NEWS實驗室

License Must Not Be Specific to a Product The rights attached to the program

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. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. Rationale: This clause forecloses yet another class of license traps. 2/21/2021 資 系網媒所 76/118 NEWS實驗室

The License Must Not Restrict Other Software The license must not place restrictions on

The License Must Not Restrict Other Software The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open -source software. Rationale: Distributors of open-source software have the right to make their own choices about their own software. Yes, the GPL is conformant with this requirement. Software linked with GPLed libraries only inherits the GPL if it forms a single work, not any software with which they are merely distributed. 資 系網媒所 2/21/2021 78/118 NEWS實驗室

GPL FAQ Basic questions about the GPL, the GNU Project, and the Free Software

GPL FAQ Basic questions about the GPL, the GNU Project, and the Free Software Foundation General understanding of the GPL Using the GPL for your programs Distribution of programs released under the GPL Using programs released under the GPL when writing other programs Combining work with code released under the GPL Questions about violations of the GPL 2/21/2021 資 系網媒所 80/118 NEWS實驗室

Basic Questions What does "GPL" stand for? Does free software mean using the GPL?

Basic Questions What does "GPL" stand for? Does free software mean using the GPL? Why should I use the GNU GPL rather than other free software licenses? Does all GNU software use the GNU GPL as its license? Does using the GPL for a program make it GNU software? Can I use the GPL for something other than software? Why don't you use the GPL for manuals? Are there translations of the GPL into other languages? Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL? Who has the power to enforce the GPL? Why does the FSF require that contributors to FSFcopyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how? Can I modify the GPL and make a modified license? 資 系網媒所 2/21/2021 81/118 NEWS實驗室

What does "GPL" stand for? "GPL" stands for "General Public License". The most widespread

What does "GPL" stand for? "GPL" stands for "General Public License". The most widespread such license is the GNU General Public License, or GNU GPL for short. This can be further shortened to "GPL", when it is understood that the GNU GPL is the one intended. 2/21/2021 資 系網媒所 82/118 NEWS實驗室

Does free software mean using the GPL? Not at all--there are many other free

Does free software mean using the GPL? Not at all--there are many other free software licenses. We have an incomplete list. Any license that provides the user certain specific freedoms is a free software license. 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. 資 系網媒所 2/21/2021 83/118 NEWS實驗室

Why should I use the GNU GPL rather than other free software licenses? Using

Why should I use the GNU GPL rather than other free software licenses? Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license. 2/21/2021 資 系網媒所 84/118 NEWS實驗室

Does all GNU software use the GNU GPL as its license? Most GNU software

Does all GNU software use the GNU GPL as its license? Most GNU software packages use the GNU GPL, but there a few GNU programs (and parts of programs) that use looser licenses, such as the Lesser GPL. When we do this, it is a matter of strategy. LGPL 2/21/2021 資 系網媒所 85/118 NEWS實驗室

Does using the GPL for a program make it GNU software? Anyone can release

Does using the GPL for a program make it GNU software? Anyone can release a program under the GNU GPL but that does not make it a GNU package. Making the program a GNU software package means explicitly contributing to the GNU Project. This happens when the program's developers and the GNU Project agree to do it. If you are interested in contributing a program to the GNU Project, please write to <maintainers@gnu. org>. 2/21/2021 資 系網媒所 86/118 NEWS實驗室

Can I use the GPL for something other than software? You can apply the

Can I use the GPL for something other than software? You can apply the GPL to any kind of work, as long as it is clear what constitutes the "source code" for the work The GPL defines this as the preferred form of the work for making changes in it. However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL. Software Licenses For Documentation Licenses For Works Besides Software and Documentation 2/21/2021 資 系網媒所 87/118 NEWS實驗室

Why don't you use the GPL for manuals? It is possible to use the

Why don't you use the GPL for manuals? It is possible to use the GPL for a manual, but the GNU Free Documentation License (GFDL) is much better for manuals. The GPL was designed for programs; it contains lots of complex clauses that are important for programs, but that are dead weight for a book or manual. GFDL has clauses that help publishers of free manuals make a profit from them. 2/21/2021 資 系網媒所 88/118 NEWS實驗室

Are there translations of the GPL into other languages? That carries a risk so

Are there translations of the GPL into other languages? That carries a risk so great we do not dare accept it. Referring people to unofficial translations. This means that we permit people to write translations of the GPL, but we don't approve them as legally valid and binding. Publishing translations valid for a single country only. 2/21/2021 資 系網媒所 89/118 NEWS實驗室

Why are some GNU libraries released under the ordinary GPL rather than the Lesser

Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL? Using the Lesser GPL for any particular library constitutes a retreat for free software. 2/21/2021 資 系網媒所 90/118 NEWS實驗室

Who has the power to enforce the GPL? Since the GPL is a copyright

Who has the power to enforce the GPL? Since the GPL is a copyright license, the copyright holders of the software the ones who have the power to enforce the GPL. If you see a violation of the GPL, you should inform the developers of the GPL-covered software involved. They either are the copyright holders, or are connected with the copyright holders. 2/21/2021 資 系網媒所 91/118 NEWS實驗室

Why does the FSF require that contributors to FSF -copyrighted programs assign copyright to

Why does the FSF require that contributors to FSF -copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how? Our lawyers have told us that to be in the best position to enforce the GPL in court against violators. Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL. So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain. 2/21/2021 資 系網媒所 92/118 NEWS實驗室

Can I modify the GPL and make a modified license? You can use the

Can I modify the GPL and make a modified license? You can use the GPL terms (possibly modified) in another license provided that you call your license by another name and do not include the GPL preamble, and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU (though the actual procedure you describe may be similar). 2/21/2021 資 系網媒所 93/118 NEWS實驗室

General understanding of GPL (1) Why does the GPL permit users to publish their

General understanding of GPL (1) Why does the GPL permit users to publish their modified versions? Does the GPL require that source code of modified versions be posted to the public? Can I have a GPL-covered program and an unrelated non-free program on the same computer? If I know someone has a copy of a GPL-covered program, can I demand he give me a copy? What does this "written offer valid for any third party" mean? Does that mean everyone in the world can get the source to any GPL'ed program no matter what? The GPL says that modified versions, if released, must be "licensed. . . to all third parties. " Who are these third parties? Does the GPL allow me to sell copies of the program for money? Does the GPL allow me to charge a fee for downloading the program from my site? Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me? If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge? Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement? Does the GPL allow me to develop a modified version under a nondisclosure agreement? Why does the GPL require including a copy of the GPL with every copy of the program? What if the work is not much longer than the license itself? 2/21/2021 資 系網媒所 94/118 NEWS實驗室

General understanding of GPL (2) Am I required to claim a copyright on my

General understanding of GPL (2) Am I required to claim a copyright on my modifications to a GPL-covered program? If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code? I want to get credit for my work. I want people to know what I wrote. Can I still get credit if I use the GPL? Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space? What does it mean to say that two licenses are compatible? What does it mean to say a license is "compatible with the GPL"? Why is the original BSD license incompatible with the GPL? What is the difference between "mere aggregation" and "combining two modules into one program"? Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how? If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? Can I use the GPL for something other than software? How does the LGPL work with Java? 2/21/2021 資 系網媒所 95/118 NEWS實驗室

Why does the GPL permit users to publish their modified versions? A crucial aspect

Why does the GPL permit users to publish their modified versions? A crucial aspect of free software is that users are free to cooperate. Alternatives to the GPL that require modified versions to go through the original author. If the author stops (more or less) to do something else or does not attend to all the users' needs, this scheme falls down. Sometimes control over modified versions is proposed as a means of preventing confusion between various versions made by users. This confusion is not a major problem. 2/21/2021 資 系網媒所 96/118 NEWS實驗室

Does the GPL require that source code of modified versions be posted to the

Does the GPL require that source code of modified versions be posted to the public? The GPL does not require you to release your modified version. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization. But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the users, under the GPL. 2/21/2021 資 系網媒所 97/118 NEWS實驗室

Can I have a GPL-covered program and an unrelated non-free program on the same

Can I have a GPL-covered program and an unrelated non-free program on the same computer? Yes. 2/21/2021 資 系網媒所 98/118 NEWS實驗室

If I know someone has a copy of a GPLcovered program, can I demand

If I know someone has a copy of a GPLcovered program, can I demand he give me a copy? No. 2/21/2021 資 系網媒所 99/118 NEWS實驗室

What does this "written offer valid for any third party" mean? Does that mean

What does this "written offer valid for any third party" mean? Does that mean everyone in the world can get the source to any GPL'ed program no matter what? If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer. Commercially? This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer. People who receive the binaries indirectly in that way can order the source code from you. 2/21/2021 資 系網媒所 100/118 NEWS實驗室

The GPL says that modified versions, if released, must be "licensed. . . to

The GPL says that modified versions, if released, must be "licensed. . . to all third parties. " Who are these third parties? Everyone ! but this does not require you to *do* anything physically for them. 2/21/2021 資 系網媒所 101/118 NEWS實驗室

Does the GPL allow me to sell copies of the program for money? Except

Does the GPL allow me to sell copies of the program for money? Except in one special situation, there is no limit on what price you can charge. The one exception is the required written offer to provide source code that must accompany binary-only release. Can not charge too much later on! 2/21/2021 資 系網媒所 102/118 NEWS實驗室

Does the GPL allow me to charge a fee for downloading the program from

Does the GPL allow me to charge a fee for downloading the program from my site? Yes. 2/21/2021 資 系網媒所 103/118 NEWS實驗室

Does the GPL allow me to require that anyone who receives the software must

Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me? No. 2/21/2021 資 系網媒所 104/118 NEWS實驗室

If I distribute GPL'ed software for a fee, am I required to also make

If I distribute GPL'ed software for a fee, am I required to also make it available to the public without a charge? No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. 2/21/2021 資 系網媒所 105/118 NEWS實驗室

Does the GPL allow me to distribute a modified or beta version under a

Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement? Yes. For instance, you can accept a contract develop changes and agree not to release your changes until the client says ok. This is permitted because in this case no GPL-covered code is being distributed under an NDA. You can also release your changes to the client under the GPL, but agree not to release them to anyone else until the client says ok. In this case, too, no GPL-covered code is being distributed under an NDA, or under any additional restrictions. The GPL would give the client the right to redistribute your version, but in this scenario the client will choose not to exercise that right. 2/21/2021 資 系網媒所 106/118 NEWS實驗室

Does the GPL allow me to develop a modified version under a nondisclosure agreement?

Does the GPL allow me to develop a modified version under a nondisclosure agreement? Yes. 2/21/2021 資 系網媒所 107/118 NEWS實驗室

Why does the GPL require including a copy of the GPL with every copy

Why does the GPL require including a copy of the GPL with every copy of the program? Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are. It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist. 2/21/2021 資 系網媒所 108/118 NEWS實驗室

What if the work is not much longer than the license itself? ? If

What if the work is not much longer than the license itself? ? If a single program is that short, you may as well use a simple all-permissive license for it, rather than the GNU GPL. 2/21/2021 資 系網媒所 109/118 NEWS實驗室

Am I required to claim a copyright on my modifications to a GPL-covered program?

Am I required to claim a copyright on my modifications to a GPL-covered program? You are not required to claim a copyright on your changes. In most countries, however, copyright happens automatically by default, so you need to place your changes explicitly in the public domain if you do not want them to be copyrighted. Whether you claim a copyright on your changes or not, either way you must release the modified version, as a whole, under the GPL. 2/21/2021 資 系網媒所 110/118 NEWS實驗室

If a program combines public-domain code with GPL-covered code, can I take the public-domain

If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code? You can do that, if you can figure out which part is the public domain part and separate it from the rest. If code was put in the public domain by its developer, it is in the public domain no matter where it has been. 2/21/2021 資 系網媒所 111/118 NEWS實驗室

I want to get credit for my work. I want people to know what

I want to get credit for my work. I want people to know what I wrote. Can I still get credit if I use the GPL? You can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name (assuming you are the copyright holder). The GPL requires all copies to carry an appropriate copyright notice. 2/21/2021 資 系網媒所 112/118 NEWS實驗室

Can I omit the preamble of the GPL, or the instructions for how to

Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space? The preamble and instructions are integral parts of the GNU GPL and may not be omitted. In fact, the GPL is copyrighted, and its license permits only verbatim copying of the entire GPL. The preamble and instructions add up to some 5000 characters, less than 1/3 of the GPL's total size. They will not make a substantial fractional change in the size of a software package unless the package itself is rather small. In that case, you may as well use a simple all-permissive license rather than the GNU GPL. 2/21/2021 資 系網媒所 113/118 NEWS實驗室

What does it mean to say that two licenses are compatible? In order to

What does it mean to say that two licenses are compatible? In order to combine two programs (or substantial parts of them) into a larger work, you need to have permission to use both programs in this way. If the two programs' licenses permit this, they are compatible. If there is no way to satisfy both licenses at once, they are incompatible. For some licenses, the way in which the combination is made may affect whether they are compatible--for instance, they may allow linking two modules together, but not allow merging their code into one module. 2/21/2021 資 系網媒所 114/118 NEWS實驗室

What does it mean to say a license is "compatible with the GPL"? It

What does it mean to say a license is "compatible with the GPL"? It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program. 2/21/2021 資 系網媒所 115/118 NEWS實驗室

Why is the original BSD license incompatible with the GPL? Because it imposes a

Why is the original BSD license incompatible with the GPL? Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. The GPL states: You may not impose any further restrictions on the recipients' exercise of the rights granted herein. The advertising clause provides just such a further restriction, and thus is GPL-incompatible. The revised BSD license does not have the advertising clause, which eliminates the problem. 2/21/2021 資 系網媒所 116/118 NEWS實驗室

What is the difference between "mere aggregation" and "combining two modules into one program"?

What is the difference between "mere aggregation" and "combining two modules into one program"? Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. If one of the programs is covered by the GPL, it has no effect on the other program. Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them. What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc. ) and the semantics of the communication (what kinds of information are interchanged). 2/21/2021 資 系網媒所 117/118 NEWS實驗室

Why does the FSF require that contributors to FSF -copyrighted programs assign copyright to

Why does the FSF require that contributors to FSF -copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how? Our lawyers have told us that to be in the best position to enforce the GPL in court against violators. Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL. So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain. 2/21/2021 資 系網媒所 118/118 NEWS實驗室

If I use a piece of software that has been obtained under the GNU

If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? Yes if GPL'ed. 2/21/2021 資 系網媒所 119/118 NEWS實驗室

Can I use the GPL for something other than software? You can apply the

Can I use the GPL for something other than software? You can apply the GPL to any kind of work, as long as it is clear what constitutes the "source code" for the work. The GPL defines this as the preferred form of the work for making changes in it. However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL. 2/21/2021 資 系網媒所 120/118 NEWS實驗室

How does the LGPL work with Java? It works as designed, intended, and expected.

How does the LGPL work with Java? It works as designed, intended, and expected. 2/21/2021 資 系網媒所 121/118 NEWS實驗室