Open Source Software Development: an Overview
Total Page:16
File Type:pdf, Size:1020Kb
COMPUTING PRACTICES Open Source Software Development: An Overview Although some challenge the value of open source software development,its popularity cannot be disputed. This overview of open source licensing and development models describes some of the movement’s main principles. Ming-Wei Wu roprietary software vendors operate on a seeks to develop Unix-compatible software and return closed-source model: They develop their software to a state of freedom. Ying-Dar Lin own software and release that software to Stallman is both an open source evangelist and a National the public with the intention of gaining mar- major open source contributor as the principal author Chiao Tung University, ket penetration and earning a profit. The of the GNU C Compiler (GCC), GNU symbolic Taiwan Popen source movement, while still profitable in many debugger (GDB), GNU Emacs, and more. All these ways to profit-oriented companies, relies on a differ- packages provide essential tools for GNU/Linux. The ent set of practices. In the open source movement, Red Hat 7.1 distribution, which collects some 1,016 everyone capable of writing code is welcome to join packages altogether, contains 70 GNU packages. in, a strategy that—according to open source advo- The purpose of the Free Software Foundation is not cates—directly leads to more robust software and to ensure distributing software to the end user without more diverse business models. cost, but to ensure that the end user can use the soft- While some challenge the general assumptions ware freely. From the Free Software Foundation’s per- about the benefits of open source software develop- spective, the term “free software” has nothing to do ment,1 the evidence of popular buy-in cannot be dis- with price: A program is free software if you have the puted. People everywhere are adopting various open freedom to run the program, modify it to suit your source distributions or participating in the general needs, redistribute copies either gratis or for a fee, and movement by contributing their own modifications. distribute modified versions of the program so that the We offer an overview of open source licensing and community can benefit from your improvements. development and strive to clarify some of the main Because free refers to freedom, not to price, it is not principles underlying the resulting software. Because contradictory to say that software can be both for sale so much has already been written about open source, and free simultaneously. According to the Free we seek only to touch on some of its major themes and Software Foundation, the freedom to sell copies is cru- provide pointers to essential information about the cial: Selling collections of free software on CD-ROM movement and its general licensing structures. raises funds for free software development. Therefore, according to the open source definition of the term OPEN SOURCE BACKGROUND “free,” a program that people cannot freely include In 1984, Richard Stallman founded the Free on these collections does not qualify as free software. Software Foundation (http://www.fsf.org/fsf/fsf.html), The copyleft and General Public License are a tax-exempt charity that raises funds for work on the designed to guarantee this freedom. Copylefts are, in GNU Project (http://www.gnu.org/gnu/thegnuproject. essence, copyrights with GPL regulations. html). GNU is a recursive acronym for “GNU’s Not Open source software, essentially a superset of free Unix” and a homophone for “new.” The GNU Project software, exists in almost countless varieties today, 0018-9162/01/$10.00 © 2001 IEEE June 2001 33 A personal itch Look for any similar projects No Yes patches. This easy-to-use mechanism cannot track a Initiate a project Join that project project’s history automatically, however. Walter Tichy’s Revision Control System improves Use mailing list for announcement and bug tracking; use OpenPGP the capabilities of diff and patch by automatically keeping track of change history, but his method does CVS version control not address several important issues. For example, RCS uses the lock-modify-unlock development style that blocks other codevelopers from modifying the Write documents and manuals Do little document writing code simultaneously. Further, RCS does not support network development, which means codevelopers Decide a license model Vote for a license model must work on the same machine. In 1986, Dick Grune undertook an RCS overhaul Accept patches and modifications (vote or dictatorship) that eventually created the Concurrent Versions System,3 which makes RCS easier to use. Brian Berliner Release official version in the foreseeable future then rewrote CVS using C, and, finally, Jim Kingdon added network development support to the method. CVS uses the copy-modify-merge development style that allows several codevelopers to copy source code Figure 1. The general each with its own unique history.2 Linux, perhaps the from a CVS repository and modify their own versions open source system best-known open source software package, began simultaneously. CVS then intelligently merges all development cycle. modestly in 1991, seven years after the founding of changes together. For example, if version A and B have Allowing multiple the Free Software Foundation. Linus Torvalds, at the no conflicts, it’s an easy merge; if version A and B have participants to time a graduate student at Helsinki University in conflicts, the newer version’s author must solve these contribute to the soft- Finland, wrote a Unix-compatible operating system conflicts before merging new contributions into the ware development and posted it on the comp.os.minix newsgroup, repository. process requires a single-handedly starting the Linux revolution. Several Web-hosting companies offer free hosting massive coordination Torvalds handed on the kernel maintenance to Alan services to support the development of open source pro- effort. Cox in 1994 but continued monitoring each kernel jects. For example, SourceForge (http://sourceforge.net) version to determine what should be left in and left currently offers features such as bug tracking, project out. Since 1994, Torvalds has let others deal with user- management, forum services, mailing list distribution, space issues like libraries, compilers, and the many and more. Both Gnutella and Freenet—Napster-like utilities and applications that go into every Linux dis- file sharing systems—use SourceForge for development. tribution. By doing so, Torvalds gives users and ven- dors the freedom to customize his work. LICENSING MODELS Source license models fall into three general cate- OPEN SOURCE DEVELOPMENT gories: free—the program can be freely modified and The open source software development cycle, as redistributed; copyleft—the owner gives up intellectual the flow chart in Figure 1 shows, allows literally any- property and private licensing; and GPL-compatible— one to participate in the process, but having multi- licenses are legally linked to the GPL licensing structure. ple participants means a massive coordination effort. In addition to open source licensing models, devel- Developers can use several different models to coor- opers use hundreds of other licensing models for the dinate these large-scale efforts, from standardizing many kinds of software they market, ranging from software—see the “Standardizing Linux” sidebar— shareware to giftware to proprietary agreements, or to offering participants T-shirts or other benefits. anything in between. Each of these models contributes eXtropia uses the open source model to continually to the general confusion surrounding licensing arrange- acquire contributions from the hundreds of partici- ments and the terminology that describes them, because pants who have helped the company produce well- ordinary users seldom read software licenses in detail. documented, feature-rich Web applications. Some common open source license models include: Given that project codevelopers may be scattered across the globe, they must agree on a version con- • General Public License. This free software licens- trol system to avoid development chaos. Currently, ing uses the copyleft model, a self-perpetuating developers can choose from three major multiple- spiral model that strictly ensures distribution of developer models for version control. Larry Wall’s diff any derivative work under the same license model. and patch for Unix offers one of the oldest standard • Lesser GPL. Once known as library GPL, LGPL ways to submit contributions. The diff process dis- lets users extend the source with proprietary covers the differences between two files to generate modules. 34 Computer • Berkeley Software Distribution. The BSD model links to their complete information, visit http://www. offers free code distributions and allows cover- opensource.org/licenses/. ing derivative works under different terms as long Among open source licensing structures, although as the necessary credit is given. Examples of BSD the GPL license calls for the strictest regulation, com- licensees include Apache, BSD-related OSs, and plaints and public scorn currently provide the main free versions of Sendmail. methods for opposing GPL violations. Despite the • Mozilla Public License. MPL requires distribut- absence of harsher sanctions, most companies are will- ing derivative works under MPL, which means ing to correct licensing problems and release the mod- that derivative work loses patent rights but still ified version of their software to avoid a damaged can enjoy private licensing.