<<

COMPUTING PRACTICES 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 -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 Compiler (GCC), GNU symbolic Taiwan Popen source movement, while still profitable in many debugger (GDB), GNU , and more. All these ways to profit-oriented companies, relies on a differ- packages provide essential tools for GNU/. 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 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 ’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, founded the Free on these collections does not qualify as free software. Software Foundation (http://www.fsf.org/fsf/fsf.html), The 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 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 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 • 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. However, a module reputation. that MPL covers cannot legally be linked together For example, nVidia modified the XFree86 driver with a module that GPL covers. for use in its graphics drivers, but did not release the • Public License. This MPL extension code. Because part of the drivers’ code falls under the permits Netscape to use your added code even in GPL model, nVidia had to remove all GPL code, then its proprietary versions of the program. re-release the drivers. In a similar case with a differ- • Public License. A noncopyleft free software ent outcome, Microsoft bought Softway Systems, license, QPL requires distributing any modified makers of GPL-regulated software, and repackaged source distributions only as patches. its products as Microsoft Interix to provide a Unix • Artistic License. Nearly identical to the GPL environment within Windows. By doing so, Microsoft model, AL doesn’t require distributing derivative could claim Interix as its own work, thereby skirting works under the same terms when a company the GPL regulation. uses them internally. Many commercial companies have begun using multilicensing models to avoid GPL violations. For We’ve listed several of these licensing models in example, Sun’s StarOffice adapts three licensing mod- Table 1 for easy cross-reference. For a more complete els: GPL, LGPL, and SISSL. Ordinary users who can list of the main open source licensing models with fulfill GPL regulations can use StarOffice under GPL.

Standardizing Linux

The Linux Standard Base seeks to assure cross-distribution and cations require different minor versions of a given library, it is an backward compatibility of Linux applications without impeding impractical strategy for solving library compatibility. First, this innovation. Shared libraries are at the root of many application approach simply isn’t reliable enough. It also does nothing to pre- compatibility issues, especially when developers do not subject vent an installation from overwriting libraries with newer versions libraries to strict version control or when application writers don’t that may break backward compatibility. Fortunately, Linux’s open know which version of a library to use. source nature makes it nearly impossible for any single provider to Most OSs rely on shared libraries to provide applications with make standards a moving target. Users can obtain the latest ver- a set of standard functions and utilities that do not waste storage sions of core Linux libraries, regardless of the Linux distribution space. Linux, for example, usually includes essential and com- they use. monly used libraries such as glibc, pthreads, libm, Xt, and ncurses, LSB adds one more level of insurance. Regardless of how among many others. updates to an LSB-compliant Linux offering occur, they will not Applications compiled with a given version of a shared library will break LSB-compliant applications because the LSB libraries will expect to find precisely the version they need at runtime. While it is remain untouched. possible for these applications to run with a later version of a library, Adopting LSB standards offers many potential benefits. Well- developers cannot always guarantee this backward compatibility. defined standards provide guidelines that both noncommercial One way around this problem is to include multiple versions and commercial developers can use to produce good code. Broad of libraries within a Linux distribution and allow applications LSB compliance means applications will run on every Linux box to select the version they were built to use. While this sometimes instead of being limited to a smaller segment of the Linux market. works, it isn’t always practical because adding library versions LSB gives every Linux provider access to a larger market because can use excessive space, undoing the value of having shared it encourages more suppliers, resellers, developers, and indepen- libraries. As a result, a system can appear to have several ver- dent software vendors to support Linux. There is still a strong sions of a library, when in reality it only has several links that incentive for everyone to innovate without posing a threat to the point to a single file. open source nature of Linux itself. While this situation commonly occurs because multiple appli- For more information about LSB, see http://www.linuxbase.org.

June 2001 35 Table 1. Open source licensing models.

Licensing model Free software Open source Copyleft GPL-compatible Examples GPL Yes Yes Yes Yes CVS LGPL Yes Yes Partial Yes GNU C library X11 Yes Yes No Yes XFree86 Python Yes Yes No Yes Python BSD Yes Yes No No Apache, Sendmail MPL/NPL Yes Yes No No Mozilla QPL Yes Yes No No Qt Sun Industry Standard Yes Yes No No Commercial-version Source License (SISSL) StarOffice Artistic License (AL) No Yes No No Perl Apple Public Source No Yes No No Darwin License (APSL)

Proprietary developers and companies can use LGPL ating environments that provide consoles and GUI or SISSL, which both state that the source should be interfaces, daemons that provide various services, and available only when needed to make certain modifi- programming toolkits and libraries that offer develop- cations that address issues like incompatibility. Sun’s ment functionality. decision to use a multiple licensing model means that Although more proprietary packages are available, software developers and users can make their own there are so many open source packages that most choices between freedom and ownership. users can find an application that exactly meets their needs. Table 2 lists some of the most popular open BUSINESS MODELS source packages, showing their broad availability. Although Linux is gaining market share rapidly— Alternative solutions are available for users seeking a see the “Linux Distributions” sidebar for a brief shift from, say, Windows to Linux. overview of the major packages—most users Open source software does not cost much even when remain with Microsoft. Those who seek alternatives, users purchase it from a third party such as Red Hat. however, find a huge library of open source software. Far more flexible than closed systems, open source soft- These offerings fall into three major categories: oper- ware frees both software developers and hardware man-

Linux Distributions

Every open source distribution vendor builds its version • Red Hat (http://www.redhat.com), perhaps the largest dis- around the same evolving kernel. The vendors who publish the tribution vendor in terms of both sales volume and mar- various Linux distributions test, integrate, and assemble these ket share, makes a package that’s easy to install, uninstall, packages on top of the kernel. The following list describes a brief and upgrade. It also makes software dependency trans- sampling of the most popular Linux distributions. For a more parent. Red Hat gives feedback to the open source com- complete directory, see http://www.linux.org/dist/index.html. munity and actively recruits open source project de- velopers. • Slackware (http://www.slackware.com), widely used, some- • SuSE (http://www.SuSE.com) leads the market in Europe what commercial, very stable, and easy to manage, has a with nearly 30 percent penetration. Known for excellent long history. You use pkgtool to control its TarBall pack- documentation and abundant package resources, SuSE is ages. The rmp2targz tool can convert Red Hat packages a good choice for newbies. for installation in Slackware. • Linux-Mandrake (http://www.linux-mandrake.com), an • Debian (http://www.debian.org), a distribution that nearly 500 up-and-coming distribution vendor, began by simply com- volunteers have formed and maintain, is not designed to turn bining a Red Hat distribution with the K Desktop a profit, but instead to promote frequent interaction between Environment and many other unique, feature-rich tools. contributors and users. The Debian community gives credit to This combination proved so popular that its distributors the appropriate developers in clear detail. Many advanced users founded MandrakeSoft, which soon became the second find a great deal of flexibility in the Debian distributions. most successful Linux vendor.

36 Computer ufacturers from following a closed-software vendor’s sidebar describes, the Linux Standard Base organiza- specifications. Perhaps best of all, open source software tion promotes solutions to these fragmentation prob- is reliable. Perl, sendmail, and Apache have shown sig- lems by facilitating the standardization of the various nificantly more stability than their proprietary counter- Linux platforms. The issue of fragmentation will likely parts. Because a diverse community of enthusiasts contributes continually to open source development, Table 2. Popular open source packages. users capable of programming can quickly solve most problems that afflict the software, such as system bugs, Application Popular packages security holes, and even performance tuning. Editors Vim (VIsual editor iMproved), vi, Pico, Joe, Private licensing usually takes place when a propri- Emacs, XEmacs etary software company cannot fulfill GPL regulations. Word processing WordPerfect, Kword, Papyrus, Tex/LaTex, LyX, xfig Thus, a private license lets a company keep its code Office suites StarOffice, KOffice, iOffice2000 secret. If you are the only owner of a piece of work, Image manipulation tools GIMP, XV you can decide what you want to do about licensing. Image browsing Imanager for ImLib, QtVu, Quick Image Viewer, If, however, you share the work with several contrib- KuickShow utors, you must re-create the work of each dissenting Multimedia XAnim, XMovie, MPEG TV contributor if you want to sell a private license. MP3 XMMS, X11AMP Most Linux vendors do more than simply sell the ICQ Licq, Kicq, GnomeICU software. Red Hat, for example, leverages its value- Browsers , Opera, Mozilla added services, relying not on profits that the software E-mail Fetchmail, mailx, , elm, Balsa, AlphaMail, generates but on the revenue from charges for the ser- TWIG, WebMail vices the company provides to its vast number of users. Newsgroup clients Pan, News Peruser, KRN, Tin For example, Red Hat charges for setting up an FTP gFTP, nFTP, SkateFTP, IglooFTP PRO, ncftp Apache Web server, developer training, or 24-hour File management Kruiser, Xfm, llnlxdir unlimited tech support for one year. Theme Enlightment, Window Maker, Blackbox, sawfish, A company can also gain many related benefits Afterstep from open source development and distribution, such Peer-to-peer file sharing Gnutella, Gnapster, Freenet, Publius as enhancing its reputation. For example, GNU has a E-mail server EMUmail, Epop, teapop, Qmail, Sendmail reputation for releasing well-known coding packages, Newsgroup server Leafnode, MetaNews which makes it much easier for the organization to FTP server BeroFTPD, WuFTPD, ProFTPD convince people to use its tools and services. In 1998, Database MySQL, PostgreSQL, DBMaker Netscape released its source code and rapidly gained Web server Apache, iPlanet Web Server, NetMAX WebServer, market share, becoming the first-choice browser in Understudy most Linux distributions. This market position in turn Development toolkit GNUPro Toolkit, BXPro, GCC, Code Crusader, helps the company sell its server products. Code Fusion Debugger DDD, GDB, KGDB hile free software does give its users unprece- Development platform Gnome, GNUstep, KDE dented flexibility, stability, and freedom of Interpreters Java, Perl, Python, CINT W choice, various distributions tend to compete Palm programming GCC, prc-tools, PilRC, PocketC and imitate one another. As the “Standardizing Linux”

Additional Resources

• Definition of Free Software According to GNU Model, • E.S. Raymond, “The Cathedral and the Bazaar,” http:// http://www.gnu.org/philosophy/free-sw.html. www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral- • K. Hafner and M. Lyon, Where Wizards Stay Up Late: The bazaar/. Origins of the Internet, Simon & Schuster, New York, 1996. • E.S. Raymond, “The Halloween Documents,” http://www. • N. Newman, “The Origins and Future of Open Source opensource.org/halloween/. Software,” http://www.netaction.org/opensrc/future/. • R. Stallman, “The GNU Project,” http://www.gnu.org/gnu/ • Open Development Issues, http://www.opendeveloper.org. thegnuproject.html. • Open Source Developer Network, http://osdn.com. • M. Stoltz, “The Case for Government Promotion of Open • Open Source General Directory, http://www.openresources.com. Source Software,” http://www.netaction.org/opensrc/oss- • Open Source Web Development Resource, http://www. report.html. devshed.com.

June 2001 37 be the most prominent hurdle that open source soft- 2. G. Drummond, “Open Source Software and Documents: ware encounters in the years ahead. A Literature and Online Resource Review,” http://www. Meanwhile, Microsoft prepares for patent war- omar.org/opensource/litreview/. fare—seeking and securing patents that threaten open 3. K. Fogel, Open Source Development with CVS, The source. Indeed, last year, Microsoft applied for 25 per- Coriolis Group, Scottsdale, Ariz., 1999, pp. 5-7, 81-99, cent more software patents than it did the year before. http://cvsbook.red-bean.com/cvsbook.html. The company has hinted at adopting the open source model, but we won’t know for certain whether the announcement Steve Ballmer made a few months ago Ming-Wei Wu is a graduate-student researcher in the is legitimate until the company releases its source code. Department of Computer and Information Science at Given the momentum the open source movement National Chiao Tung University in Taiwan. His enjoys today, it will be interesting to see the extent to research interests include peer-to-peer resource-shar- which traditional commercial developers will evolve ing networks and VoIP integration in PSTN, Internet, to keep pace with it. Several surprising waves of and 3G wireless networks. He received a BS in com- growth and innovation have swept over the computer puter science from Soochow University, Taiwan. Con- industry during the past 30 years, such as the first tact him at [email protected]. microcomputers in the 1970s, mass-produced com- modity PCs from the mid-1980s through the present, and the rise of the Internet, and it may soon face a del- Ying-Dar Lin is a professor of the Department of uge of commercial software based upon open source Computer and Information Science at National Chiao development models. ✸ Tung University in Taiwan. His research interests include design, analysis, and implementation of net- work protocols and algorithms, wire-speed switching References and routing, quality of service, and intranet servers. 1. N. Bezroukov, “Open Source Software Development as a He received a PhD in computer science from the Uni- Special Kind of Academic Research (Critique of Vulgar versity of California, Los Angeles. He is a member of Raymondism),” http://firstmonday.org/issues/issue4_10/ the IEEE and the ACM. Contact him at ydlin@cis. bezroukov/index.html. nctu.edu.tw.

cluster computing collaborative computing dependable systems distributed agents distributed databases distributed multimedia grid computing middleware mobile & wireless systems operating systems real-time systems security IEEE Distributed Systems Online computer.org/dsonline