ted by Chris DiBona, Danese
Mark Stone With a Foreword by Kim Polese
THE CONTINUING
EVOLUTION
O REILLY
open sources 2.0
XX
open sources 2.0
Edited by Chris DiBona Danese Cooper Mark Stone
IHE CONTINUING
EVOLUTION
XX
XX
O REILLY*
Beijing Cambridge Koln London Paris Sebastopol Taipei Tokyo
Open Sources 2.0: The Continuing Evolution
Edited by Chris DiBona, Danese Cooper, and Mark Stone
Copyright 2006 Chris DiBona, Danese Cooper, and Mark Stone. All rights reserved.
Printed in the United States of America.
Published by O Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also
available for most titles (safari.oreilly.com). For more information, contact our corporate/institutional sales
department: (800) 998-9938 or corporate@oreilly.com.
Executive Editor: Mike Hendrickson
Production Editor: Jamie Peppard
Cover Designer: Mike Kohnke
Interior Designer: Mike Kohnke
Printing History:
October 2005: First Edition.
The O Reilly logo is a registered trademark of O Reilly Media, Inc. Open Sources 2.0 and related trade
dress are trademarks of O Reilly Media, Inc.
The essays in Open Sources 2.0are licensed under the Creative Commons Attribution-NonCommercial-
NoDerivs 2.5 license. To view a copy of the license, send a letter to Creative Commons, 543 Howard
Street, Fifth Floor, San Francisco, CA 94105, visit http://creativecommons.Org/licenses/by-nc-nd/2.5/,
or see Appendix B.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed
as trademarks. Where those designations appear in this book, and O Reilly Media, Inc. was aware of a
trademark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher, editors, and authors
assume no responsibility for errors or omissions, orfor damages resulting from the use of the information
contained herein.
^ This book uses RepKover? a durable and flexible lay-flat binding.
ISBN: 0-596-00802-3
XX
Table of Contents
Foreword: Source Is Everything ix
Kim Polese
Acknowledgments xiii
List of Contributors xv
Introduction xxv
Chris DiBona, Danese Cooper, and Mark Stone
SECTION 1 . Open Source: Competition and Evolution 1
1. The Mozilla Project: Past and Future 3
Mitchell Baker
2. Open Source and Proprietary Software Development 21
Chris DiBona
3. A Tale of Two Standards 37
Jeremy Allison
4. Open Source and Security 57
Ben Laurie
5. Dual Licensing 71
Michael Olson
6. Open Source and the Commoditization of Software 91
Ian Murdock
7. Open Source and the Commodity Urge: Disruptive Models
for a Disruptive Development Process 103
Matthew N. Asay
8. Under the Hood: Open Source and Open Standards Business Models
in Context 121
Stephen R. Walli
9. Open Source and the Small Entrepreneur 137
Russ Nelson
10. Why Open Source Needs Copyright Politics 149
Wendy Seltzer
11. Libre Software in Europe 161
Jesus M. Gonzalez-Barahona
Gregorio Robles
12. OSS in India 189
Alolita Sharma and
Robert Adkins
13. When China Dances with OSS 197
Boon-Lock Yeo, Louisa Liu, and Sunil Saxena
14. How Much Freedom Do You Want? 211
Bruno Souza
SECTION 2 . Beyond Open Source: Collaboration and Community 229
15. Making a New World 231
Doc Searls
16. The Open Source Paradigm Shift 253
Tim O Reilly
17. Extending Open Source Principles Beyond Software Development. . . 273
Pamela Jones
18. Open Source Biology 281
Andrew Hessel
19. Everything Is Known 297
ugene Kim
20. The Early History of Nupedia and Wikipedia: A Memoir 307
Larry Sanger
21. Open Beyond Software 339
SonaliK. Shah
22. Patterns of Governance in Open Source 361
Steven Weber
23. Communicating Many to Many 373
Jeff Bates and Mark Stone
vi xx Table of Contents
SECTION 3 . Appendixes 397
A. The Open Source Definition 399
B. Referenced Open Source Licenses 401
C. Columns from Slashdot 417
Index. . . 423
Table of Contents ** vn
XX
XX
Foreword: Source Is Everything
The software industry has always been caught between two perspectives: one
anchored in supply, the other in demand. To the market s supply side (the vendors),
commodities and "commoditization" have always been threats. To the demand side
(the customers), commodities have always been useful.
The latter view is winning, thanks to open source. And we re only beginning to dis
cover how much larger the market will be, now that it s filling with useful open
source commodities. These commodities, in most cases, have little or no sale value,
but are useful for building countless other businesses. The combined revenues of
those businesses will far exceed revenues of companies that make their money sell
ing software.
Use value precedes sale value in every market category. Think about it. Agriculture
started with gardening. Textiles started with weaving and knitting. Meat packing
started with herding. Construction started with hut building.
What did the software industry start with? In a word, programming. As Eric S. Raymond
said in the first chapter of the original Open Sources, "In the beginning were the Real Pro
grammers." To Raymond, real programming was both legacy and destiny a source that
began with "guys in polyester shirts, writing in machine and assembler and FORTRAN,"
and ran through Unix programming and the free software movement, to arrive at "Linux
development and mainstreaming of the Internet."
That latter phrase captured where the industry was when Open Sources was pub
lished in January 1999. The Internet, Raymond noted, "has even brought hacker cul
ture to the beginnings of mainstream respectability and political clout."
A half-decade later, open source has grown far beyond the mainstream. It has
become the bedrock over which the mainstream flows. Today it is hard to find a For
tune 500 company with an IT infrastructure that does not depend, in some funda
mental way, on open source software.
The Internet mainstreamed programming by putting every programmer zero dis
tance from every other programmer in the world. Supported by this extreme conve
nience the demand side began supplying itself in a global way. "Real Programmers"
were back in power. This time, however, real programmers were a legion, not a mere
handful, and the tools they needed could be found on any PC, not just on the infra
structure inside large organizations.
Today power comes from everybody who creates anything that s useful to anybody
and that any other programmer can improve.
Today there are hundreds of thousands of hackers, perhaps millions. Whatever the
number, many more will soon arrive from Asia, South America, Africa, and other for
merly Net-less places all over the world.
The technology sector s industrial age the one in which manufacturers built plat
forms for silos in which customers and users were trapped will, in retrospect,
appear to be an early growing stage: a necessary but temporary step toward a healthy
and mature marketplace.
Let s give credit where it s due: developing software and hardware in the early days of
the computing industry was like settling Mars. Every company had to build its own air
tight habitat, from the ground up. Making hardware and compatible software inside
your own habitat was hard enough. Trying to become interoperable with anybody
else s environment was nearly unthinkable. Even within large companies like IBM,
whole systems were incompatible with whole other systems. Remember Systems 34,
36, and 38, which used twin-ax cabling while IBM mainframes used co-ax?
All these closed habitats naturally fell in to fighting. The press supported the battling-
vendor view of the marketplace, which became a form of entertainment, dramatized
via continuous coverage of the vendor wars.
The Net obviates the need to build closed habitats. You don t need to make your own
bedrock anymore. Open source commodities provide all the base infrastructural
building materials you need, and then some.
Naturally, the old supply side felt threatened by that. For a while.
Foreword: Source Is Everything
Then the demand side (the programmers) inside those silos began using open source
to build solutions to all kinds of problems. Today IBM, Novell, HP, Sun nearly
every big platform and silo company other than Microsoft have shifted their prod
uct strategies to take advantage of abundant open source commodities in the market
place. They also contribute, in most cases, to the development projects that continue
to produce those commodities. While the decisions to "go open source" were made
at the tops of those companies, in every case they also involved ratification of deci
sions already made by the companies own engineers.
You can still build platforms today, of course, but for practical considerations, it only
makes sense to build them on top of open source infrastructure. Amazon and Google
are familiar platform businesses (one for retailing, the other for advertising), built on
cheap or free open source building materials.
The portfolio of open source building materials now runs to 100,000 or more prod
ucts, each the project of a hacker or community of hackers, each producing goods,
the primary purpose of which is to be useful, not just to sell. Because that software is
useful, and most of it doesn t have a proprietary agenda, whole market categories can
be opened where once only proprietary platforms and silos grew.
Take the private branch exchange (PBX) telephone business. In the old days, which
are now starting to end, companies had to choose corporate phone systems from
Toshiba, Panasonic, NEC, Nortel, and other manufacturers of closed proprietary
platforms and silos. Then a small device maker, Digium, released Asterisk, an open
source PBX. In addition to a vigorous development community, Asterisk attracted
countless varieties of businesses made possible by its wide-open use value. In the
long run, far more money will surely be made because of Asterisk than could ever
have been made by selling Asterisk or even by selling the proprietary PBXes that
Asterisk now obsoletes.
So, thanks to open source, the software market is finally growing up. It is becoming
mature. Its healthy new ecosystem is made possible by countless commodities, grow
ing more numerous every day.
There is an important difference, however, between open source commodities and
those derived from raw materials (like wood or steel) that is harvested or mined. It s
a difference that will make the new, mature, software marketplace incalculably large.
The difference is this: open source commodities are produced by creative and
resourceful human minds. Not by geology, biology, and botany. This means there is
neither a limit to the number of open source products, nor a limit to the number of
improvements.
Foreword: Source Is Everything
Yet every one of those open source projects is concerned mostly with the improve
ment of their own products. While they care about how those products interoperate
with other products, they can t begin to account for all the combined possibilities
where interoperation is required. That means there is room for businesses to test,
certify, and support combinations of open source products.
That s what attracted me into the vast and growing new marketplace opened by a
growing abundance of open source building materials. Like many industry veterans,
I didn t see that opportunity until I moved my point of view from the supply side
that felt threatened to the demand side that felt empowered.
And I m hardly alone.
Some will say we re at the beginning of another boom or worse, another bubble.
Those views are both limited and misleading. Open source has changed the world
of software into one in which raw materials are literally limitless. Every mature
industry such as construction, automobiles, computing hardware has experi
enced hyper-accelerated growth resulting from commoditization of its core build
ing blocks. But the impact on the software industry has the potential to be far more
profound, because software is so malleable, so easily shared now, and so increas
ingly ubiquitous in everyday life.
So, while open source software, and the commoditization it brings to the software
industry, may seem a threat today, it is actually ushering in a wave of enormous
innovation and productivity the impact of which has already reached far beyond
this industry.
It comes down to one simple truth: we humans naturally desire to improve our own
world through building useful tools. In sharing those tools, we ve learned that the
world around us gets better too. So the idea of open source is as old as civilization
itself. And our very modern industry is finally realizing the power contained in this
simple fact: the first source for everything we make is ourselves.
KIM POLESE, CEO, SPIKESOURCE
xii X Foreword: Source Is Everything
XX
XX
Acknowledgments
Chris DiBona: Like its predecessor, the publication of Open Sources 2.0 represents
the work of dozens of people both inside and outside of O Reilly. It was my pleasure
and privilege to work with Mark Stone again, and Danese Cooper was invaluable to
the creation of the book. The inspiration behind the international section was hers,
and she should be called out for that. In the first Open Sources I noted that Mark had
said that "a book could be written about how this book was written." And while this
one s creation was hardly as dramatic, it was no less challenging.
Special thanks to Mike Hendrickson, our O Reilly editor, who made it almost too easy.
Thanks to Tim, Rael, and Nat for the books, conferences and knowledge that your
company has crammed into my brain. Keep up the great work! Additionally, thanks to
the folks at Google who allowed me the spare cycles to produce the book so, thanks
Bill Coughran! I d also like to extend my love to Denise and Neil Kruse, my parents
Bennie and Cynthia, and especially my sister Trish we miss you.
Finally, in the last Open Sources, I dedicated it to my patient girlfriend Christine, and
now I dedicate this book and all my life s works to my wife Christine and our daugh
ter Frannie. I love you more than I can say.
Danese Cooper: Thanks to my family Joey, Adi, Zoe & Marie who have put up
with lots of absences as I ve traveled the world meeting open source people. Thanks
also to my friends, especially Brian Behlendorf and Tim O Reilly, and to all essay
writers for agreeing that there should be an update on Open Sources. Thanks to my
employers at Sun, and now Intel, for giving me space to work on the book, and to
X nil
my colleagues at the Open Source Initiative for including me in the work. And
finally, thanks to my co-editors, Chris and Mark, who had all the experience from
creating the first book and generously shared it.
Mark Stone: This book is dedicated to my wife Karen and my son Alex; may your
future always be open. Looking at the list of contributors here, I realize the three of
us really do stand on the shoulders of giants and are privileged to facilitate what
they have created. Several people at O Reilly deserve special praise: Tim O Reilly,
for having the vision to recognize that the time was right for this book; Mike Hen-
drickson, who waited so patiently for the final manuscript; and Jamie Peppard,
Marlowe Shaeffer, Audrey Doyle, and Rob Romano, who had the difficult produc
tion task of turning a wide range of formats and styles into a unified whole. My co-
editors, Chris and Danese, have been invaluable and inspiring colleagues through
out this whole process. Finally, I d like to thank xeno42, elcoronel, and beret for
the example they set and the education they ve given me; you guys live the ideal
every day that the rest of us can only talk about.
xiv X Acknowledgments
List of Contributors
Danese Cooper has a 15-year history in the software industry, and has long been an
advocate for transparent development methodologies. Danese worked for six years at
Sun Microsystems, Inc. on the inception and growth of the various open source
projects sponsored by Sun (including OpenOffice.org, java.net, and blogs.sun.com).
She was Sun s chief open source evangelist and founded Sun s Open Source Pro
grams Office. She has unique experience implementing open source projects from
within a large proprietary company. She joined the Open Source Initiative (OSI)
board in December 2001 and currently serves as secretary and treasurer. As of March
2005, Danese is with Intel to advise on open source projects, investment, and sup
port. She speaks internationally on open source and licensing issues.
Chris DiBona is the open source programs manager for Mountain View, California-
based Google, Inc. Before joining Google, Chris was an editor/author for the popular
online web site, Slashdot. He is an internationally known advocate of open source
software and related methodologies. Along with Mark Stone and Sam Ockman, he
edited the original Open Sources. He writes for many publications and speaks interna
tionally on software development and digital rights issues. His home page and blog
can be found at http://dibona.com.
Mark Stone has made a career of studying collaborative communities. As a univer
sity professor with a Ph.D. in philosophy of science, he has studied and published on
the disruptive community conditions that create scientific revolutions. More recent
work has involved the open source community, as editor for Morgan Kaufmann Pub
lishers covering operating systems and web technology, then as executive editor for
open source topics at O Reilly, and as the editor-in-chief of the Journal of Linux Tech
nology. While at O Reilly he co-edited, with Chris DiBona and Sam Ockman, the
seminal Open Sources in 1999. For the last six years he has worked with various dot
coms on tools and practices for collaboration and online community building,
including as part of the executive team managing top-tier technology sites such as
Slashdot (3.5 million page views per day served), and SourceForge.net (1 million
registered users). As director of product development for ManyOne Networks, he is
currently working on the next evolution of online community, leveraging 3D envi
ronments and new tools for knowledge management. Mark holds a Ph.D. in philoso
phy of science from the University of Rochester, and earned his B.A. in philosophy
from the University of Maryland. Mark can be reached at mark.stone@gmail.com.
Robert Adkins is cofounder of Technetra, a Silicon Valley software company which
implements and deploys large-scale software projects specializing in open source
solutions. Robert has more than 20 years of experience in the information technol
ogy industry, having led products and services groups at Apple Computer, IBM, BBN
Communications, and Litton/PRC. He has an M.S. in computer science from Johns
Hopkins University. He has published in many technology magazines and journals
including Linux Journal, LINUX For You, the Journal of the ACM, and Government
Computer News and speaks frequently at international technology events. Robert can
be reached at radkins@technetra.com.
Jeremy Allison is one of the lead developers on the Samba Team, a group of program
mers developing an open source Windows-compatible file and print server product for
Unix systems. Developed over the Internet in a distributed manner similar to the Linux
operating system, Samba is used by multinational corporations and educational estab
lishments worldwide. Jeremy handles the coordination of Samba development efforts
worldwide and acts as a corporate liaison to companies using the Samba code commer
cially. He works for Novell, which funds him to work full time on improving Samba
and solving the problems of Windows and Linux interoperability.
Matt Asay has been involved with open source since 1999, and has made a fetish of
understanding novel ways to monetize open source software. To this end, Matt
founded the Open Source Business Conference as a place to aggregate and cluster
people much more intelligent than he to figure out promising open source business
strategies; cofounded Novell s Linux Business Office and helped to kick-start the
company s growing Linux business; served as an entrepreneur-in-residence at
Thomas Weisel Venture Partners, dedicated to finding and developing open source
investment opportunities; and ran embedded Linux startup Lineo, a network and
communications business, until its acquisition by Motorola in 2002. Matt speaks and
publishes frequently on open source business strategy, and consults frequently for
several open source startups and venture capital firms.
xvi X List of Contributors
Matt is currently the general manager at Volantis Systems, where he manages the
company s growing business with content providers (like eBay, Disney, and Yahoo!).
He is applying the lessons of open source to the fragmented mobile world, hoping it
will yield the same standardization and opportunity in mobile/embedded that open
source did for the server world.
Matt holds a J.D. from Stanford, where he worked with Professor Larry Lessig on
analyzing the GPL and other open source licenses.
Mitchell Baker has been the general manager of the Mozilla project (officially known
as its Chief Lizard Wrangler) since 1999. The Mozilla project strives to create great
software and maintain choice and innovation in key Internet client applications, such
as its flagship Mozilla Firefox and Mozilla Thunderbird products. It is one of the larg
est open source software development projects in existence. The Mozilla project
combines dedicated volunteers, a set of paid contributors, and its own flavor of engi
neering management.
With the formation of the Mozilla Foundation in 2003, Mitchell also took on the role
of president of the Mozilla Foundation. Mitchell is also a board member of the Open
Source Applications Foundation, which is developing a new-style personal informa
tion manager, known as Chandler.
Jeff Bates brings many years of strategic management and editorial leadership to the
Open Source Technology Group (OSTG). As vice president of editorial operations
and executive editor of Slashdot, Jeff is responsible for setting strategy and integra
tion for the company s business development partnerships and for driving new site
and product development, and for fun he helps manage strategic story editing and
placement for the leading proprietary news site, Slashdot. While at Slashdot, Jeff has
been responsible for the site winning several industry awards including a Webby
People s Voice Award for Community, as well as Yahoo ! s "Top 100" Best of the
Internet Award. Slashdot has also been cited by The Washington Post, Brill s Content,
TIME, USA Today, Rolling Stone, and other industry-leading publications as one of the
most innovative and important sites for the technical community.
Jeff has spoken at numerous academic institutions and industry-leading conferences
and events, including MIT, LinuxWorld, Worcester Polytechnic Institute, Northern
Michigan University, Sun Developers Group, the Asian Open Source Symposium,
Conference of Australian Linux Users, O Reilly s p2p Conference, and the University
of Michigan. He s also a member of the Open Source Advisory Panel for the U.S. gov
ernment. Jeff holds a bachelor s degree in history from Hope College.
Jesus M. Gonzalez-Barahona teaches and conducts research at the Universidad Rey
Juan Carlos, Mostoles (Spain). He started to work in the promotion of libre software
in 1991. Since then, he has carried on several activities in this area, including orga
nizing seminars and courses and participating in working groups on libre software,
in Spain and throughout the rest of Europe. Currently he collaborates with several
libre software projects (including Debian) and associations, writes in several media
about topics related to libre software, and consults for companies and public admin
istrations on issues related to their strategy on these topics. His research interests
include libre software engineering, and in particular, quantitative measures of libre
software development and distributed tools for collaboration in libre software
projects. In this area, he has published several papers, and is participating in some
international research projects (visit http://libresoft.urjc.es for more information). He is
also one of the promoters of the idea of a European masters program on libre soft
ware, and has specific interest in education in that area. On the personal side, he
enjoys living, sleeping, and staying with his family (and not in that order).
Andrew Hessel is a biologist and programmer who has worked at the interface of
industry and academia to facilitate scientific initiatives, usually in the area of genom-
ics. He is fascinated by the functional similarities between electronic and biological
systems, and the lessons that can be learned by comparing them. Andrew lives in
Toronto, Canada, with his wife Stephanie, and works to advance collaborative breast
cancer research and therapeutic development.
Pamela Jones is the founder of Groklaw (http://www.grofelaw.net), an experiment in
applying open source principles to the field of legal research. Groklaw is also an
independent journalistic voice, covering legal news stories from the point of view of
the Free and Open Source (FOSS) community. Groklaw is also an anti-FUD web site.
It has focused heavily on the SCO litigation, because the community is, after all,
while not a direct party to any of the lawsuits, directly interested in and affected by
the outcome, since it is their code and their community that is under attack. For that
reason, Pamela found it is both natural and appropriate that Groklaw try to contrib
ute to a positive outcome.
Eugene Kim is the cofounder and principal of Blue Oxen Associates, a think tank
and consultancy focused on improving collaboration. He has developed collabora
tive strategies for a number of organizations, focusing especially on interorganiza-
tional collaboration and collaborative learning. His research centers around identify
ing patterns of collaboration across different domains (with a special focus on open
source communities) and on improving the interoperability of collaborative tools.
Previously, Eugene worked closely with computer pioneer Doug Engelbart, who cur
rently serves on the Blue Oxen Associates advisory board. He received his A.B. in his
tory and science from Harvard University.
Ben Laurie is a founding director of the Apache Software Foundation, a founder and
core team member of OpenSSL, the author of Apache-SSL, director of security for
The Bunker Secure Hosting Ltd.l, coauthor of Apache: The Definitive Guide, and a fre
quent writer of articles and papers on security, cryptography, and anonymity. You
can find his web page at http://www.apache-ssl.org/ben.html.
xvin X List of Contributors
Louisa Liu is business development manager of the Channel Software Operation
(CSO) in Intel China Ltd. She is responsible for strategic business development in
China supporting the CSO. Louisa earned bachelor and master s degrees with hon
ors in computer science from Fudan University and Tongji University.
Ian Murdock is cofounder, chairman, and chief strategist for Progeny. He is cen
trally involved in defining Progeny s technology and business strategies, and in estab
lishing and maintaining key relationships with customers and partners. Ian has more
than 10 years of experience in the software industry. He played an instrumental role
in the transition of Linux from hobby project to mainstream technology by creating
Debian, one of the first Linux-based operating systems, called distributions. Ian led
Debian from its inception in 1993 to 1996, building it from an idea to a worldwide
organization of more than 100 people in less than three years.
Today Debian is one of the most popular Linux platforms in the world, with mil
lions of users worldwide. Debian is also widely considered one of the most success
ful and influential open source projects ever launched: more than 1,000 volunteers
in all parts of the world are currently involved in Debian development, and the
founding document of the open source movement itself was originally a Debian posi
tion statement.
An Indiana native, Ian holds a B.S. in computer science from Purdue University and
was a founding director of Linux International and the Open Source Initiative.
Russ Nelson is a computer programmer and a founding board member of the Open
Source Initiative. He is best known for his packet driver collection, begun while at
Clarkson University in 1988. He started Crynwr Software to support his open source
software, Freemacs (currently used by FreeDOS) and Painter s Apprentice (a Mac
Paint clone), and went full time with the packet driver collection in 1991. He has
been making a living from open source support ever since then. His politics are both
left and right of center, as he is a pacifist Quaker and a member of the Libertarian
Party of the United States.
Michael Olson is president and chief executive officer of Sleepycat Software.
Michael, one of the original authors of Berkeley DB, is a technology industry veteran
with more than 20 years of experience in engineering, marketing, sales, and business
management. He was named president and CEO of Sleepycat in 2001 after serving as
vice president of sales and marketing. Prior to Sleepycat, he served in technical and
business management positions at database vendors Britton Lee, Illustra, and Infor
mix. He holds B.A. and M.A. degrees in computer science from the University of Cal
ifornia at Berkeley.
Tim O Reilly is founder and CEO of O Reilly Media, thought by many to be the best
computer-book publisher in the world. In addition to publishing pioneering books
such as Ed Krol s The Whole Internet User s Guide &> Catalog (selected by the New York
List of Contributors X xix
Public Library as one of the most significant books of the 20th century), O Reilly Media
has also been a pioneer in the popularization of the Internet. O Reilly s Global Network
Navigator site (GNN, which was sold to America Online in September 1995) was the
first web portal and the first true commercial site on the World Wide Web.
O Reilly Media continues to pioneer new content developments on the Web via its
O Reilly Network affiliate, which also manages sites such as Perl.com and XML.com.
O Reilly s conference arm hosts the popular Perl Conference, the Open Source Soft
ware Convention, and the O Reilly Emerging Technology Conference.
Tim has been an activist for Internet standards and for open source software. He has
led successful public relations campaigns on behalf of key Internet technologies,
helping to block Microsoft s 1996 limits on TCP/IP in NT Workstation, organizing
the "summit" of key free software leaders where the term open source was first widely
agreed upon, and, more recently, organizing a series of protests against frivolous soft
ware patents. Tim received Infoworld s Industry Achievement Award in 1998 for his
advocacy on behalf of the open source community.
Tim graduated from Harvard College in 1975 with a B.A. cum laude in classics. His
honors thesis explored the tension between mysticism and logic in Plato s dialogs.
Gregorio Robles is a teaching assistant and a Ph.D. candidate at the Universidad Rey
Juan Carlos in Madrid, Spain. His research work is centered in the empirical study of
libre software development from a software engineering point of view. He has
authored or coauthored many papers that were presented at both academic and com
munity conferences, and has developed or collaborated in the design of programs to
automate the analysis of libre software. He has also been involved in the seminal
European Union FLOSS study and survey on libre software developers, the CALIBRE
coordinated action to foster libre software development in Europe, and the FLOSS-
World study which looks at libre software development worldwide, all of them
financed by the European Commissions 1ST program.
Larry Sanger was the chief organizer/architect of the Wikipedia encyclopedia project
in its first year, as well as of the now-moribund Nupedia encyclopedia project. Since
2000 he has thought and written about the best ways to develop a collaboratively
built online encyclopedia. He is now working on that problem, among others, for the
ambitious Digital Universe project as its director of distributed content programs. His
Ph.D. (2000) from Ohio State University is in philosophy, with concentrations in
epistemology and early modern philosophy, and his B.A. in philosophy is from Reed
College in Portland, Oregon. He taught a wide range of philosophy courses off and
on between 1992 and 2005 for Ohio State University and nearby institutions. He
also plays Irish traditional music on the fiddle and has taught that too, off and on
since 1997.
xx * * List of Contributors
Sunil Saxena is senior principal architect in the Software and Solutions Group (SSG)
at Intel Corporation. SSG is responsible for operating system enabling on Intel archi
tecture products. Sunil received his Ph.D. in computer science from the University of
Waterloo and received his B. Tech. in electrical engineering from Indian Institute of
Technology, Delhi, in 1975.
Doc Searls is a writer and speaker on topics that arise where technology and busi
ness meet. He is the senior editor of Linux Journal, the premier Linux monthly and
one of the world s leading technology magazines. He also runs the new Doc Searls IT
Garage, an online journal published by Linux Journal s parent company, SSC. He is
coauthor of The Cluetrain Manifesto: The End of Business as Usual, a New York Times,
Wall Street Journal, Business Week, Borders Books, and Amazon.com bestseller. (It was
Amazon s #1 sales and marketing bestseller for 13 months and sells around the world
in nine languages.) He also writes the Doc Searls weblog. J.D. Lasica of Annenberg s
Online Journalism Review calls Doc "one of the deep thinkers in the blog movement."
Doc s blog is consistently listed among the top few blogs, out of millions, by Techno-
rati, Blogstreet, and others.
Wendy Seltzer is an attorney and special projects coordinator with the Electronic
Frontier Foundation, where she specializes in intellectual property and free speech
issues. In the fall of 2005, she will be at Brooklyn Law School as a visiting professor
of law. As a fellow with Harvard s Berkman Center for Internet <Sr Society, Wendy
founded and leads the Chilling Effects Clearinghouse, helping Internet users to
understand their rights in response to cease-and-desist threats. Prior to joining EFF,
Wendy taught Internet law as an adjunct professor at St. John s University School of
Law and practiced intellectual property and technology litigation with Kramer Levin
in New York. Wendy speaks frequently on copyright, trademark, open source, and
the public interest online. She has an A.B. from Harvard College and a J.D. from Har
vard Law School, and occasionally takes a break from legal code to program (Perl).
Sonali K. Shah is an assistant professor at the University of Illinois at Urbana-Cham-
paign. Her research focuses on the creation and maintenance of novel organizing
innovation communities that support innovation development and diffusion. She
studies innovation communities in fields as diverse as open source software, sports
equipment, and medical products. A second stream of work examines the processes
underlying the formation of new industries and product markets. Previously she
worked at Morgan Stanley & Co. and McKinsey & Co. She holds degrees in biomed-
ical engineering, finance, and management. She is a graduate of the University of
Pennsylvania and the Massachusetts Institute of Technology.
Alolita Sharma is cofounder and CEO of Technetra, a Silicon Valley software com
pany which implements and deploys large-scale software projects specializing in
open source solutions. Alolita has more than 14 years of experience in the informa
tion technology industry, having engineered and led services groups at IBM, MCI
List of Contributors X xxi
Worldcom, Intelsat, and SWIFT. While pursuing the Ph.D. program in computer sci
ence at George Washington University (GWU), she concentrated on networking,
security, and parallel computing. She received an M.S. in computer science also from
GWU. She speaks at technology forums and has published in many technology mag
azines and journals including Linux Journal, Linux Gazette, and is a monthly colum
nist for India s only open source magazine, LINUX For You. She is a proponent of
Linux and open source software in India. Alolita can be reached at as@technetra.com.
Bruno Souza is a senior consultant at Summa Technologies. He helps large compa
nies to successfully use and develop open source products and projects. Bruno is
president of Soujava, Brazil s largest Java User Group, where he has led the group s
Javali Project, an ambitious umbrella project that hosts 10 large open source projects.
Javali, which includes a project to create an open source Java runtime, is targeted to
bring software development into Brazil s open source discussions. Bruno also co-
authored Soujava s Open Source Manifest, which discusses open source and open
standards as the way to correctly apply and succeed with open source in Brazil. The
document positively influenced the adoption of open source in Brazil. Bruno is a
member of the Management Board ofjava.net, one of the largest open source hosting
sites for Java developers, where he leads the World Wide Java User Group Commu
nity, is an activist for the creation of open source-compatible implementation of Java
standards, and is an active participant in several Java open source projects.
Stephen R. Walli has worked in the IT industry since 1980 as both customer and
vendor. He is presently the vice president of Open Source Development Strategy for
Optaros. Stephen is responsible for architecting and managing Optaros s relation
ships with the open source community. Most recently, Stephen was a business devel
opment manager at Microsoft on the Windows Platform team, where he operated in
the space between community development, standards, and intellectual property
concerns. While at Microsoft, he also worked on the Rotor project (Shared Source
CLR), and started as the product unit manager for Interix in Services for Unix.
Prior to Microsoft, Stephen was the vice president of R&D and a founder at Softway
Systems, Inc., a venture-backed startup that developed the Interix environment to re-
host Unix applications on Windows NT. Stephen has also worked as an indepen
dent consultant for X/Open, SunSoft, UNISYS, and the Canadian government. He
was once a development manager at Mortice Kern Systems, and a systems analyst at
Electronic Data Systems.
Stephen was a longtime participant and officer at the IEEE and ISO POSIX standards
groups, representing both USENIX and EurOpen (E.U.U.G.), and has been a regular
speaker and writer on open systems standards since 1991.
He blogs at http://stephesblog.blogs.com, and occasionally podcasts from http.7/
stephenrwalli.users.blogmatrtK.com/poacasts.
xxii * C List of Contributors
Steven Weber, a specialist in international relations, is an associate with the Berke
ley Roundtable on the International Economy (BRIE) and the International Com
puter Science Institute, and affiliated faculty of the Energy and Resources Group. His
areas of special interest include international politics, and the political economy of
knowledge-intensive industries.
Steven went to medical school at Stanford and then earned his Ph.D. in the political
science department at Stanford. In 1992, he served as special consultant to the presi
dent of the European Bank for Reconstruction and Development in London. He has
held academic fellowships with the Council on Foreign Relations and the Center for
Advanced Study in the Behavioral Sciences. He is a member of the Global Business
Network in Emeryville, California, and actively consults with government agencies
on foreign policy issues, risk analysis, strategy, and forecasting.
Boon-Lock Yeo is currently director of the ICSC (Intel China Software Center) of the
SSG (Software and Solutions Group) in Intel China Ltd. He received his Ph.D. in
electrical engineering from Princeton University and a BSEE from Purdue University.
He received an IEEE Transactions Best Paper Award in 1996, has published more
than 40 technical papers, and holds 25 U.S. patents.
List of Contributors * * XXHI
XX
XX
Chris DiBona, Danese Cooper,
and Mark Stone
Introduction
Midnight comes to the Nevada desert, and nothing is visible but a line of taillights
ahead and a line of headlights behind.
"You ll see the lights from Gerlach first, and then Black Rock City," the driver says to
the passenger. They drive another 20 minutes in silence before the highway crests a
ridge line. On the horizon, the blackness is broken by a band of multicolored light.
"Is that Gerlach?" the passenger asks.
"No." The driver points to a small, dim cluster of yellow lights in the middle dis
tance. "That s Gerlach. Way out there, those lights are Black Rock City. We re still
about an hour away."
The passenger ponders this for a moment, then asks, "An hour? How big is it?"
"For one week each year, Black Rock City is the fourth largest city in Nevada. Popu
lation 30,000, give or take."
Gerlach rolls by, with its one bar, one gas station, and one motel. The caravan of cars
bunches up after Gerlach. Then they turn off the highway, rumbling over the packed
mud playa of the Black Rock Desert. Lights, neon, and thousands of RVs spread out
before them. Music and drums especially drums can be heard in the distance. At
the gate they re approached by someone who looks like a transplant from Mardi
Gras: face paint, bright-colored suit, and a carnival hat. He checks their tickets and
flashes them a big grin.
XXV
"Welcome to Burning Man!
When the original Open Sources was published in 1999, it served mainly as an affir
mation that open source existed. The book brought together the leading voices in
open source, demonstrating that we were a community, that we were indeed a move
ment to be taken seriously. To put that time in context:
Microsoft had, only a year earlier, leaked the "Halloween Memo," its first semi-
public acknowledgment that open source was a competitive threat.
IBM had provided some initial backing for Apache, but had yet to announce its
$1 billion Linux initiative.
Linux was in only the 2.2 stage of kernel development.
SourceForge.net was a relatively new site with only a few hundred projects
hosted.
The mainstream press could not separate rising interest in open source from dot-corn
bubble hype. The media took the surface ideas of Eric Raymond s The Cathedral & the
Bazaar and created a caricature of legions of hobbyist programmers distributed
across the globe, competing against the technology Goliaths of the day. That picture
bore no more resemblance to reality than the tale of King Arthur does to the histori
cal Middle Ages. Yet like any good mythology, it serves as a useful point of depar
ture for understanding the real history from which it arose.
Today open source is an accepted fact of business life, with many companies engaged
in core open source business models (Sleepycat, MySQL) or significant hybrid models
blending open source and proprietary software (IBM, Novell, Red Hat). Many compa
nies have striven to incorporate open source development into their range of software
development practices even Microsoft has projects hosted on SourceForge.net. How
much do we really understand about the dynamics of open source software develop
ment or the communities that stand behind those projects?
The essays presented in this volume take a major step forward in our understanding
since 1999, when the original Open Sources was published.
Burning Man is approaching its 20th anniversary. Conceived and inspired by Larry
Harvey, it began in 1986 as a gathering of dozens of participants at Baker Beach in
San Francisco. The centerpiece of the event was then, as it is now, the construction
of a wooden effigy of a man, which is burned in celebration.
Celebration of what? The answer to that question may differ for every participant.
xxvi ** Introduction
The event was originally timed with the summer solstice it s now held the week
leading up to Labor Day and has always had a pagan, tribal feel to it. Participants
began bringing their own art projects, many of which were also burned in celebra
tion at the climax of the event. By 1990 the gathering numbered in the hundreds,
and even the unusually tolerant San Francisco police made it clear that the event
needed to find another venue.
Burning Man then moved to its current location the Black Rock Desert an empty
stretch of Nevada desert on federal Bureau of Land Management land, roughly two
hours north of Reno. The extreme remoteness and the harsh environment have become
an indelible part of the event. To be there, you have to really want to be there.
Mitchell Baker makes clear in her essay that part of the strength of the Firefox commu
nity is its size. Thousands of people have contributed to Firefox, a community of con
tributors larger than the core project leaders can really envision. Firefox seems very
much like one of those mythical "legion of programmers" projects that comes to mind
when people think of the metaphor suggested by Eric Raymond s The Cathedral & the
Bazaar.
Yet the open source development model remains the most enigmatic aspect of the
open source community. One striking and unexpected outcome of the years since
the original Open Sources is how little technology companies have been able to lever
age the open source development process. Projects such as Linux and Apache have
had world-changing success, yet no commercial software company has been able to
replicate this development process for its own products or its own success. AOL, for
example, has never figured out how to integrate the Mozilla/Firefox developer com
munity into its product development process. Sun has struggled to open up both
Java and Solaris, and the jury is very much out on the success of those projects.
Read the essays here by Chris DiBona and Jeremy Allison and you will see how little
proprietary software development differs from open source software development.
The differences their essays suggest are subtle: an emphasis on knowledge reuse, not
just code reuse; a recognition that open standards matter; and that architecture needs
to be created with openness in mind. Why, though, are these and other open source
lessons so hard for commercial companies to use?
The real paradox is as old as Fred Brooks classic, The Mythical Man-Month. In this
work, Brooks formulates what has become known as Brooks Law: that while the
amount of programming work completed increases linearly as the number of pro
grammers increases, the complexity of a project increases as the square of the num
ber of programmers. The result is that large programming teams fail to reduce the
time to project completion. The rationale is that the number of communication inter
faces, which is roughly equivalent to the amount of coordination effort the project
requires, increases geometrically as more people are added to the project.
Introduction X xxvn
Brooks Law appears to set a fundamental limit on the optimal size of programming
teams and a rather small limit at that. Empirical evidence supports Brooks Law.
For example, since its inception SourceForge.net has maintained very close to a 10:1
ratio of registered users to registered projects, suggesting that open source develop
ment projects seldom have more than 10 active developers.
What are we to make, then, of the thousands of Firefox contributors? The key is to
recognize that they are not a homogeneous mass of contributors, and Firefox is not a
monolithic piece of software. In fact, the design is highly modular, enabling small
teams to work on separate components of the code without interfering with each
other. By far the most common characteristic open source projects have is a highly
modular design. That design architecture is more a choice of social engineering than
technical engineering, however. In the original Open Sources, Linus Torvalds com
mented that he started with a monolithic kernel design for Linux because he knew it
would provide higher performance. Only later was Linux s distinctive system of load
able kernel modules developed, and it was developed as much out of a project man
agement need as anything else. Could Apache provide higher performance as a
purely monolithic piece of code? Probably. But the development process would
become unmanageable. The original release of Mozilla suffered terribly because it
was a monolithic piece of code. Firefox is the result of years of rearchitecting to
achieve a modular, and thus manageable, design architecture.
Once it s clear that programming teams must necessarily be small, and that modular
ity is driven by communication and management needs more than by engineering
needs, the structure of the open source community makes a lot more sense. The
"bazaar" looks less like a bustling, homogenous mass and more like a structured
community. More than anything, it resembles a tribe.
In fact, there is very little of Brooks Law that is unique to software development. Any
creative, collaborative knowledge enterprise faces the same constraints, and as a
result, many collaborative communities adopt the same tribal structure.
Traditionally Black Rock City is laid out in a half-circle, with a grid of "streets," some
of which form the spokes of the wheel, and others of which form concentric rings
spreading from the center. At the very center is the Man, 40 feet of elegantly assem
bled wood, awaiting his night of conflagration at the end of the weeklong event.
A "burner" approaches a small tent encampment at the corner of 7 O clock and Justice.
Out of the back of a pickup truck, two men from the encampment haul bags of sand
and large rocks painted in black-light colors. They place the rocks inside a wooden
sandbox and pour sand into it. Above them, a hand-painted sign reads "Reflections in
Sand."
"So, what s your project?" asks the passerby.
XXVIII
One of the men looks up, squinting under the relentless desert sun. "We re making a
Zen garden," he replies. He gestures toward a black light and generator lying nearby
next to a couple of small, handmade wooden rakes. "Only this will be one you can
enjoy at night."
"Where are you guys from?"
"San Francisco."
"You drove 350 miles to bring sand to the desert? Cool."
Burning Man is a participatory event. According to its mission statement (http://
\vww.bumingmanxom/whatisburningman/about_burningman/mission.html):
Our intention is to generate society that connects each individual to his or her
creative powers, to participation in community, to the larger realm of civic life,
and to the even greater world of nature that exists beyond society.
While not everyone who comes brings an art project, the expectation is that projects
will be interactive in nature and that no one is there simply to observe. All are there
to participate. Burning Man has no "audience." While the event is not a political
gathering, many projects have a definite message connecting to that "larger realm of
civic life," and to encourage this, each year Burning Man has an overall theme.
Recent themes have included "The Vault of Heaven," "Beyond Belief," and "The
Floating World."
Several other ideas underpin the spirit of Burning Man. Black Rock City LLC has had
a delicate relationship with the Bureau of Land Management over the years, striving
to show that the event is a positive part of the area. A key part of this is Burning
Man s "leave no trace" philosophy. Art projects are not permanent, but are designed
to be temporary, something can be removed or destroyed at the end of the event
without leaving trash behind. Volunteers spend weeks after each event restoring the
Black Rock Desert to its pre-event conditions. The "leave no trace" policy is not just a
practical matter, though: it is also a good philosophical fit with the civic aspect of the
event and with the fragile sense of the temporary that has been at the heart of the
event since the first Burn.
Burning Man is also basically a nocturnal event. At roughly 6,000 feet elevation, the
Black Rock Desert air is thin and dry. Daytime temperatures can hover around 100
degrees, so dehydration is the most common condition treated at the infirmary. As
the sun goes down each day, people pause at whatever they are doing, look toward
the craggy western hills, and cheer. Drums begin to beat. Music begins to play. Black
Rock City comes alive.
Temporary, participatory, and nocturnal: those are the key elements of a Burning
Man art project.
XXIX
As puzzling as how open source projects organize themselves is why. To the casual
outside observer, it appears that open source developers spend enormous amounts of
time developing software that, in the end, they are simply going to give away with
out the prospect of compensation in return. While open source certainly has an
altruistic side, altruism is neither the only nor the most important motivation.
First, one must realize that many open source projects started out of a developer s
desire to solve an immediate problem. Linux was born of Linus Torvalds desire to
have a development platform on his PC at home. Apache came together from a group
of people who had been relying on the NCSC web server and wanted to continue its
development after NCSC stopped maintaining it.
Read Sonali Shah s essay, and you ll understand that the pattern here extends far
beyond software development. Many consumer communities have come together
collaboratively to innovate the products they consume, often when producers fail to
produce innovation on their own. Software companies created just such a stagnant
environment, out of which Linux and the rest of open source software was born. In
this sense, the initial catalyst was quite selfish: developers wanted the software that
companies were unwilling or unable to produce, so open source developers created it
to "scratch their own itches."
What started from largely selfish motivations has evolved into something quite com
plex. In Steve Weber s essay, we get a clear analysis of just how complex the gover
nance structures and processes of this community have become, as well as an intrigu
ing view of where these enabling governance structures might foster collaborative
communities in other endeavors. Andrew Hessel provides in his essay a very tangi
ble example of where open source ideas are taking hold in an entirely new realm.
Lurking in the background, though, is still a question of motivation. If the inspiration
for Linux was a selfish one, why make the choice to give the result away, and further
more to do so under open source terms? How does selfishness become altruism?
The apparent paradox rests on the assumption that acts of charity necessarily con
flict with acts of self-interest. From the point of view of a modern market economy, it
often appears that charity and self-interest do conflict. What drives the open source
developer, however, is clearly self-interest even if it is based on an older notion of
self-interest not easily captured by modern market economics.
The answer to the paradox lies in the reputation game played within the open source
community. After all, monetary compensation is only a means to an end; it is a
means of providing survival resources. Yet monetary compensation is not the only
means to that end. While open source luminaries such as Linus Torvalds and Brian
Behlendorf may not have the personal wealth of fortunate dot-commers, neither will
ever lack for gainful employment. They have sufficient reputations based on their
open source accomplishments to always be able to earn a living from their expertise.
XXX
Consider another fact: the largest age group among open source hackers is college
students and graduate students: those under 25 for whom gainful employment is not
an immediate issue, but one that certainly looms in their thoughts and plans. Because
they are students, we can assume that they have the immediate survival resources
needed for one to become a student in the first place. However, we can also assume
that those survival resources are finite. Securing future survival resources is very
much a part of the agenda of a student, indeed one of the main reasons for becom
ing a student in the first place. While a degree may provide a measure of that future
security, a degree is not the exclusive means to that end: reputation as a creator of
good code may provide that future security as well as or better than a degree.
Once this separation is made between monetary compensation and survival
resources, we can see that there are historical precedents for this kind of behavior,
and that there is a social model that loosely fits that of open source hacker culture. In
Western civilization, we can look to medieval Europe, when nomadic groups like the
Franks and the Vikings had settled into the agrarian-based feudal system. The mature
feudal system of the 13th and 14th centuries has some interesting and instructive
social structures; we ll focus on the concept of chivalry.
The good knight adhered to a code of behavior that transcended the laws of any par
ticular kingdom and encouraged an attitude with some similarities to the attitude of
today s hacker: a knight should be humble and should regard himself at the service
of others, yet he would be judged by his prowess at his trade and would succeed to
the extent that he could spread the reputation of his prowess.
Behind shield and visor, and upon adopting a particular set of heraldic emblems, a
knight took on a kind of persona, creating a public identity that might be quite dif
ferent from his private identity. There were regular events for testing and publicizing
one s prowess at arms, such as the tournament or the hunt. There were orders of
knighthood again, often transcending the boundaries of kingdoms that would
certify one s prowess. To belong to such an order was an honor; to be of sufficient
repute to be able to found an order and have other knights flock to it, was perhaps
the greatest measure of success in the chivalric reputation game.
While a knight was pan of the nobility, knighthood was a terrible burden financially. A
suit of armor cost, relative to the medieval standard of living, the equivalent of a brand-
new Mercedes today. Horses were expensive, and a knight was expected to have sev
eral. In addition, a knight had to maintain an entourage of squires, pages, and men-at-
arms. He also officially owed 40 days of service to his feudal lord each campaign sea
son, 40 days that in reality could often drag into several months. A landed knight with
a small manor could easily spend any excess capital just to maintain his position; a
landless knight, or knight errant, would likely live in perpetual debt.
Introduction * * xxxi
What motivation, then, would a young man in the Middle Ages have to aspire to
knighthood? Did one live according to the code of chivalry out of pure selflessness,
and a desire to serve others? Or was there some more pragmatic force at work? To a
knight of repute, money was not really important. His lord, or anyone else interested
in retaining his services, would see that his needs were met, that he had survival
resources. To flourish, a skilled squire aspiring to knighthood need only hone his
skills and act to establish and further his reputation.
This attitude and this kind of behavior seem quite similar to that of the young stu
dent who is an aspiring hacker. While academia, and academic computer science, is
a reputation game of its own, what is fascinating about computer science is that there
is a large body of practitioners that refuse to play this particular reputation game. To
this latter group, an education really is just a means to an end, and the end is to
develop the skills necessary to create good code. Some may go far enough to pick up
a university degree, but many do not, and the degree is clearly secondary to the abil
ity to code. In other words, one can build a reputation without having to acquire the
academic pedigree. It is not simply a distaste for academia that fosters this kind of
behavior. The hacker who is more interested in picking up skills than in picking up a
degree is often the same hacker who is unwilling to be tied down to a steady job,
preferring to move from assignment to assignment as a freelancer and consultant.
These are the knights errant of the open source movement.
In reality, the medieval knight errant was essentially a mercenary, hardly the noble
figure portrayed by Malory or Chaucer. The fact that these soldiers were mercenaries
made chivalry no less important. A mercenary captain had to be trustworthy; his
word of honor alone was a binding contract. Otherwise, he simply was not employ
able. These men lived by the chivalric code. What they found was that that code
alone assured them survival resources. A skilled and honorable mercenary captain
was never without employment and never lacked for resources.
Chivalry and pragmatism are not conflicting goals, but that pragmatism can indeed
be served by chivalry. The mercenary captain lacked money, land, and all other tan
gible resources. He had only one form of collateral: his reputation. That reputation
could be maintained only if his behavior was seen to be genuinely honorable. Chiv
alry, then, was a necessity: it was an essential ingredient in building the only avail
able collateral that could be parlayed into survival resources.
From this analogy, we can learn several lessons about today s hackers. First, the open
source gift culture need not be seen as strictly, or even predominantly, altruistic.
Pragmatism and altruism are not mutually exclusive. Today s hackers, like the
knights errant and mercenaries of old, can and do trade in the coin of reputation as a
means of achieving survival resources.
xxxn X Introduction
Second, as a culture matures, the pragmatism becomes more apparent. This was true
in the Middle Ages. In the high Middle Ages, the era of the crusades, the knight
errant made a flamboyant pretext of making a gift of his skills and services; one has
to look below the surface to see a rational exchange of skills for resources in such gift
acts. By the late Middle Ages, though honor and reputation were still essential, when
a nobleman retained the services of a mercenary captain, the transaction was explic
itly and without apology for the mutual benefit of nobleman and captain.
We see this same trend among today s hackers. While reputation alone has always
provided survival resources for some, the trend to switch the meme about their activ
ity from "Free Software" to "Open Source" reflected a maturing shift from altruistic
pretext to honest pragmatism.
Today we see a symbiotic balance between the chivalric open source hackers and the
companies that employ them. In fact, this development is foreshadowed in the events
Eugene Kim describes in his essay, which concerns the development of the first com
mercial compilers. Even in the 1950s it was possible for a company such as IBM to see
the advantages of transforming a competitive relationship into a collaborative one.
Today a number of prominent open source developers are employed at major tech
nology teams. Novell transformed itself in a matter of months into a major player in
the enterprise open source space through the acquisition of Ximian and SuSE. Of
contributors to this volume, Jeremy Allison works for HP, and Chris DiBona works
for Google. Neither works at an open source company per se, but both have an
understanding that it is in their employer s interest that they be allowed time and
resources to continue working on open source projects. Other contributors here,
such as Ian Murdock (the "ian" of "debian"), Michael Olson, and Stephen Walli, are
involved in more purely open source business models.
Burning Man is, in some sense, a commercial operation. There is a significant admis
sion charge for the event (more than $200), and the event is run by a limited liabil
ity corporation. The corporation s main purpose, however, is to sustainably manage
the event. There is a permit to obtain from the Bureau of Land Management every
year. There is insurance for the event. There is preparation before and cleanup after
the event, as well as basic infrastructure, such as sanitation services, that must be
provided every year. Finally, there is a small paid staff responsible for everything
from event promotion and organization to informal lobbying efforts with the Depart
ment of the Interior, Washoe County, and the state of Nevada.
Once inside the gates, however, participants are forbidden from engaging in mone
tary commerce. The primary form of commerce is barter. In the spirit of the event,
barter is as much a pretext for participation as an exchange of goods. It may take the
form of a scavenger hunt, where admission to an art project requires a ticket stamped
Introduction *C xxxm
by several other art projects. It may take the form of a raid by the "Viking Longship"
art car, which "pillages" camps but always leaves some small gift behind. Or it may
be in the form of a quiet bar on a back street of Black Rock City that asks only some
small trinket from the day s events as the price of a drink.
Unfettered from monetary exchange, however, most denizens of Burning Man gravi
tate toward a gift economy. Acts of giving range from the mundane to the extravagant:
the accordion player who serenades those in the porta-potty line with his renditions of
AC/DC; the massage therapist volunteering her services; the water-gun brigade, spray
ing people down for a moment of cool relief from the midday sun; or the man who
brings along a week s supply of dry ice so he can serve cold ice cream every day.
One of the most ironic developments since the publication of the original Open
Sources has been the rapid adoption of open source business models by technology
companies.
In 1999, the consensus view of the business community was that giving away intel
lectual property for free was a poor basis for doing business. At that point, Michael
Olson and Sleepycat Software had been quietly pursuing their dual licensing model
for Berkeley DB for three years. Now several open source database companies are
pursuing similar models.
Sleepycat s approach is an example of the more general business dynamics at work
behind open source. One of the key effects is commoditization, discussed in different
aspects in essays by Matt Asay, Ian Murdock, and Stephen Walli. Commoditizing a
complement to one s core business serves to enhance that business. It brings down the
cost of entry for customers, thus expanding the potential market size for the core busi
ness. The key is to have a complementary core that can be monetized. Sleepycat
achieves this through dual licensing, charging for a proprietary license for customers
who are unwilling or unable to open their own source. Novell achieves this through a
hybrid business model, with a service business and a proprietary software business fur
ther up the "application stack" from its commoditized Linux business.
Commoditization is not the only benefit. Open source business models lower the
cost of both sales and marketing. The common fear with any free product is that
"you get what you pay for." With open source, however, the source code is entirely
open to inspection so that there are no hidden surprises. Further, the source code
can be freely redistributed. Several market effects result from this. First, those most
likely to avail themselves of open source are those with the greatest understanding of
its benefits namely other software developers who actually have the skill and desire
to examine source code. Second, the distribution model creates a user community of
like-minded enthusiasts without intervention or incurred marketing costs by the
XXXIV
originating company. Finally, that user base will, at some point, approach the origi
nating company with a request for additional features, services, or complementary
software. In other words, by its very nature, open source has very low marketing
costs that create an inbound sales channel of prequalified leads.
Open source software companies that exploit this dynamic can thus maintain lower
overall operating costs, consequently passing on lower prices while still maintaining
healthy profit margins. All of this accelerates the commoditization process, making a
well-established open source software product quite difficult to compete against.
Yet these very business advantages inherent in open source bring us to another
aspect of the same paradox: why is it so difficult for companies to leverage open
source as a development model, rather than as a business or marketing model? Con
sider Sleepycat s dual licensing scheme. The model works only if Sleepycat holds full
copyright to all of the software in Berkeley DB. Otherwise, it is not permitted to offer
the second, proprietary license in addition to the open source license. If it must have
all rights to the software, though, that means that the software must essentially be
developed in-house. Sleepycat does its own development instead of leveraging out
side, open source development.
Perhaps Russ Nelson offers a purer example of an open source business model, one
where he both develops open source software and leverages the open source devel
opments of others. The complimentary values Russ Nelson offers are his reputation
and his expertise, both carefully maintained over the years. The resulting business
may not be a large one, but it is one where he alone is the master of his own destiny.
* * *
Burning Man certainly has the feel of an organic, grass-roots movement. Certainly
that grass-roots element is part of the dynamic that makes the Burning Man commu
nity what it is. But simply thinking of "grass roots" makes it too easy to overlook
what a complex community structure Burning Man has and requires.
First, there is the structure of Black Rock City itself. Maintaining order in Black Rock
City is primarily the responsibility of the Black Rock Rangers. They describe themselves
as a "non-confrontational mediating agency" (see http://www.rangers.org). They are all vol
unteers, and they have no official authority. They pay admission like everyone else;
rangering is not a way around the admission price. Further, each ranger is required to
attend training prior to the event, and each ranger must enter the ranger program with
the sponsorship of another ranger as mentor. While the rangers occasionally call in
actual law enforcement, for the most part the rangers are accorded tremendous respect.
Black Rock City has many of the elements of any other city of 30,000. There is a
radio station, some years several. There is a DMV (Department of Mutant Vehicles);
you cannot drive around within Black Rock City or the playa beyond without regis
tering with the DMV. There is an airport; dozens of attendees routinely fly in for
xxxv
Burning Man. And of course, there is a newspaper, the Black Rock Gazette, published
six times during each Burning Man event.
Residential areas of Black Rock City have structure as well. Look at a map of Black
Rock City when you arrive at Burning Man, and you ll see a number of areas along
the inner circle marked as Theme Camps or Villages. These are areas that are both
residential and interactive, involving a large number of people working on a com
mon art project where the residential area itself is the art project.
The inner circle faces toward the Man, and beyond on the playa is the Burning Man
"gallery" of art installations. Here is where the larger projects are constructed and the
larger group events are played out. Typically, there will be an opera and several other
stage performances. Weddings are common.
For several years, there was a project called Solaria. It was a scale model of the solar
system, where not only the distances between objects were proportional, but also the
size of those objects relative to distance was proportional. Each object was a light
source, with the sun represented by a small lamp about the size of a bowling ball. On
that scale, Pluto could be reached only by a three-mile bike ride across the playa. Not
even the Smithsonian can put on an exhibit of that scale.
No one has grasped the power of commoditization as quickly as developing nations.
This is an international arena with general concern over globalization, anxiety about
domination by American corporations, and fear of Microsoft s monopoly in particu
lar. Open source has given developing nations a bargaining chip to pressure technol
ogy companies, especially Microsoft, on price. The natural response has indeed been
a lowering of prices in countries ranging from Brazil to India.
Yet the significance of open source goes far beyond commoditization and price pres
sure. Read the essays here from Jesus M. Gonzalez-Barahona and Gregorio Robles, Alol-
ita Sharma and Robert Adkins, and Boon-Lock Yeo, Louisa Liu, and Sunil Saxena, and
you see that open source is really about controlling one s technology destiny. Outside
the United States, people find it odd that we use the same word,/ree, to mean two very
different things: with no cost or liberated. The open source community has adopted the
slogans "free as in beer" versus "free as in speech" to draw attention to the difference.
Commoditization is all about "free as in beer;" what developing nations care about the
most is "free as in speech."
Open source provides greater intellectual property control than proprietary software that
one does not own. Developing nations want control over the intellectual property on
which their technology infrastructure depends. What emerges is a different sense of
ownership from the traditional market economy sense of ownership, one that speaks not
just to the motivations of policymakers in developing nations, but to the motivations of
open source developers as well. Think again of chivalry and of our feudal heritage.
xxxvi
In a feudal system, a farmer could not own land, nor the harvest from that land. Serfs
were indentured to the land and were entitled to only a portion of their harvest after
paying their taxes to the feudal overlord and landowner.
Technology workers today face an analogous form of servitude. It is almost universal
practice at technology companies to confront new employees with a hiring agree
ment that says, among other things, that any and all code and inventions created by
the employee while in the employ of the company belong to the company; all copy
rights and patents resulting from these creations must be transferred to the com
pany. Technology workers may reap the fruits of their creative labor only under
terms dictated by the company. Our modern notions of intellectual property and
ownership of it are based on this relationship: that it is fundamentally companies,
not individuals, that own intellectual property, and that individuals create new intel
lectual property primarily in the service of companies.
If open source hackers have one common attitude that ties them together into a com
munity, it is the rejection of this notion of intellectual property. The conventional out
siders view is to say that open source software is not owned. It is fear of the lack of
accountability associated with this perceived lack of ownership that makes many com
panies reluctant to deploy open source software for mission-critical functions.
In fact, this conventional view is deeply mistaken. To understand why, we must
make a distinction between "ownership" and "stewardship." Ownership is something
that is fully transferable from one owner to another without loss of value. Money,
and many (though not all) material objects, are examples of entities that can be sim
ply owned. Stewardship, on the other hand, applies when something undergoes
change, when it evolves, or when it has some kind of life cycle. In this case, some
thing has value only if it is cared for in such a way as to sustain the life cycle. In an
agrarian society, animals are a prime example of something requiring stewardship.
Skills are required, and effort must be put forth, to maintain a herd. Transferring the
herd to someone who lacks those skills or is unable to put forth the effort dimin
ishes the value of the herd. In other words, only a good steward can realize the full
value of that which is stewarded.
Historically, land has been, and continues to be, at the center of contention between
these two notions of ownership. For example, Native Americans considered them
selves stewards of the land, and thus fell victim to the European notion of landown-
ership. Today the battle between environmentalists and certain corporations is over
exactly these two conflicting senses of ownership. Andrew Hessel s essay points to a
brewing conflict in these senses of ownership with the biotech industry.
In the technology sector, open source developers believe that software requires stew
ardship. The standard employment contract and the proprietary software it engen
ders preclude stewardship. Open source software, however, by its very nature
encourages stewardship. Again, the motivation here is not altruism or charity. To an
open source developer, stewarding software is the best way to see that the software
evolves and improves, and hence it s just pragmatism to take a stance toward intel
lectual property that assures that software will be stewarded.
The proof is in the longevity of open source software projects and the stewards who
tend them. Linus Torvalds is still at the head of the Linux kernel "tribe" more than a
decade after the first public release of Linux. Eric Allman has guided Sendmail for more
than 20 years. Larry Wall is still the guiding vision behind Perl, again after more than
20 years. In these and many more cases, a common core group stood behind the soft
ware for far longer than most proprietary software enjoys the benefits of a common
development team. It is this the dynamics of stewardship far more than the "legions
of programmers" that accounts for the success of open source software.
Further, it is this dynamic of stewardship that fosters the social network around open
source software that is based on the reputation game. Having committed themselves
to what they regard as the most pragmatic approach to intellectual property, open
source hackers have then adopted the professional and social structure needed to
support that approach to intellectual property. It isn t altruism. It s chivalry, a far
subtler and more pragmatic thing.
* * *
The Burning Man event lasts for one week each year. Contained within that event is
the remarkable community of Black Rock City. Yet it would be a mistake to assume
that the community exists for only one week a year. The complex structure and intri
cate hierarchy that is the Burning Man community could not adapt, evolve, and sus
tain itself if it were not a year-round phenomenon.
That is the deeper truth not obvious to the casual observer: Burning Man is a perma
nent worldwide community whose members are connected to and engaged with each
other continuously. Art projects that are on exhibit at Burning Man will often be
shown at smaller gatherings in places such as San Francisco. Burners gather for regu
lar social events throughout the year to talk about past events and plan for next year.
When Washoe County or the Bureau of Land Management considers a change that
may affect the permit for Burning Man, word travels through the community like
wildfire, and burners show up in force to make their cases and state their views.
It s no accident that the growth of Burning Man parallels the growth of the Internet.
The Burning Man web site is an impressive knowledge archive about the event and
the community, providing a wealth of information and resources for anyone trying to
understand Burning Man and learn how to get involved. The "Jack Rabbit Speaks"
mailing list provides an announcement forum that goes out to the whole of the Burn
ing Man community, but there are dozens of other mailing lists that tie together
smaller communities within. Some of these are organized by geographical proximity,
XXXVIH x> Introduction
but many more are organized by common interest. A theme camp will often have a
mailing list for its members. The Black Rock Rangers have their own web site, and
their own mailing lists.
What the Internet has done is to free us from the constraints of geography in terms of
whom we connect to, whom we share common interests with, and whom we form
community with. The power of intentional community is abundantly clear in the
open source movement, where developers from around the world can collaborate on
software of common interest. Yet the larger lesson is that the power of collaboration
and the power of community exhibited in open source have relatively little to do
with software development.
We begin to see the lasting significance of open source only when we see that it is
one instance of a general pattern of online, collaborative community. Even a very
physical, tangible event like Burning Man is crucially dependent on this larger sense
of community. If we look closely, we see that this pattern of collaboration is begin
ning to manifest itself in many other places beyond open source.
We see this strikingly in Eugene Kim s essay, contrasting an early example of soft
ware collaboration with the grass-roots collaboration that emerged around the
Ground Zero cleanup. We see this in the power of consumer-driven innovation that
Sonali Shah explores. We see it in the sense of community behind Slashdot,
described by Jeff Bates and Mark Stone, and the spontaneous movement that became
Groklaw, described by Pamela Jones. And we see a compelling attempt to distill the
most general patterns of these communities in Steve Weber s essay.
The simplest elements are these:
Recognizing that one has common cause with people who might otherwise have
competing or divergent interests
Acknowledging that small teams working on a component of a problem are the
only scalable way to tackle large problems
Improving solutions iteratively through a sense of stewardship, ecosystem, and
evolution, rather than a sense of property and ownership
Taken together, these principles suggest an organizational structure that is at once
novel and familiar. These intentional communities form hierarchically, but it is a hier
archy based on achievement and reputation rather than power, money, or authority.
Communication flows easily up and down the hierarchy, but decision-making flows
from the top down. "Everyone gets a voice, but not everyone gets a vote" (see Bates and
Stone). The resulting organization is more tribal than democratic.
XXXIX
Each night when the two burners return to camp in the hours before dawn, "Reflec
tions in Sand" has changed shape. Some new pattern has been carefully raked into
the black-lit sand, and though they never see the visitors, the evidence of their pas
sage and participation is there.
The last evening is the night of the Burn. All day the Man has been laid down flat as
he is prepped. At sunset he is raised up again. While all week his arms have been
down at his side, now they are raised high above his head. This is the signal for the
ceremony to begin.
A ring of lights surrounds the Man, and the rangers walk the perimeter to ensure
everyone keeps their distance. For hours, within the ring of lights, drummers,
firedancers, and musicians perform. Pagan rituals from 1,000 years ago must not
have looked so different. When at last the Man ignites, flames shooting 50 feet or
more into the night sky, there is awed silence. Pieces begin to fall off, and he begins
to tremble, as only guy wires hold him in place. The trembling increases, and at last
the whole Man collapses into a burning mound. At that moment the crowd rushes
the center in a wild, swirling dance that brings them as close to the flames as heat
will permit.
Now when the two burners return to their camp, they find the sand has been raked
again, into one last new pattern. And something more; there, in the very center of the
little Zen garden, someone has left a bottle of water. One of them reaches in to
retrieve the bottle and pulls off the lid.
"You going to drink that?" asks the other.
"Of course. Out here, water is the most precious gift of all."
An hour later their camp is packed. The black-light-painted rocks go back with
them, the sand has been scattered, and the wooden frame and rakes have been
heaped onto their neighborhood burn pile. They drive toward the gate, and the
attendant waves them down.
"Heading out?" asks the attendant.
"Yeah, back to San Francisco," replies the driver.
"This your first time here?"
The passenger answers, "It is for me."
The attendant gives a knowing smile and waves them through. "See you next year.
Welcome to the tribe!"
XX
XX
SECTION 1
Open Source:
Competition and
Evolution
In Section 1, we present essays tied directly to the history and development of open source soft
ware. These essays can be loosely grouped into three categories:
Essays on the software development process (Baker, DiBona, Allison, and Laurie)
Essays on business competition and open source (Olson, Murdock, Asay, Walli, and
Nelson)
Essays on policy issues related to open source (Seltzer; Gonzalez-Barahona;
Sharma and Adkins; Yeo, Liu, and Saxena; and Souza)
The essays on the development process provide a natural extension from the original Open Sources.
These essays explore the community and process that open source developers comprise, and explore
the subtle similarities and differences between open source and proprietary development.
With the original publication of Open Sources in 1999, the idea of an open source business model
was something of a novelty. Today, we see in these essays, that open source, both in its licensing
structure and in the commoditizing effect of its distribution model, has become a powerful tool in
the hands of businesses large and small.
One critical aspect of the business dynamics behind open source is the desire to avoid vendor
lock-in through proprietary software, and to control one s own technology destiny. While these
issues matter to businesses, they have become fundamental policy issues in Europe and develop
ing nations. Control of technology resources in the coming decades will likely matter as much as
control of natural resources has in the last century. Avoiding monopoly by a single company, or
hegemony by a single nation, has become a paramount policy objective. Increasingly, open source
is becoming the means of achieving that objective.
b CHAPTER 1
Mitchell Baker
The Mozilla Project: Past and Future
The Mozilla project was launched on March 31, 1998. On this date, the source code
for the Netscape Communicator product was made publicly available under an open
source license, the "Mozilla Organization" was founded to guide the project, and
development of the codebase began to move from a proprietary model into an open
model coupled with commercial involvement and management practices.
Of these three elements, the release of the source code is discussed in Open Sources.
In summary, the source code was prepared for public release by removing all code
that Netscape didn t have the right to license under an open source license, and then
replacing those pieces necessary for the code to compile and run. At the same time, a
new open source license the Mozilla Public License was written, reviewed, and
accepted by the open source community, including the Open Source Initiative (http://
www.opensource.org). The other two topics the story ofmozilla.org and the develop
ment of the Mozilla project are the subject of this essay. The creation of the Mozilla
Public License is generally an untold story, but it occurred during the time covered
by the original Open Sources book and isn t discussed in detail here.
Each of these three activities was a step into the unknown. Basic development princi
pals of the open source model ("running code speaks," peer review, leadership based
on technical merit) were known. But the combination of open source techniques
with an active, focused commercial management structure was uncharted territory.
The shift of authority from a commercial management structure to a separate organi
zation was new, and presented many management challenges. The development of
project management techniques and tools that could be shared by multiple commer
cial development teams and a volunteer community was new. Development of a
large, complex end-user application in the open source space was new.
Of course, the Mozilla project was not the first open source project with commercial
involvement. Cygnus, many of the Linux distributors, and Sendmail were all compa
nies involved with open source development, and the Apache project was develop
ing experience in coordinating open source development where some of the contrib
utors were paid by their employers. But none of these projects provided more than a
rough set of guidelines for how the Mozilla project might operate. The Mozilla
project was unusual, and at the time perhaps unique, in the way project leadership
interacted closely with both commercial teams (project managers, people managers,
and engineers) and individual contributors.
Not all open source projects are interested in commercial project management and
people management issues, but for us it was always a given. Today other projects are
thinking about these issues as the development and use of open source software
increase. Given our history, size, and scope, the Mozilla project remains a trendsetter in
this arena.
Founding of the Mozilla Organization: Obvious for Developers, a
Bold Step for Management
The Mozilla project originally grew out of Netscape Communications Corporation
and its Netscape Communicator product. In early 1998, the Netscape management
team made the decision to continue development of Netscape s flagship product,
Netscape Communicator, through an open source development model. At the time,
Netscape Communicator and Microsoft s Internet Explorer browser were locked in a
fierce competitive battle often referred to as the "browser wars." Netscape s goal was
to seed a broad-based development effort within the software development commu
nity to produce future browser products as a shared resource.
At its inception, the Mozilla project faced some paradoxes. First, the only people
familiar enough with the code to participate actively in its development were
Netscape employees. Those employees were still expected to work within the man
agement system and practices that Netscape had developed in its proprietary days.
There was no volunteer community. And yet, even at that early time, it was clear that
the long-term success of the project required a broad constituency of people and
companies working jointly on the project. It was not enough to have open source
code (code available under an open source license). The project needed an open
development process, and this required authority over the code s development to be
based on technical merit and distributed outside Netscape. The question was how to
get there from here.
* C The Mozilla Project: Past and Future
One thing was clear: the success of the project depended on it being a real open
source project. In other words, the project needed to have technical legitimacy and
development decisions would need to be guided by technical considerations. This
was intuitively clear to the group of Netscape employees who were familiar with
open source, eager to help move the Mozilla code into the open source world and
who ultimately became the founding members of the Mozilla Organization. This
group made the need clear to Netscape management, which was receptive to trying
to do the right thing.
When the Mozilla project was officially launched, Netscape executive management
therefore took some bold steps. First, they officially anointed "mozilla.org" as the
steward of the codebase and leader of the project. I say officially because it s quite
possible that a group like mozilla.org would have developed even if Netscape hadn t
officially helped to create one. But this step was important, as it allowed mozilla.org
to focus on building the project rather than on proving the necessity of its role.
The creation of mozilla.org was a significant step that set the tenor of the project s
development. It meant that the development of the Mozilla codebase was to be
guided by something other than Netscape s own product and revenue plans, and also
that Netscape management would need to give up control. This may seem like an obvi
ous statement in an open source world, but it is one of the most difficult problems in
moving from a proprietary to an open system. It is particularly difficult when the
commercial vendor is actively trying to ship a product and the code has not yet
reached a good, solid state that can serve as the basis of that product.
Some have said that the Mozilla project was not a true open source project during this
time because Netscape employees contributed so much to the project and Netscape
management was so involved for so long. It s possible this is true. But I believe that
Netscape management lived in an intensely uncomfortable setting as control of the
project moved from their hands into those of mozilla.org. And since I personally was
the fulcrum for stresses between the project leadership and the Netscape management
team, I ll warrant that Netscape management felt it was living in a real open source
project. In 1999, Netscape Communications Corp. was acquired by America Online
(AOL). This resulted in many changes, but the relationship between mozilla.org and
the Netscape browser development group continued as before. For quite a while, we
used the term Netscape/AOL to describe the Netscape browser development group after
the AOL acquisition, and I ll use that phrase for the rest of this chapter.
The members of the Mozilla Organization are known as "mozilla.org staff." The original
members of the 1998 launch were Netscape employees who had a vision for an open
source Mozilla project and a determination to see it succeed. The most media-genie of
these founders was Jamie Zawinski, who left the project after a year. But the most con
sistent and long-term contributor has been Brendan Eich, who was a founding member
of mozilla.org and remains the technical and philosophical leader of the project to this
Founding of the Mozilla Organization: Obvious for Developers, a Bold Step for Management
day. Over time, the percentage of mozilla.org staff employed by Netscape decreased
steadily. Today, the mozilla.org staff does not have any Netscape/AOL employees.
After the Mozilla project was launched, mozilla.org staff members began the process
of changing development styles from a proprietary to an open source model. The
early steps were logistical: establish public communications channels such as mail
ing lists and newsgroups; establish a public system for viewing and tracking bugs. A
harder task was changing habits. For example, the existence of public communica
tions channels was not enough. Old habits die hard, and there was a tendency for
people to use the methods they had always used. This was complicated by the fact
that Netscape as a company still had confidential data about itself and its business
partners that couldn t go into public forums. So, it was not possible to eliminate all
private channels. Eventually we changed the names of any remaining private mailing
lists to something long and awkward that required conscious thought to use. This
gave Netscape/AOL employees a way to disseminate confidential data when neces
sary, but made public disclosure the easiest path.
Even as basic a step as public communications in an open source project can be diffi
cult for some management teams to accept. In a system that is public by default,
everyone needs to learn what information must remain confidential, and to remem
ber this while working. At first it s a big effort to work in public and some people see
it as overhead. Then as the project progresses and the public interaction provides
increasing value, the need to keep something private is seen as a burden. This is cer
tainly the case for the Mozilla project today, where the only private development
information we solicit are bugs which could have an impact on the security features
of our products. We ve set up a system for treating these bugs privately, and the sys
tem has overhead. We bear it in the security context because security is critical, but
we avoid it in other contexts.
We also set up a public bug and issue-tracking system. This is commonplace today, but
was innovative at the time. We made the bug-tracking system an open source project
under the Mozilla umbrella, and today Bugzilla is a successful project in its own right
(http://www.bugzilla.org). We also set up a continuous build system and web frontend
(http://tinderbox. mozilla.org/showbuilds.cgi). This means that we have an automated pro
cess that builds and rebuilds the software continuously on multiple platforms to see if
and when a new piece of code causes the software not to build. Then came a period of
learning to "work in the fishbowl." Some people adapt easily to having all their work vis
ible, and others struggle. Many simply walk down the hallway to talk with a buddy, and
then forget to tell everyone else. This period takes some time and effort.
Updating the Codebase
About six months into the project, it became clear that the codebase was in need of
updating. By late 1998, the inherited code was several generations old, had been
patched over and over, and actually hindered ongoing innovation. Old and fragile, it
^ C The Mozilla Project: Past and Future
looked backward toward the beginning of the Web, rather than forward to the new
technologies a modern browser would need to support. So, in late 1998, a painful deci
sion was made to rewrite the layout engine, a critical and complex core component.
This decision changed the scope of the project dramatically. The initial project was
an incremental upgrade from the Netscape Communicator 4.x product line to a pro
posed 5.x product line. Moving to the new layout engine (known as Gecko) meant
that the incremental model was gone; the Mozilla project would need to develop a
complex new layout engine and then build a new browser application on top of it.
And things got harder from there. As the new layout engine began to mature, it
became clear that other significant parts of the codebase would also need rewriting.
The development process turned out to be a lot like a remodeling project where fix
ing one problem leads to another. Then came the long, slow grind to producing
something useful (Mozilla 1.0 in June 2002) and finally something great (Mozilla
Firefox in November 2004).
During this time, many proclaimed us dead, a failure. What those people didn t see
was the passion and commitment of the contributors to the project, including the
Netscape employees. The contributors knew that they were developing good technol
ogy. They knew they had a shot at building a great browser and mail client. And they
knew it mattered. The Web matters. Browsers matter. Much of the world decided
that the days of browser innovation were over. Some mourned the loss of choice, and
many didn t realize the dangers of accessing the World Wide Web only through a
single access point. But the contributors to the Mozilla project realized both the dan
ger and the potential for something innovative. They persevered. The prominence of
Netscape often obscured the efforts and dedication of the individuals themselves.
Yes, many contributors were paid by Netscape. Of these, many contributed far
beyond the requirements of a job, doing extra work to make the product "theirs" and
to make sure they were proud of it. Meanwhile, the individual volunteers provided
critical expertise and contributions across the codebase.
During this period, almost all the code in the Mozilla browser and email client was
rewritten. The focus was a modern layout engine, and a set of technologies designed to
make the promise of cross-platform development a reality for the Web. We created a
cross-platform component model (XPCOM),a cross-platform XML-based UI language
known as XUL (pronounced zool\ a new toolkit using XUL, and a set of cross-platform
applications themselves. Developing these was a long process, but we felt that it was
important to have technology that would help us move forward. The power of these
technologies has been demonstrated through our new products: Mozilla Firefox and
Mozilla Thunderbird, in which we were able to build award-winning cross-platform
applications quickly on top of mature, preexisting infrastructure.
Founding of the Mozilla Organization: Obvious for Developers, a Bold Step for Management
*.*
XX
A Disciplined Methodology
Along the way, the Mozilla projects developed a highly disciplined method of distrib
uted software development. Many people think that open source development is nec
essarily chaotic. Or they wonder about the quality of the code because anyone can
create a patch and offer it for inclusion in the source base. Open source need not be
chaotic, and the Mozilla project is not. For every piece of code checked into the
Mozilla products, we track:
Who checked it in
When it was checked in (to the minute)
What problem it was trying to address
The complete history of the issue (bug) the code was trying to address
Who did the code review (often two levels of review)
Whether the next build of the software was broken on any of our main platforms
Whether the code affected our performance metrics, by platform
Build and optional log comments
A comparison with the previous version of the code.
This information is available at any time; it does not require an expert to find or
assemble the data. It is available online, in real time, through a web interface; all one
needs is a web browser (http://tinderbox.moz.illa.org/showbuilds.cgi). We do this so that
many contributors can work on the same codebase simultaneously and know what s
going on. We do this so that the source code "tree" stays healthy, and we address
problems before more new code makes them worse. We also have policies determin
ing who gets access to the CVS tree, what s required before code can be checked in,
what to do when the tree doesn t compile and run, how authority is delegated to
those with expertise, and so on.
Building an Open Source Project
The process of building software proceeded simultaneously with building a vibrant
open source project. The creation of mozilla.org had gone hand in hand with the rec
ognition that Netscape management would need to give up a great deal of control over
the development process. Now it was time to figure out how to make the transfer. I
describe in this section two of the most significant topics we addressed control over
the source code repository and control of the designated releases in some detail, for I
believe this shows how the Mozilla project came of age.
Implementing a transfer of control from Netscape management to mozilla.org caused
a number of strains. Mozilla.org staff could have proceeded in opposition to
Netscape. Indeed, we thought about it many times. However, Netscape was a large
* * The Mozilla Project: Past and Future
and valued contributor, whose involvement and work product remained very impor
tant for the project. So, we spent a great deal of energy figuring out techniques that
addressed the concerns a commercial entity like Netscape brings to a project and
simultaneously building a strong open source community.
Having control of the source code repository may seem like an obvious requirement
for an open source project, but there were many sensitivities in our case. For exam
ple, the Mozilla project has processes to make sure that code is of good quality before
it is checked in. This is often the case in open source projects, and many contribu
tors understand that their code needs to meet project standards. However, this is not
always the case in commercial settings. Often the employment decision is what mat
ters. If someone is an employee, his code goes into the project he was hired to work
on. Instituting code review for everyone, even people employed to contribute code,
can be a surprise for new employees and for their managers. Suddenly the decision of
what code goes into the source repository is not made by managers for a particular
person through the employment process. Instead, the decision is made by engineers
who review the code itself rather than the person s credibility or employment status.
And the code review is not optional or auxiliary; code cannot be checked into the
tree until an appropriate reviewer has given formal approval.
We instituted code review as a prerequisite to check-in relatively early in the process
without too much controversy. Sometime later we implemented a second layer of review
which we ended up calling "super-review." Super-review is an "integration review" or
"plumbing review." Does the code conform to coding guidelines? Does it use the some
what tricky XPCOM in appropriate places and not elsewhere? Does it conform to the
overall architectural goals? Does it avoid needlessly diminishing modularity?
We instituted the super-review requirement because we felt we had to. The Mozilla
codebase is large and complex, and we were worried about overall code quality. We
needed to increase our confidence that the code we were accepting into the tree would
solve the immediate problem, and still leave us enough flexibility for future develop
ment. Implementing the super-review was very painful for everyone involved. It was
painful for the identified super-reviewers. Being a super-reviewer is actually a lousy
job who wants to review yet more code instead of writing it oneself? And of course,
the super-reviewers were well regarded and had plenty of work to do themselves. They
took on the super-review job not because they wanted to, but because they believed it
was important to making Mozilla the project we wanted it to be. Super-review was also
painful for the contributing engineers. Adding another layer of review to the pre-check-
in requirements was seen as "yet more bureaucracy" by some.
There were many requests for absolute, guaranteed turnaround times for super-
review. Engineers and managers complained they could not schedule work accu
rately due to the unknown lags caused by waiting for super-review. And yet, the
super-reviewers had to balance review of code with writing their own. And since they
Founding of the Mozilla Organization: Obvious for Developers, a Bold Step for Management * J 3
were well regarded, their code was acutely needed. I was unwilling to agree to rigid
turnaround times for super-review, believing that doing so would put the work of
key contributors at risk. We eventually agreed on a timeframe for an initial response
from the super-reviewer, which would contain some estimated time for full review.
Another issue was determining who has "write-access" to the source code repository.
This was extremely sensitive. In a commercial setting, it is often the case that when
people are hired they are given access to the part of the source code repository to
which they are expected to contribute. In open source settings, one typically earns
access by making valuable contributions. Moving the open source standard of "earn the
right to touch the tree" to employees who need to contribute code to do their job can
be difficult. In particular, the rationale for why this is necessary can be hard to explain
in a commercial setting when all the code an employee writes must be reviewed and
super-reviewed before it can be checked in. The question comes up: assume Employee
X is hired. She writes code, and it passes review and super-review. Why on earth can
that employee not go through the mechanical task of actually checking the code in? I
was never able to provide a complete answer to this question. I know that open source
projects regularly vet people before allowing access to the source code repository. And I
know it would be very odd for a management chain in a company to make the deci
sion about CVS access. So it s clear that this "is just not done." But I was not able to
explain clearly how someone could do damage by having CVS access if all of her code
was reviewed and approved before check-in, even though the technical leadership of
the project felt very strongly about this. The idea of automatic access for employees had
an emotional response because open source projects rely on peer review and technical
leadership, and I shared this. But the key engineers were adamant that the quality of
the code would suffer through automatic access, even though our pre-check-in code
review requirements are quite stringent.
It was an awkward setting to institute a policy for which I couldn t give a crisp reply
to the various management teams affected. (I ve been responsible for policy for
mozilla.org since 1999, so it was my job to write the policy, describe it to manage
ment, and address the concerns and complaints that might come up.) And the possi
bility existed that management groups would be surprised, distressed, or outraged
that such a policy would be instituted without a clear answer as to why the code
quality wasn t adequately protected. Nevertheless, we instituted this policy in 2001.
A second area where shifting control to mozilla.org was highly sensitive concerned
control of the milestone releases. By "owning the releases," I mean several things:
first, defining and implementing a planned milestone schedule; second, defining and
implementing a process for getting a release into shipping condition; and finally,
identifying and shipping the release.
When the Mozilla project was launched, the planning and release schedule was deter
mined and implemented by Netscape employees contributing to the project, but not
10 x* The Mozilla Project: Past and Future
directly by mozilla.org staff. We worked on changing this for quite some time before
we had proven ourselves trustworthy enough for Netscape to give up control. This may
seem laughable how can a so-called "open source" project not control its own
releases? But it s important to remember that Netscape was under enormous pressure
to release a product, and giving up control of the process by which releases are made is
extremely uncomfortable. Mozilla.org was new and unproven. And of course, manag
ing a software project with hundreds of people working on it is not easy in any setting.
Control of these aspects moved formally from the Netscape management to the
mozilla.org staff following the release of the Netscape 6 browser. This shift had been
discussed for some time but still involved a leap of faith for those who had previ
ously exercised decision-making power.
This was a tempestuous time; mozilla.org staff had influence, but not control. We
thought many times about whether we needed to create a fork in order to affect such
a shift in control. Each time, the mozilla.org staff decided that Netscape s contribu
tions were far too important to the project and outweighed the desire for open source
purity or credibility. I suspect that the Netscape management team must have had
similar discussions, weighing a fork and the ability to manage their releases as they
felt best with the value gained from the open source project. In the end, we all hung
in and mozilla.org staff became the official keeper of our releases after Netscape 6.
Owning our releases did not mean that we ignored Netscape. Netscape remained the
largest single contributor, and its pool of talented and dedicated engineers was bog
gling. Netscape was also the largest single distributor of Mozilla-based products.
Managing the project without taking Netscape s needs into account would have been
stupid. By this time, Netscape didn t exercise control as it once had, but its leader
ship role in the project was greater than some might have liked. Mozilla.org staff con
tinued to hear from the community that we were Netscape stooges and there wasn t a
"real" open source project. However, to my mind, Netscape s role was now deter
mined by classic open source principles: leadership and influence through the qual
ity of one s contribution. Of course, this involves an acceptance of the role of a cor
porate entity in an open source project, which made some uncomfortable.
Mozilla.org was able to own our releases well, in part because we had developed an
active, effective quality assurance (QA) community. Over the years, I ve learned how
few people intuitively grasp the importance of the QA effort (and I suspect, how
important QA will be to other projects of similar scope). Both of our major efforts
web browsing and email live in an extremely complex world. The Web is very
diverse, and people use our software in a boggling array of environments and in
wildly different ways. Hiring a QA team as full-time testers is part of a solution, but it
is not the complete answer. I m becoming more and more convinced that it may well
be impossible to hire a QA team big enough and diverse enough to do thorough test
ing of a product like a web browser.
Founding of the Mozilla Organization: Obvious for Developers, a Bold Step for Management * 11
By 1999, it had become apparent that an active community of people was interested in
contributing to our testing and QA effort. Christine Beagle joined us to lead an effort at
mozilla.org to make this group cohesive, figure out ways to give the group some author
ity, and encourage them to step forward. The response to a bit of attention and apprecia
tion directed at this nascent community was astounding. One mark of success is that
shortly thereafter, we hired one of the more active and organized of these folks as our
community QA lead. This person was Asa Dotzler, who has been a key figure in the
project ever since, still coordinates QA activities, and is extremely active in managing
our release process. With Asa s coordination, we began to see a set of people doing more
organized testing of our products. This provided enormous value. The testers also did
things such as look at all the bugs assigned to a particular engineer, verify that the bugs
were legitimate, check to see if the bug existed on all platforms, create test cases, and
then verify fixes across our main platforms. These efforts saved enormous amounts of
time for the engineers trying to write the code to fix the bugs. I ve learned that this type
of work often gets little respect, but we value it highly and find these contributors to be
extremely important to our project. Many of these efforts were coordinated through
mozillaZine, an independent webzine dedicated to the Mozilla project that was founded
by Chris Nelson in September 1998 (http://www.mozillazine.org).
Massive community testing remains important today. We provide Release Candi
dates for our major product releases precisely so we can get 50,000-100,000 down
loads from our key community and get a good reach on quality.
Young Adulthood the Mozilla Foundation
The idea of an independent legal organization to guide the Mozilla project had been
discussed when the project was first launched in 1998. However, it was decided that
the time was not quite right. At the time, there were no models for setting up such an
organization and figuring out how it would be governed, who would participate, and
so on. There was enough unknown and far too much work in getting the code ready,
the project launched, and a browser developed to take on things we didn t abso
lutely have to do. Eventually we decided that the right time to create an independent
Mozilla Foundation would be when a critical mass of people was interested in sup
porting a foundation. That critical mass would need to include a significant set of
volunteers and a set of companies interested enough to fund browser developer and
distribute Mozilla-based technology.
That critical mass began to develop with the release of Mozilla 1.0. Mozilla 1.0
showed that we could produce a good product, that the Mozilla releases where deter
mined by Mozilla rather than by Netscape, and that the project had a positive future.
At least one critical corporate participant came to us and told us that 1.0 proved our
viability and that they were very interested in helping form and support an indepen
dent Mozilla Foundation.
12 X The Mozilla Project: Past and Future
Following the release of Mozilla 1.0, I spent a fair amount of time thinking about
what an independent Mozilla Foundation would look like, how we might put it
together, how many employees we would need, which companies would likely pro
vide support, and how to finance employees in the early years. I had help from a set
of mozilla.org staff members. In addition, I had the good fortune of hooking up with
Mitch Kapor, who had recently joined the open source world with the launch of the
Open Source Applications Foundation (http://www.osa/oundation.org). Mitch was an
immense help in thinking through various possible structures for the Mozilla Foun
dation and is an unsung hero in getting the Mozilla Foundation launched.
In the spring of 2003, the stars aligned. Mozilla.org staff was ready, the project had
developed a critical mass, and we had some corporate support. In addtion, AOL decided
it was ready to help spin out the Mozilla project. This was an important element for
mozilla.org staff. Of course, we could have launched a project without AOL s support
that s the nature of open source but the mozilla.org staff felt that AOL s support was
important to the launch of an independent Mozilla project. We hoped that the use of the
Mozilla trademarks would be transferred to a new organization, along with a set of
machines. We wanted to be able to hire a group of people, some of whom were current
AOL employees, without bad feelings. We felt it was very important to the project s sta
bility to have a smooth transition from AOL to a successor. We also knew we needed to
hire people to keep the project running well, and that it would take us time to find
ongoing funding sources. So, the seed funding that AOL provided was another critical
factor. Through July, I worked to reach agreement with AOL on how the Mozilla Foun
dation would be launched. Once again, Mitch Kapor provided invaluable assistance in
helping to get the arrangements with AOL worked out.
On July 14, 2003, the Mozilla Foundation was launched as an independent non
profit organization. AOL contributed $2 million in seed funding for the Mozilla
trademarks, the Mozilla Public License, the machines we were using to host the web
site and other infrastructure, and the efforts of a transition team to help create a
smooth handoff. We knew we had some additional funding from IBM and Sun, and
Mitch Kapor donated $150,000 for each of the first two years. Based on this, Bren
dan Eich and I decided, with the help of Chris Hoffman and Mitch, to aim for an ini
tial group of 10 employees.
The initial group was divided among (i) those focused on the projectwide resources
(technical leadership, infrastructure, tools, web site management, builds, releases,
QA), (ii) those focused on the codebase itself (Firefox, Thunderbird, Gecko, the
DOM, and JavaScript) and (iii) a couple of people focused on all the other things the
project and the Mozilla Foundation needed to be successful, including relationships
with commercial contributors and other organizations, legal structure, trademarks,
finances, and so on. Mitch Kapor offered to extend his organization for providing
back-office services payroll, benefits, accounting, donation processing, and human
Young Adulthood the Mozilla Foundation * C 13
resources to the Mozilla Foundation on very gracious terms, which has been a great
boon. Securing high-quality services in these areas for the Mozilla Foundation had
always been of concern to me and this has been a phenomenal solution for us.
This resulted in a group that was small for the scope of the project, but still big for a
nonprofit open source project to support. We chose this route because we believed that
the project was unlikely to reach its potential without a core group of at least this size.
We felt this was the minimum size for critical mass for several reasons, including these:
The World Wide Web isn t finished.
It changes all the time. New content types develop, new technologies develop,
and new possibilities emerge. If the browser doesn t continue to develop, the
consumer s ability to enjoy these enhancements stagnates.
Browsers and email clients aren t done yet.
There s a whole range of innovative ideas that interact with browsers and email
clients. For example, RSS readers can be nicely integrated with both browsers
and email. In addition, the underlying components on which the actual end-user
applications are built require constant development.
Speed matters.
We need good Internet clients now. Having a core set of people able to devote
full-time attention to this makes a big difference in accomplishing things quickly.
The size and scope of the project requires it.
Just keeping track of what s going on in the Mozilla project takes time. About 80
people actively check into the CVS repository each month, and of course, many
more active participants don t have CVS access. We also have a high level of
involvement with commercial entities and with Mozilla development teams at com
mercial entities. Providing the technical leadership and coordination for this large a
group is a big job, even with a set of full-time employees. Doing so without a set of
people available full time (or more than full time) would be beyond daunting.
The founding in July was followed by a hectic startup period through the fall. We
assembled the team of employees. We found office space at an affordable rate, thanks
again to friends of the Mozilla project who extended a helping hand. We moved our
equipment from AOL to our co-location facility and our offices. We knew it was
important that enterprises and other institutions got a good picture of the Mozilla
Foundation and grew confident that we are not a naive, flaky group, so we spent a
chunk of time talking with these groups.
We decided that a serious focus on the end user needed to be added to our traditional
focus on developers. Product development continued at a fast clip through this period.
14 X The Mozilla Project: Past and Future
Firefox and Thunderbird
As if forming the Foundation, moving employees, and establishing and supporting
ourselves wasn t enough, we also began a determined transition from the application
known as Mozilla or the Mozilla Application Suite, or by its codename, Seamonkey,
to our new products: Mozilla Firefox and Mozilla Thunderbird.
We knew that our future lay with the new applications. The integrated Mozilla
Application Suite is a fine product that many love. But the integration caused diffi
culties, the UI had been built by accretion and had been added to over the years, and
we knew we wanted updated, standalone browsing and mail applications. Given our
limited resources, we had to place a bet, and we did.
The Mozilla Foundation hired the lead Firefox and Thunderbird developers, Ben
Goodger and Scott McGregor. We talked with Ben and Scott about providing assis
tance to the community of people working on the Mozilla Application Suite. We con
tinued with our releases of the Mozilla Application Suite, including improvements to
the core components, performance, stability, and security, and coordinating feature
work done by our community. But we did not hire people focused on the Mozilla
Application Suite.
Both Firefox and Thunderbird were in the early stages of development when we
made this decision. Indeed, Thunderbird had not even seen its 0.1 release when the
Foundation was launched. Despite this, we knew that the then-current state of Thun
derbird could probably have supported an 0.1 or 0.2, or maybe even an 0.3 label.
This was borne out when we were contacted over the summer by a Fortune 100
company wanting information about Thunderbird. The company had already done a
significant amount of due diligence and had realized that Thunderbird was the best
option. They wondered if the Foundation would be interested in speeding develop
ment of certain enterprise features if we had some additional funding to do so. As a
result, Thunderbird has had a rich set of enterprise features from its early days. It
lacks an integrated calendar, but the Mozilla calendar project was reinvigorated and
an integrated calendar project launched in the fall of 2004.
Firefox was further along the development path, but still quite young. It wasn t even
called Firefox at that time; it was called Firebird, the second of two early names
which we abandoned due to trademark issues. The application-eventually-known-as-
Firefox was at the 0.5 stage, quite usable, but not a polished end-user application.
The development goal had always been a strict focus on the end-user experience
above all else. This continued, and Bart Decrem drove the end-user focus through
out all aspects of the Foundation s operations. Firefox began to be noticed in 2004
with the 0.6 release. It quickly began to capture the interest of much of our devel
oper community. There were still millions of contented users of the Mozilla Applica
tion Suite, but the momentum had clearly begun shifting to Firefox.
Young Adulthood the Mozilla Foundation * J 15
In February 2004, we found a public posting by a visual designer named Steve Gar-
rity, describing what Firefox needed for its icons, logos, and visual identity in gen
eral. The content of the post was excellent. Better yet, Steve seemed to have both
knowledge of and an interest in tackling these problems, instead of simply complain
ing or pointing out problems. We asked him if he d like to take the lead for a bit and
show us what could be done. He said yes, and the Visual Identity Team was created.
Both Firefox and Thunderbird took a giant step toward becoming sophisticated, pol
ished end-user applications. By the 0.8 release of Firefox in June 2004, the momen
tum for Firefox was growing dramatically. Firefox was already an impressive prod
uct, offering features new to most users.
In addition, the Internet experience had become extremely painful. Malicious actors
were everywhere. The Web was infested with viruses and security exploits, seemingly
uncontrollable pop-up windows appeared almost everywhere, and distracting, band
width-chewing ads appeared long before desired web content. The browser, a piece of
software many had come to take for granted, suddenly mattered. The browser is the
mechanism through which one s computer one s hard drive with its critical and pri
vate data-connects to the wild, wild world of the Web. A modem, high-quality
browser is necessary to keep this connection from being increasingly painful and even
dangerous. The Mozilla Foundation had a great browser in Mozilla Firefox, and people
began to notice. By mid-2004 we began to see that the types of people who were inter
ested in Mozilla Firefox were expanding. We began getting messages from people who
clearly were neither early adopters nor even particularly savvy. So, we knew we were
making a difference. And we knew that the difference was important enough for more
people than ever before to pay attention. People who tned Firefox loved it. Around the
0.9 timeframe Qune 2004), a groundswell began building.
The summer of 2004 was an even more painful time on the Web. A series of viruses
and security issues caused enormous inconvenience and concern. Internet Explorer was
a vector for many attacks. These problems caused consumers to pay more attention to
their browser. They helped people realize why an alternative browser is so important to
the health of the Internet and one s ability to interact comfortably with the Web. Secu
rity is a very difficult problem. A browser must be open to the content of the Web
that s the whole point. At the same time, it can t be too open. A browser needs to have a
series of defenses to help filter out bad content. No browser can be perfect, and that
includes Firefox. We know that we will be making security changes and improvements
in our products on a continual basis, and we hope that others do as well.
We saw significant adoption of Firefox 0.9 through the summer and fall of 2004
almost 8 million people came to get a product that hadn t reached its 1.0 status yet.
Mozilla Thunderbird adoption was also proceeding well, though not at the same fan
tastic rates. On the marketing side, Spread Firefox was launched in September 2004.
This was a community marketing effort, perhaps the first of its kind. We knew that
IB * * The Mozilla Project: Past and Future
the great strength of the Mozilla project is the community of people dedicated to
making it successful. We also knew that we would not have a traditional "market
ing" or "PR" effort, spending large amounts of money on media events. And the mail
we were receiving made it clear that people were excited about Firefox and wanted to
help their friends and family switch.
The result was www.spreadfirefox.com, the home of a fervent evangelism community
focused on increasing Firefox adoption. The most famous Spread Firefox campaign
to date has been the New York Times campaign, which was proposed and initiated by
a community member. This started out as a 10-day campaign to get 2,500 people to
contribute funds to buy a full page ad in the New York Times supporting Firefox.
Ten days was the wrong timeframe 2,500 people signed up in the first two days.
We kept the campaign open for 10 days anyway and ended up with 10,000 choos
ing to participate. We had promised that contributors names would be in the ad and
would be legible, so we enlarged the ad and made it a full two-page ad. It ran on
December 16, 2004. A while later I came to work to find two young men standing
outside our door. The door is glass and we had taped the NYT ad to the door so that
it was visible from the outside. The two young men looked lost, but one wore a Fire-
fox T-shirt. So, as I reached the door to go in, I asked, "Can I help you find some
thing?" The men were rather shy, looking at their feet and mumbling, "We just
wanted to see the Mozilla Foundation. We re only in town for a few days and had to
see it." Then one of them straightened up, looked me in the eye, jabbed his finger at
the New York Times ad, and said proudly, "And there s my name, right there!" Some
times I think people believe I m exaggerating when I describe how passionate con
sumers are after they ve tried Firefox, but it s actually hard to overstate the excite
ment that Firefox has generated.
Getting Firefox and Thunderbird to a 1.0 status and shipped was a very intense
period. We knew we had great products in the works, but we had to finish them. We
also had to get a set of related activities completed. These included revamping our
web site, developing our communications plan, working with the Spread Firefox
community, improving our localization process and working with the various local
ization communities, figuring out our search relationships, working with our affili
ates Mozilla Europe and Mozilla Japan on the international aspects of the launch,
and so on. The ferocious dedication of everyone involved was required. I cannot
stress enough the commitment of the Mozilla community. On Sunday, November 7,
I logged onto IRC at about 8:00 A.M.., which is early for me and for most of the
Mountain View-based staff. I was bombarded with questions from our localization
communities in Europe and Asia. Some were up early, many were up very, very late,
and all were trying to figure out how to manage their schedules over the next 48
hours to be available whenever needed to get their localized versions finished,
approved and shipped as part of the 1.0 release.
Young Adulthood the Mozilla Foundation
Mozilla Firefox 1.0 and Mozilla Thunderbird 1.0 were released on November 9, 2004.
To say they have been well received is an understatement. Firefox 1.0 was downloaded
from our mirror site about 2 million times in the first two days alone, and has plunged
on at an average rate of almost 250,000 downloads per day since then. As of mid-April
2005, the number of downloads that we can track is very close to 50 million. On the
usage side, Firefox has gained worldwide market share at a rate of nearly 1% per
month from November to April. As of April 2005, surveys are beginning to show
Mozilla browsers at or above 10% market share. Among technically focused sites, the
market share of Mozilla products ranges up to much higher numbers.
It s extremely difficult to gain this sort of market share on the desktop in the face of a
competitive product that people get when they buy a computer. The fact that Mozilla
Firefox has done so is a reflection of a great product, a huge need, a fervent commu
nity, and the power of the Internet.
Many people have wondered whether open source development can produce great
end-user applications. One school of thought says that open source developers can
produce infrastructure and products that other developers like, but not applications
aimed at the general end user. Mozilla Firefox and Thunderbird demonstrate that
open source software can indeed produce great end-user products. I believe that we
are only at the beginning, and we will see a range of innovative end-user products
come from the open source world in the coming years.
The Future
The mission of the Mozilla project is to promote choice and innovation on the Web
by creating great end-user offerings. We focus on innovation because the Web is still
young we ve seen only the beginnings of its potential. That potential can be stifled
if we don t have innovative work done on the client side.
We focus on choice because this allows people to have greater control over their
Internet experience. This control over our life on the Web increases in importance
each year, as more and more critical functions such as banking, health care, insur
ance, and commerce are done over the Web. A monoculture is rarely a healthy ecol
ogy. A single effective choice in browsers and email clients is dangerous, both to con
sumers and to the health of the Web itself.
Firefox in particular has shown that consumers will pay attention to a product that
provides an alternative, and that the Mozilla project can create such a product. We
have a number of challenges ahead of us. We need to continue to release products
that people love. We have a set of responsibilities that come with the user base,
adoption rate, and increased visibility of the project. Conditions will change, and we
will need to adapt. These are challenges, but certainly no greater than those we have
faced to date. These are the challenges that result from the project s achievements.
18 X The Mozilla Project: Past and Future
We have great talent, a powerful and creative community, a well-earned place in the
Internet ecosystem, a growing user base, and, at long last, a legal home for the
Mozilla project in the Mozilla Foundation.
As we go forward, there is no change in the mission of the project. Our basic
approach of combining open source DNA with involvement by commercial entities
will continue. The Mozilla Foundation has grown some and may grow some more,
and we expect to continue working closely with a set of companies that are inter
ested in developing and distributing Mozilla technology. The increasing acceptance
of open source software by the commercial world opens up greater possibilities for
collaboration. The emergence of web-based services provided through the browser
also encourages business models for the service provider other than charging for each
copy of software provided. This allows more entities to contribute to our project.
Our focus on distributed development, technical excellence, and welcoming new
participants will continue. The need for a vibrant, creative community of people
focused on the Web will not change.
I expect the Mozilla project will continue to be a trendsetter in a number of arenas:
development of open source end-user products, combining volunteer and commer
cial activity in an open source project, maintaining a critical mass of people as
employees of the Mozilla Foundation, and funding that set of employees plus com
munity marketing and adoption programs. We aren t the only ones doing these
things, and we continue to learn and benefit enormously from the open source
projects. We hope to contribute ever more in return.
19
b CHAPTER 2
Chris DiBona
Open Source and Proprietary
Software Development
In this chapter, I present a perspective on the similarities, differences, and interac
tions between open source and proprietary software development.
Proprietary Versus Open Source?
Before you go any further, throw off any notion that the proprietary developer is some
how a different person from the open source developer. It is uncommon for a member
of the open source developer community to do only open source for a living. Only the
most prominent, or loaded, members of the open source community come close to
having this kind of freedom. It is indeed rare to find a developer who develops only
with proprietary tools and libraries. Even Visual C++ and C# developers benefit from a
great variety of code and libraries that are free for use in their programs. 1
My career has focused on open source development for the last 10 years, and I m
constantly pleasantly surprised by how open source development and proprietary
resemble each other. I believe this is because proprietary developers are educated by
the adventures of their slightly crazy open source cousins, but I also know that open
source developers have learned just as much from proprietary developers.
1 Traditionally, one difference between open source and proprietary development teams has been
that open source teams are, in general, geographically quite dispersed. However, in this age of
outsourced, offshored, and distributed development, even proprietary development has
become highly dispersed geographically.
Don t read this as an attempt to muddy the difference between proprietary and open
source programs. They are different, sometimes very much so. However, they come
from the same people, and they re using a lot of the same methods and tools. It is the
licenses and the ideals behind open source programs that make them remarkable,
different, and revolutionary.
The Example Culture
A lot of people, when talking about open source software development, say that open
source developers enjoy a great productivity gain from code reuse. This is true, but
in my experience all developers, not just open source developers, benefit from the
existence of free-of-charge standard libraries and code snippets. For decades, propri
etary developers have had a great variety of prepackaged libraries to choose from, but
these proprietary libraries haven t taken root in the same way that freely usable, open
libraries have. 2
Code reuse? Knowledge reuse!
In Linus Torvalds essay from the first Open Sources, he talked about how the rise of
open code was delivering on the promise of reuse touted by proponents of the Java
programming language specifically and object-oriented programming in general.
That said, it has been my experience that there is a point at which software develop
ers will go out of their way to avoid reusing code from other projects. In some shops,
they call it "not invented here" (NIH) syndrome, and some companies are famous for
it. But even those shops use standard kernels, libraries, and compilers. The real diffi
culty here is in figuring out where the NIH line lies. Although the answer is different
for every single programmer and team, all still can (and still do) learn from the open
code out there, which is a unique advantage of open code. While both open and pro
prietary code can be reused in a wide range of circumstances, open code enables
something further: knowledge reuse. By examining the code itself, the developer can
learn how a particular problem is solved, and often how that solution is an instance
of a general solution type. It is this kind of reuse that Linus applauded and that the
NIH developer misses.
Then why not simply use other people s code? There are a number of factors to con
sider before code is incorporated, and these must be understood before one can
understand the role that Free Software has had in development.
This will likely inspire many to cite their favorite commercial library. A full survey of libraries,
both commercial and open source, would be required to validate this statement properly. This
is an educated assumption on my part, as when commercial libraries manage to gain any son of
prominence, open source developers tend to fill the gap, thus overshadowing the commercial
project.
22 * C Open Source and Proprietary Software Development
Speed of development
There are very real barriers to using other people s code. You have to examine how to
interface with said code, and you need to review the code to make sure it meets your
standards for security, license, style, and correctness. You also need to integrate it
into your version control and build system.
None of these problems is insurmountable, but they have to be worth surmounting.
To wit: if all I need is a routine to do something simple, such as iterate through an
array of numbers and perform some simple operation on them, using someone else s
software would be a waste of time.
When developing, I like to use large libraries only when I either don t want to deal
with a technology, or I don t fully understand it and don t feel qualified to imple
ment it. For a recent project, I was pulling newsfeeds from weblogs and performing a
kind of natural English language processing on it. I thought that using a tool called a
"stemmer" to normalize the data would make my later analysis more accurate.
Implementing the routines to download and process feeds could have taken a month
or two, and this is exactly the kind of development I don t like to do. To properly
implement a stemmer, I d likely have to get my graduate degree and then write it
which would impact my deadline a bit so I downloaded programmer-friendly
libraries that did each of these tasks. The stemmer was available under the Berkeley
Software License, and the feed parser was available under the Python Software
License, both of which are very easy to deal with and do not require any onerous
post-incorporation duties. I was thus able to save time and have better code.
That said, some things I m very interested in developing myself. Since I was doing
this project as an excuse to learn a natural-language processing algorithm, which was
interesting to me, I wanted to write that part of the program myself. I was (and am)
also fascinated with a problem I think I ll have in storing the results such that I can
quickly retrieve them from a database. I haven t solved that problem as of this writ
ing, but I don t necessarily want to use other people s code for that. I have read some
code and examples in textbooks and online that will help me with the former, but
the storage problem is mine, for now.
This gives you an idea where the line was for me in this particular project, but oth
ers have the same reticence for other, subtler reasons.
A particularly difficult codebase
What makes software difficult to add to your code? Sometimes the code is simply in
the wrong language. Maybe you are using Perl and want to tie some code into a C or
Python module. That s not always so easy. Maybe the code was really developed on
only one platform say, an Intel machine and you want it to work on your iBook,
which runs on a PowerPC processor.
Proprietary Versus Open Source? X 23
The problems with using other people s code can be legion. Maybe their routines
were implemented assuming a machine with a lot of memory or processor cache,
making it perform poorly or, worse, unpredictably, 3 on your target platform. Maybe
the software was developed for an earlier version of your programming language, so
a lot of features you would have implemented with a standard library call are instead
implemented from scratch, thus reducing future maintainability.
Problems arise with canned libraries as they get older. For instance, the aforemen
tioned feed parser library is useful because its author, Mark Pilgrim, is very good at
keeping it up to date with the 13 "standards" that lie behind that "xml" button on
your favorite blog or web site. If the library were to fall into disuse, or Mark were to
stop working on it and no one else picked up the work, I d likely change to a differ
ent library or choose to maintain it myself.
There is another reason to not use someone else s code, and it will look amazingly
petty to all but the programmers reading this.
Technically speaking, this:
int myfunction(int a)
{
printf("My Function %d\n",a);
}
is the same as this:
int myfunction(int a) {
printf("My Function %d\n",a);
}
which is the same as this:
int myfunction(int a){ printf("My Function %d\n",a);}
and this:
int myfunction(int a){
printf("My Function %d\n",a);
}
They compile to the same result on any given compiler.
I could go on, but I won t. The point is that, depending on the programmer or dic
tated company style, each of these is wrong, evil, bad, or awful, or perhaps one is
acceptable. Not all programmers and companies care about style, but many (one
might argue the smartest) do. The ones that do care actively dislike the ones that
don t and do not want to use their code. Should they have to touch the offending
3 This might seem strange, but programmers are OK with the odd performance hit sometimes.
Unpredictable results lead to crashed programs, however. This is not good, no matter what
you ve been told.
24 * * Open Source and Proprietary Software Development
library, they will inevitably have to make it "readable." Whether you call this refac-
toring or prettifying or whatever, it can drive a programmer away from a hunk of
code, unless it really brings something fantastic along with it.
"My Goodness," you might consider asking, "are programmers delicate, petty crea
tures?" No, there are some very good reasons to have consistent code style. It aids in
debugging. Some say it reduces bugs (I d agree). It makes code navigation much faster
and makes it easier for people to write tools to generate and manipulate code than they
might otherwise. There are other reasons too, but I don t want to get too arcane. Some
languages, such as Python, have very rigid appearance rules, as appearance can dictate
how a variable can be used. Style may appear to be a trivial concern, but it isn t.
Comfort
Maybe you just want to do it yourself. Businesspeople in the industry who have grown
up around open source often comment that duplication of effort, or "reinventing the
wheel," is not time well spent. I rarely hear this from programmers. When people hear
about KDE and GNOME, or Linux and BSD, or even more esoteric arguments about
which window manager to use, inevitably someone will chime in, "Obviously, they had
a lot of time on their hands. Otherwise, why would they have started from scratch?"
The implication is that the programmers have somehow wasted time. When I choose
to reimplement some technology or program, I know what I m doing, and even if it
is a "waste" of time or duplication of effort, I think of it as practice. And when I can
enjoy the luxury of implementing from scratch, I really like the results, because
they re all mine and what I ve developed works exactly the way I want it to.
But Why So Many of the Same Things?
Business, of course, is interested in productive developers, and productive developers
don t rewrite things, right? No, not necessarily. People rewrite code all the time. The
more-informed companies recognize that this type of thing is often inevitable, and the
best and most resourceful encourage this kind of mental knife sharpening, because it
leads to better developers and better code. Given the time, programmers often prefer to
leam from other people s code without actually using the code, and if open source ends
up as one big repository of example code, I call that a success.
Also, computers change. Computers, languages, compilers, and operating systems
change so quickly that a periodic rewrite of some code becomes vital, from a perfor
mance perspective. To take advantage of the newest processors, architectures, and
other advancements, a recompile will certainly be required and will likely expose
issues with your code (architecture changes lead to this directly). 4
For example, you write a program on your handy laptop, you compile it, and it runs great. Later,
you run it on your fabulous dual Opteron server. It crashes because you assumed an integer was 32
bits and the Opteron (running a 64-bit OS like Linux, of course) has 64-bit integers. This is a basic
error that comes up in a lot of different ways during 32-64 bit transitions.
25
But people are using libraries, code, and examples from open source code, copying
them into their codebases rapidly. Certainly this happens. Don t let my counter cases
fool you. It is a rare codebase that doesn t involve some open source software,
whether it is merely in the form of a standard library or a widget library, or is full of
the stuff. This is by design; if every program had to write every instruction down to
the operating system, or the machine itself, there would be no programs. The itera
tive building process, programs on top of libraries on top of the operating system, is
so productive that I can t imagine someone ignoring it. Even for the smallest embed
ded systems, designers are using the GNU compilers to create great programs for
their devices: compile, flash, and go.
Libraries, System Calls, and Widgets
Here we begin to see how open source ideals have changed proprietary development.
When proprietary software developers create a program, they may use free software,
created or derived libraries, widget libraries, and tools. This includes developers target
ing proprietary operating systems such as Windows and OS X. Developers creating
software, whether for OS X, Unix/Linux, or Windows, commonly use free tools to do
so. They almost always use free libraries in the creation of their programs and often use
free user interface elements during the creation of their systems.
Some might think I m indulging in some mission creep for free software here,
assigning a larger role to it than it maybe should enjoy. I m not. I ll take it even fur
ther: if there hadn t been free tools like the GNU compiler collection, the industry
would have been forced to create and release them. Otherwise, the computer
industry as we know it would not exist and would certainly not be as large as it is
right now. This is not to imply that companies somehow owe something to the free
software community. However, companies do help out when they can reap a long-
term benefit. IBM understands this, as do Novell, Google (my employer), and
many others. Even Microsoft uses and releases code under a variety of licenses,
including the GPL (its Unix services for Windows) and BSD (Wix), but Microsoft is
conflicted both internally and externally, so it s not as easy for it to embrace open
source.
Am I saying that without free tools, the compiler would try to charge a per-pro-
gram fee? No, I think that if free tools hadn t arrived and commoditized the com
piler, other competitive concerns would have kept the price of software develop
ment tools accessible and cheap. That said, I think free tools played a big part. Free
and open source software changed expectations. Microsoft and Intel make no
attempts to prevent developers from using their compilers to create free software or
software that is counter to their corporate goals. Client licenses, a common fixture
in the email/workflow market, are unheard of for mainstream development tools.
2B X Open Source and Proprietary Software Development
If there is one thing about free software that is downright scary to proprietary devel
opment shops, it may be this: software that is licensed per client almost always
comes under attack from free software. This is forcing in the software industry a shift
away from such per-client licenses in all but the most specialized verticals for
instance, the software that runs an MR1 machine, or air traffic control software, both
of which are so specialized as to not count, because every client is custom. The grand
irony here is that in some industries, such a high cost is attached to developing soft
ware that some are forming very open source-looking consortiums to solve common
software development problems.
Distributed Development
Distributed development is more than just a fad or even a trend. Organizations and
companies large and small are using diverse, globally distributed teams to develop
their software. The free software development movement showed the world how to
develop internationally. Well before SourceForge.net became a site that every pro
grammer had heard of, projects working together over the Internet or far-flung con
nected corporate networks developed much of the software that we use today.
In fact, the tools they developed to do that are now considered the baseline standard for
developerd everywhere. What company in its right mind doesn t mandate that its pro
grammers use some form of version control and bug tracking? I ask this rhetorically,
but for a long time in the software business, you couldn t make this assumption. Small
development shops would back up their data, for sure, but that s not version control.
Distributed development is about more than just version control. It s also about com
munications and bug tracking and distribution of the end result of software.
Understanding Version Control
Programming is an inherently incremental process. Code, then build, then test.
Repeat. Do not fold, spindle, or mutilate. 5 Each step requires the developer to save
the program and run it through a compiler or interpreter. After enough of these
cycles, the program can do a new thing or an old thing better, and the developer
checks the code into a repository, preferably not on his machine. Then the reposi
tory can be backed up or saved on a hierarchical storage system. Then, should a
developer s workstation crash, the worst case is that the only work lost is that done
since the last check-in.
This sentence is famous for being printed on punch cards, an early way of providing computers
with data. If they were folded, spindled, or mutilated, they jammed the readers which makes
one speculate what the punch card programmer used for version control. The answer is right
there in front of you: as the cards went through revisions, they swapped out cards and retained
the old, original cards.
Distributed Development * 27
What is actually stored from check-in to check-in is the difference from one version to
the next. Consider a 100-line program, in which three lines in a program read:
for (i=i; i < l; i++) {
printf("Hello WorldVn");
}
and one link needs to be changed to:
for (i=l; i < 100; i++) {
printf( "Hello to a vast collection of worlds !\n");
}
which would then be checked back in. The system would note that only one line had
changed and store only the difference between the two files. This way, we avoid
wasting storage on what is mostly the same data.
The value of having these iterations can t be overstated. Having a previously known,
working (or even broken) copy can help in the event of an editing problem, or when
you re trying to track down a bug that simply wasn t there a revision ago. In desper
ate cases, you can revert to a previous version and start from there. This is like the
undo option in your favorite word processor, but one that persists from day to day.
Version control isn t used just in development. I know of IT shops and people who
keep entire configuration directories (/etc) in version control to protect against editing
typos and to help with the rapid setup of new systems. Some people like to keep their
home directory in a version control system for the ultimate in document protection.
There is even a wiki project that sits on top of the Subversion version control system.
Additionally, good version control systems allow for branching say, for a develop
ment and a release branch. The most popular version control system that many open
source projects use is CVS.
CVS
CVS, the concurrent versioning system, allows developers all over the world to work
on a local copy of a codebase, going through the familiar "code, build, test" cycles,
and check in the differences. CVS is the old standby of version control, much in the
same way RCS/SCCS was before it. There are clients for every development environ
ment and it is a rare professional developer who hasn t been exposed to it.
Since it is easy to use and install and it enjoys wide vendor support, CVS continues
to be used all over the world and is the dominant version control platform.
Subversion
Only the rise of Subversion has brought real competition to the free version control
space. With a much more advanced data store than CVS and with clients available for
all platforms, Subversion (SVN) is also very good at dealing with binary data and
28 X Open Source and Proprietary Software Development
branching. Both are things that CVS isn t very good at. SVN is also very efficient to use
remotely, and CVS is not; CVS was designed for local users and remote use was tacked
on later. Additionally, SVN supports a variety of access control methods, supporting
any authentication scheme that Apache does (Subversion is an Apache project), which
includes LDAP, SMB, or any the developers wish to roll for themselves.
What About SourceSafe?
SourceSafe isn t really version control. Local version control, whether CVS or Source
Safe, is just backup, requiring a level of hardware reliability that simply doesn t exist
on a desktop. Since SourceSafe is not designed to be used remotely, you take the life
of your codebase in your hands when you use it. There are some SourceSafe remot-
ing programs out there if you must use SourceSafe, but I can t recommend them so
long as decent, free SVN and CVS plug-ins exist for Visual Studio.
The Special Case of BitKeeper
BitKeeper, which was written by Larry McVoy, was chosen by Linus Torvalds to use
for version control for the Linux kernel. For the Linux kernel, BitKeeper was a very
good choice, given the kinds of problems that arise with Linux kernel development.
Written for distributed development, BitKeeper is very good at managing multiple
repositories and multiple incoming patch streams.
Why is this important? With most version control systems, all your repositories are
slaves of one master and resolving differences between different slaves and masters
can be very difficult.
The only "problem" with the kernel team s use of BitKeeper was that BitKeeper was
not a free software program, although it was available for the use of free software
developers at no charge. I say was because Larry McVoy recently decided to pull the
free version, thus making it impossible for Linux kernel developers to work on the
program without paying a large fee. 6
A great number of developers lamented the use of a proprietary tool for free software
development, and the movement off BitKeeper, while disruptive, is a welcome change.
BitKeeper is a tool designed with the open source software model in mind. It has
found success among large proprietary development houses specifically because the
problems that faced the kernel team in 2001 are the same ones that increasingly face
proprietary development shops. All of these teams, not just those working on open
source development projects, now face multiple, far-flung teams that are engaged in
collaborative development and struggle to do it effectively.
6 The kernel team is in the process of moving off of BitKeeper as of this writing.
Distributed Development *C 23
Collaborative Development
You have a developer in Tokyo, a team in Bangalore, a team in Zurich, and a shop in
Seattle, all working on the same codebase. How can you possibly keep the develop
ment train from coming off the rails? Communication!
IRC/IM/Email
One might imagine that only now, with the advent of IM and VoIP, can developers
keep up with each other. In fact, developers have stayed in touch in something
approximating real time since the early days of Unix, when they began to have a
great variety of communications tools to use. 7 Early on, two developers on the same
machine used the Write or Talk Unix programs, which allowed for a simple
exchange of text between users. This grew into Internet Relay Chat (IRC) and then
Instant Messenger (IM).
Email itself plays the most important role in development. It is the base packet of
persistent knowledge that distributed developer teams have. Wikis are also taking
hold as repositories of information.
VoIP
Strangely (to nondevelopers) voice simply hasn t caught on as a terrific tool for ongoing
developer communications. While a regular conference call is useful for keeping every
one moving in the same direction, the idea of vocal input while developing would drive
many coders away screaming. The phone isn t evil, but maintaining an uninterruptible
flow can be very important to developer productivity. Phones also do not create a logfile
or other transcript that can be referred to later. Don t take my experiences for gospel
here. Read the book Peopleware 8 for more information about this. Everywhere I ve ever
worked, the one constant has been developers wearing headphones, but listening to
music, not other developers yammering in their ears.
SourceForge
The online site SourceForge.net is the largest concentration of open source projects
and code on the planet. SourceForge boasts some 100,000 projects and 1 million
registered developers, and people use its integrated version control, project web
hosting, file release mechanism, bug control, and mailing lists to write a vast amount
of software. Pulling together these features on a free platform for open source devel
opers proved to be a revolutionary concept. Before, people were left implementing
this themselves with Bugzilla (a bug-tracking mechanism) and CVS or some other
version control/bug-tracking facilities.
7 In fact, the Unix "write" command allowed hackers in the 1970s to communicate in a fashion
not so different from IM.
8 Tom Demarco and Timothy Lister, Peopleware (New York, NY: Dorset House Publishing
Company, 1999).
30 * * Open Source and Proprietary Software Development
SourceForge represents, for a lot of people, the next stage in developer environ
ments. VA Software, the company that runs SourceForge through its Open Source
Technology Group (OSTG) subsidiary, sells this sort of solution into the enterprise,
as does the Brisbane, California-based Collab.net.
Software Distribution
While free software developers know how to code, what about getting the code in
front of the user? In the early days of the Free Software Foundation (FSF), the answer
was to send out tapes and disks to users who wanted the tools, for a reasonable fee.
Now that so many people have connections to the Internet, boxed software is begin
ning to show its age, but software producers are really just now learning from open
source how to distribute software in this way.
Dependencies
When you compile a piece of software, you sometimes end up relying on libraries that
you must call from your program to do some task. If you try to run the program with
out the expected complement of libraries, it cannot run or it may run poorly. Open
source developers have created some very smart packaging and installation systems and
filesystem methods that can make this a more tractable problem. Once they created
these packaging systems and combined them with the Internet, they got online updat
ing. The irony is that, in a lot of ways, Linux and Unix were schooled in this by Win
dows. A common complaint regarding Linux when comparing it to Windows and OS X
is that software can be very difficult to install. One could argue that Windows isn t all
that easy to install either, but since Windows is preinstalled on most computers, this is
an argument that often falls on deaf ears.
I don t think Linux developers have learned to do installation well yet. There are some
standouts, but for the most part, installation ease is still a work in progress. One thing
free and proprietary share is the appreciation for and development of online updating
systems. This is something Linux distributions get very right. In short, once Linux is
installed on your machine, it can be very easy to keep it up to date.
Online Updating/Installation
Online updating is a terrific way of getting software onto your machines. More
importantly, it is a terrific way to maintain a secure system over time. Since Linux
distributions don t have to worry about software license ownership, it is very easy for
the software to determine whether to download a patch or fix, and thus many Linux
distributions have systems to facilitate this. Proprietary software development houses
such as Microsoft are still trying to figure this out. It is a hard problem when you mix
it with licensing concerns. Additionally, when it s done wrong, you can literally crash
thousands, or in the case of Microsoft and Apple, millions of machines, so it is really
critical to do well. That the Debian and Fedora Core Linux distributions do this at all
is quite a feat.
Software Distribution X 31
Want a sticky issue? Do you trust your software vendor to allow it to automatically
update your software? For some, this question is heard in these ways:
Do you trust Microsoft to update your operating system?
Do you trust a bunch of bearded Unix programmers to update your system?
How you react to these questions has a lot to do with the realities of how difficult the
problem is, how successful previous auto-updates have been in the past, and how
trusting you are which brings up the subject of the next section.
How Proprietary Software Development Has Changed Open Source
Open source isn t magic, and developers aren t magicians. No developer is immune
to security problems and bugs creeping into his code.
Bugs/Security
Free, open, proprietary, closed. . ..Bugs happen. I think open source means fewer bugs,
and people have written tens of thousands of words explaining how they agree or dis
agree with me. One thing I know I m right about is that both kinds of code have bugs.
Bugs persist longer in closed codebases, and their closed nature keeps bugs persistent.
If I may paraphrase Socrates, "An unexamined codebase is dead," and by dead I mean
killed by the hostile environment that is viruses, worms, crackers, and Trojans. Like
bugs, security flaws happen in both free and closed software. As a project matures, it
must assemble a mantle of testing and quality assurance (QA) techniques that are
vital to its ongoing health. I think open source development has learned much from
the processes that proprietary software development houses have come up with to
support their paying customers.
Testing and QA
As projects mature, so do the testing suites around them. This is a truism for free and
for closed software codebases, but the research around this originated in commercial
software/hardware and in academia, and open source software has been a ready con
sumer of this information. The most popular talk I attended lately was in unit testing
for Python at the O Reilly Open Source Conference. The room was packed, with peo
ple sitting in the aisles. Testing is huge and is required for any project, free or not.
Project Scaling
Scaling is hard. Whether we re talking about development group size, bandwidth,
space, or whatever, scaling any programming project is nontrivial.
Software development has its limits. Product teams can t grow too fast or too large
without one of two things happening either disintermediating technology or
project ossification. Fred Brooks s seminal book, The Mythical Man-Month, covered
32 * * Open Source and Proprietary Software Development
this in depth, and the existence of F/OSS development methodologies doesn t change
that. In fact, the tools and changes free software has brought to prominence are all
around disintermediation and disconnected collaboration.
F/OSS isn t magic. It isn t breaking the speed of light. Most projects, with some nota
ble exceptions, are composed of small teams, with one to three people doing the vast
majority of the coding. If you care about project size, you would be well served by
reading the findings of the Boston Consulting Group s study of open source software
developers on SourceForge. This revealing study analyzes project metrics and moti
vations. For one thing, you see that projects almost always comprise fewer than five
active developers. Many projects have only one developer.
So, what am I talking about when I say disintermediating technology? Look at it this
way. Imagine that one person decides to create a cake from scratch. He d have to
start with a cake mix and some milk and an egg, right? No! He d need chocolate,
milk, flour, yeast, water, and the other ingredients, right? No! Just for the milk, he d
need a cow, some food and water for the cow, a bench, a milk bottle, a chiller, a pas
teurizer, a cap and a rag, some bag balm, and so on, right? Well, you re getting
closer. The point is that we accept interfaces all the time, and the successful project
finds these interfaces, formalizes them, and spreads the work out along these lines.
We accept power at 120 volts at 60 hertz alternating current. We don t generate the
power ourselves. We accept that we don t need to dig for oil, refine it, and pour the
refined gas into our cars. We use interfaces with different systems all the time. Programs,
too, have interfaces, and the success of a program is in how it manages these interfaces.
Proprietary or not, a successful program is one that interfaces effectively between sys
tems and teams working on these systems. Microsoft doesn t have 5,000 engineers
working on Windows. It has them working on the kernel, the printing subsystem,
the windowing system, the voice synthesis module, and other components. More
importantly, it has groups that work on interfacing between the systems so that they
(theoretically) work as a whole. Likewise for the Linux kernel; Linus interacts with a
number of captains who control different subsystems, including networking, disk
drives, memory, CPU support, and so on. Fractionation, when possible, is key, and
when not possible, disastrous which is why groups working to integrate the whole
and making sure the interfaces are appropriate can make all the difference in the suc
cess or failure of a project.
This interface management is something that free software has done very well. Many
commercial developers would be well served to learn from open source s interface
management practices.
How Proprietary Software Development Has Changed Open Source 2 C 33
Control
Control is something customers and end users have never had over their code. You
don t buy proprietary software, you rent it, and that rental can be rescinded at any time.
If you read the end-user license agreements (EULAs) that accompany proprietary soft
ware, you may be left with the feeling that you are not trusted and not liked all that
much. For instance, in Microsoft Word s EULA, there is this charming note:
You may not copy or post any templates available through Internet-based services
on any network computer or broadcast it in any media.
So, if you were to take a standard Microsoft Word template (which all templates are
derived from) and make one that is suited to your business as, say, a publisher, you
would be in violation of your EULA with Microsoft, and thus vulnerable to its lawfirm.
Controlling your software destiny is something I consider extremely important. Take,
for instance, my employer, Google. We are able to fix and change the Linux kernel to
fit our very specific needs. Do we have to check with Linus or one of his lieutenants
before, during, or after we change the network stack? No. If we were running NT on
our machines, we would be unable to get such changes made, and were we to enter
into a deal where Microsoft would incorporate our requested changes, we would in
effect be informing a competitor of our development strategy.
Another example is a recent service pack from Microsoft, which featured a firewall and
antivirus package. This package, which is turned on by default after service pack installa
tion, was aimed at stopping the viruses and Trojans endemic to the Windows experi
ence. Funnily enough, it considered iTunes a virus and presented a fairly confusing mes
sage asking the user to authorize the program s use of the network. 9 That Microsoft s own
media player, which has common network access methods, wasn t impeded is telling.
Your computer is not your own; you only borrow that which makes it useful, and
when that is taken away, you are left with nothing but a toxic pile of heavy metals
and aluminum.
I think this is a subtle but important part of open source s popularity. Many people
and companies are interested in controlling their own destiny, and Linux and other
open source programs make this possible.
Intellectual Property
Free-software developers believe in intellectual property, probably more so than peo
ple who never consider open source software. Developers creating open source have
to believe, as the entire structure of the GPL, BSD, MPL, and other licenses depends
on the existence of copyright to enforce the clever requirements of those licenses.
iTunes has a nifty sharing mechanism whereby users stream music to other iTunes users over
the network. It s pretty neat.
34 * * Open Source and Proprietary Software Development
When you hear people criticizing free-software developers as guiltless communists or
pie-in-the-sky dreamers, it is worth remembering that without copyright, there can t
be free software.
Discussions concerning intellectual property and free software usually revolve
around two issues: patents and trademark. Software can be patented, and things can
be trademarked. Exactly how these intersect with free software is complex. Can a
piece of software which is patented be released under the GPL and still hold to the
letter of the license? Can a program name be trademarked and then released under
the BSD and still be a meaningful release? Legal opinion and precedence thus far pro
vide no definite answer.
Open source developers are learning, though, paying attention to the current events
around intellectual property and how it affects them.
The reality of intellectual property is something modern developers are almost
required to learn. Learning the laws concerning software is the way to protect them
selves from those who might send the feds out to arrest them when they come to the
United States. I know that sounds like I m typing this with tinfoil on my head, but I
am not kidding. 10
The problem with this learning process is that it does take time away from coding,
which is not good and is a net loss for free software which may indeed have been
the whole point.
Some Final Words
While open source software is about freedom and licenses, it is nonetheless true that
open source costs less, under many circumstances, than proprietary software. This is
an important aspect of free software. Additionally, it has to be cost competitive
against other free products, just as software that costs money must compete against
an open source/free offering.
10 I wish I were, but I m not. It happened to Russian developer Dmitry Sklyarov, who intended to
discuss his reverse engineering of the Adobe PDF file format at the DefCon developers
conference in Las Vegas. Upon landing at McCarran International Airport, he was met by the
FBI, which placed him under arrest under the auspices of the Digital Millenium Copyright Act
on behalf of Adobe Corporation. As a result, Linux kernel developers no longer have a
substantial meeting in the United States, choosing instead to meet in Canada and Australia, two
countries that do not have similar laws and rarely extradite for intellectual property-related
crimes of this nature. Developers felt this was necessary because the Linux kernel uses code that
was reverse engineered. Reverse engineering, by the way, is what made Dell, Phoenix, AMI,
AMD, EMC, and a large number of other companies both possible and profitable.
Some Final Words ** 35
Free Things Are Still Cheaper Than Expensive Things
When I say "competes against other free products," I m talking about pirated copies
of Windows, Office, SQL Server, Oracle, and many others competing against Linux,
OpenOffice, MySQL, Postgres, and other best-of-breed free software applications.
These applications are doing very well in environments that have little regard, legally
or culturally, for software licenses.
Free things have a velocity all their own, and people forget that. I ll leave you with a
little anecdote from when I was working for a large law firm in Washington, DC. I
was still in college studying computer science, and I ran the law firm s email net
work during the day. This was 1996 or so, and TCP/IP was clearly the big winner in
the network format wars versus NetBIOS and SNA, to a degree that no one could
have appreciated. I was in the elevator with one of the intellectual property attorneys
at the firm a fairly technical guy when he said something like: "You know, if TCP/
IP had been properly protected and patented, we could have rigged it so that every
packet cost money; they really missed the boat on that one."
Where would the Internet be if this was true? I don t know, but I do know one thing:
the Internet would not be running TCP/IP. So, enjoy the freedom of open source
software. It is there for you!
36 X Open Source and Proprietary Software Development
t ^4 CHAPTER 3
Jeremy Allison
A Tale of Two Standards
It was the best of protocols, it was the worst of protocols, it was the age of
monopoly, it was the age of Free Software, it was the epoch of openness, it was
the epoch of proprietary lock-in, it was the season of GNU, it was the season of
Microsoft, it was the spring of Linux, it was the winter of Windows....
Samba is commonly used as the "glue" between the separate worlds of Unix and
Windows, and because of that, Samba developers have to intimately understand the
design and implementation decisions made in both systems. It is no surprise that
Samba is considered one of the most difficult Free Software projects to understand
and to join, outclassed in complexity only by the voodoo black art of Linux kernel
development. Samba really isn t that hard, however, once you look at the different
standards implemented in the two systems (although some of the decisions in Win
dows can cause raised eyebrows).
In developing Samba, we re creating a bridge between the most popular standards
currently deployed in the computing world: the Unix/Linux standard of POSIX and
the Microsoft-developed de facto standard of Win32. In this chapter, I will examine
these two standards from an application programmer s perspective. In doing so, I
thought it might be instructive to look at the reasons why each of them exists, what
the intention for creating the particular standard might have been, and how well they
have stood the test of time and the needs of programmers. A historical perspective is
very important, as we look to the future and decide what standards we should
encourage governments and businesses to support, and what effect this will have on
the software landscape in the early 21st century.
Standard: (noun) A flag, banner, or ensign, especially. An emblem or flag of an
army, raised on a pole to indicate the rallying point in battle. 1
The POSIX Standard
POSIX was named (like many things in the Unix software world) by Richard Stallman. It
stands for Portable Operating System Interface-X, meaning a portable definition of a
Unix-like operating system API. The reason for the existence of the POSIX standard is
interesting and lies in the history of the Unix family of operating systems.
As is commonly known, Unix was created in 1969 at AT&T Bell Labs by Ken
Thompson and Dennis Richie. Not originally designed for commercialization, the
source code was shipped to universities around the world, most notably Berkeley in
California. One of the world s first truly portable operating systems, Unix soon splin
tered into many different versions as people modified the source code to meet their
own requirements. Once companies like Sun Microsystems and the original, preliti-
gious SCO (Santa Cruz Organization) began to commercialize Unix, the original
Unix system call API remained the core of the Unix system, but each company added
proprietary extensions to differentiate their own version of Unix. Thus began the first
of the "Unix wars" (I m a veteran, but I don t get disability benefits for the scars they
caused). For independent software vendors (ISVs), such proprietary variants were a
nightmare. You couldn t assume that code that ran correctly on one Unix would even
compile on another.
During the late 1980s, in an attempt to create a common API for all Unix systems,
and fix this problem, the POSIX set of standards was born. Because no one trusted
any of the Unix vendors, the Institute of Electrical and Electronics Engineers (IEEE)
shepherded the standards process and created the 1003 series of standards, known
as POSIX. The POSIX standards cover much more than the operating system APIs,
going into detail on system commands, shell scripting, and many other parts of what
it means to be a Unix system. I m only going to discuss the programming API stan
dard part of POSIX here because, as a programmer, that s really the only part of it I
care about on a day-to-day basis.
Few people have actually seen an official POSIX standard document, as the IEEE
charges money for copies. Back before the Web became really popular, I bought one
just to take a look at the real thing. It wasn t cheap (a few hundred dollars, as I
recall). Amusingly enough, I don t think Linus Torvalds ever read or referred to it
when he was creating Linux; he used other vendors references to it and manpage
descriptions of what POSIX calls were supposed to do.
1 http://www.dictionary.com.
Reading the POSIX standard document, however, is very interesting. It reads like a
legal document; every line of every section is numbered so that it can be referred to
in other parts of the text. It s detailed. Really detailed. The reason for such detail is
that it was designed to be a complete specification of how a Unix system has to
behave when called from an application program. The secret is that it was meant to
allow someone reading the specification to completely reimplement their own ver
sion of a Unix operating system starting from scratch, with nothing more than the
POSIX spec. The goal is that if someone writes an application that conforms to the
POSIX specification, the resulting application can be compiled with no changes on
any system that is POSIX compliant. There is even a POSIX conformance suite,
which allows a system passing the tests to be officially branded a POSIX-compliant
system. This was created to reduce costs in government and business procurement
procedures. The idea was that you specified "POSIX compliant" in your software pur
chasing requests, the cheapest system that had the branding could be selected, and it
would satisfy the system requirement.
This ended up being less useful than it sounds, given that Microsoft Windows NT
has been branded POSIX compliant and generic Linux has not.
Sounds wonderful, right? Unfortunately, reality intruded its ugly head somewhere
along the way. Vendors didn t want to give up their proprietary advantages, so each
pushed to get its particular implementation of a feature into POSIX. As all vendors
don t have implementations of all parts of the standard, this means that many of the
features in POSIX are optional usually just the one you need for your application.
How can you tell if an implementation of POSIX has the feature you need? If you re
lucky, you can test for it at compile time.
The GNU project suffered from these "optional features" more than most proprietary
software vendors because the GNU software is intended to be portable across as many
systems as possible. To make their software portable across all the weird and wonder
ful POSIX variants, the wonderful suite of programs known as GNU autoconf was cre
ated. The GNU autoconf system allows you to test to see whether a feature exists or
works correctly before you even compile the code, thus allowing an application pro
grammer to degrade missing functionality gracefully (i.e., not fail at runtime).
Unfortunately, not all features can be tested this way, as sometimes a standard can
give too much flexibility, thus causing massive runtime headaches. One of the most
instructive examples is in the pathconf ( ) call. The function prototype for
pathconf ( ) looks like this :
long pathconf (char *path, int name);
Here, char *path is a pathname on the system and int name is a defined constant giv
ing a configuration option you want to query. The constants causing problems are:
_PC_NAME_MAX
_PC_PATH_MAX
The POSIX Standard X 39
_PC_NAME_MAX queries for the maximum number of characters that can be used in a file
name in a particular directory (specified by char *path) on the system. _PC_PATH_MAX
queries for the maximum number of characters that can be used in a relative path from
the particular directory. This seems fine until you consider how Unix filesystems are
structured and put together. A typical Unix filesystem looks like Figure 3-1.
/usr /home |
r~ ~~i r~ ~n
bin I Jeremy | chris
Figure 3-1. Typical Unix filesystem
Any of the directory nodes, such as /usr/bin or /mnt, could be a different filesystem
type, not the standard Unix filesystem (maybe even network mounted). In Figure 3-1,
the /mnt/msdos_dir path has been mounted from a partition containing an old MS-
DOS-style FAT filesystem type. The maximum directory entry length on such a system
is the old DOS 8.3 maximum of 1 1 characters. But below the Windows directory could
be mounted a different filesystem type with different maximum name restrictions
maybe an NFS mount from a different machine, for example, on the path /mnt/msdos_
dir/nfs_dir. Now the pathconf ( ) can accommodate these restrictions and tell your
application about it if you remember to call it on every single possible path and path
component your application might use! Hands up, all application programmers who actu
ally do this.... Yes, I thought so. (You at the back, put your hand down. I know how
you do things in the U.S. Star Wars missile defense program, but no one programs in
ADA anymore, plus your tests never work, OK?) This is an example of something that
looks good on paper but in practical terms almost no one would use in an actual appli
cation. I know we don t in Samba, not even in the "rewritten from scratch with correct
ness in mind" Samba4 implementation.
Now let s look at an example of where POSIX gets it spectacularly wrong, and why
this happens.
First Implementation Past the Post
Any application program dealing with multiple access to files has to deal with file
locking. File locking has several potential strategies, ranging from the "lock this file
for my exclusive use" method, to the "lock these 4 bytes at offset 23 as I m going to
be reading from them soon" level of granularity. POSIX implements this kind of
functionality via the fcntl( ) call, a sort of jack-of-all-trades for manipulating files
(hence "fcntl - file control"). It s not important to know exactly how to program
this call. Suffice it to say that a code fragment to set up such a byte range lock looks
something like this:
int fd = open("/path/to/file", 0_RDWR);
Now, set up the struct flock structure to describe the kind of byte range lock we need:
int ret = fcntl(fd, F_SETLKW, &flock_struct);
If ret is zero, we got the lock. Looks simple, right? The byte range lock we got on the
region of the file is advisory. This means that other processes can ignore it and are
not restricted in terms of reading or writing the byte range covered by the region
(that s a difference from the Win32 way of doing things, in which locks are manda
tory; if a lock is in place on a region, no other process can write to that region, even
if it doesn t test for locks). An existing lock can be detected by another process doing
its own fcntl ( ) call, asking to lock its own region of interest. Another useful feature
is that once the file descriptor open on the file (int fd in the previous example) is
closed, the lock is silently removed. This is perfectly acceptable and a rational way of
specifying a file locking primitive; just what you d want.
However, modern Unix processes are not single threaded. They commonly consist of
a collection of separate threads of execution, separately scheduled by the kernel.
Because the lock primitive has a per-process scope, this means that if separate
threads in the same process ask for a lock over the same area, it won t conflict. In
addition, because the number of lock requests by a single process over the same
region is not recorded (according to the spec), you can lock the region 10 times, but
you need to unlock it only once. This is sometimes what you want, but not always:
consider a library routine that needs to access a region of a file but doesn t know if
the calling processes have the file open. Even if an open file descriptor is passed into
the library, the library code can t take any locks. It can never know if it is safe to
unlock again without race conditions.
This is an example of a POSIX interface not being future proofed against modern
techniques such as threading. A simple amendment to the original primitive allow
ing a user-defined "locking context" (like a process ID) to be entered in the struct
flock structure used to define the lock would have fixed this problem, along with
extra flags allowing the number of locks per context to be recorded if needed.
But it gets worse. Consider the following code:
int second_fd;
int ret;
struct flock lock;
int fd = open( "/path/to/file", 0_RDWR);
First Implementation Past the Post X 41
/* Set up the "struct flock" structure to describe the
kind of byte range lock we need. */
lock.ljtype = F_WRLCK;
lock.l_whence = SEEK_SET;
lock.l_start = 0;
lock.l_len = 4;
lock.l_pid = getpid( );
ret = fcntl(fd, F_SETLKw, &lock);
/* Assume we got the lock above (ie. ret == o). */
/* Get a second file descriptor open on
the original file. Assume this succeeds. */
second_fd = dup(fd);
/* Now immediately close it again. */
ret = close(second_fd);
What do you think the effect of this code on the lock created on the first file descrip
tor should be (so long as the close ( ) call returns zero)? If you think it should be
silently removed when the second file descriptor is closed, congratulations you
have the same warped mind as the people who implemented the POSIX spec. Yes,
that s correct. Any successful close ( ) call on any file descriptor referencing a file
with locks will drop all the locks on that file, even if they were obtained on another,
still-open file descriptor.
Let me be clear: this behavior is never what you want. Even experienced programmers
are surprised by this behavior, because it makes no sense. After I ve described this to
Linux kernel hackers their responsse have been that of stunned silence, followed by
"but why would it do that"? 2
The reason is historical and in my opinion, reflects a flaw in the POSIX standards pro
cess, one that hopefully won t be repeated in the future. By talking to longtime BSD
hacker and POSIX standards committee member, Kirk McKusick (he of the BSD dae
mon artwork), I finally tracked down why this insane behavior was standardized by the
POSIX committee. As he recalls, AT&T took the current behavior to the standards
committee as a proposal for byte range locking, as this was how their current code
To discover if this functionality was actually correctly used by any application program or if
anything really depended on it, Andrew Tridgell, the original author of Samba, once hacked the
kernel on his Linux laptop to write a kernel debug message if ever this condition occurred. After
a week of continuous use, he found one message logged. When he investigated, it turned out to
be a bug in the exportf s NFS file exporting command, whereby a library routine was opening
and closing the /etc /exports file that had been opened and locked by the main exportf s
code. Obviously, the authors didn t expect it to do that either.
42 x> A Tale of Two Standards
implementation worked. The committee asked other ISVs if this was how locking
should be done. The ISVs who cared about byte range locking were the large (at the
time) database vendors, such as Oracle, Sybase, and Informix. All these companies did
byte range locking within their own applications, and none of them depended on, or
needed, the underlying operating system to provide locking services for them. So their
unanimous answer was "we don t care." In the absence of any strong negative feedback
on a proposal, the committee added it "as is" and took as the desired behavior the spe
cifics of the first implementation, the brain-dead one from AT&T.
The "first implementation past the post" style of standardization has saddled POSIX
systems with one of the most broken locking implementations in computing history.
My hope is that eventually Linux will provide a sane superset of this functionality
that can be adopted by other Unixes and eventually find its way back into POSIX.
OK, having dumped on POSIX enough, let s look at one of the things that POSIX
really got right and that is an example worth following in the future.
Future Proofing
One of the great successes of POSIX is the ease in which it has adapted to the change
from 32-bit to 64-bit computing. Many POSIX applications were able to move to a 64-
bit environment with very little or no change, and the reason for that is abstract types.
In contrast to the Win32 API (which even has a bit-size dependency in its very
name), all of the POSIX interfaces are defined in terms of abstract datatypes. A file
size in POSIX isn t described as a "32-bit integer" or even as a C-language type of
unsigned int, but as the type off_t. What is off_t? The answer depends completely
on the system implementation. On small or older systems, it is usually defined as a
signed 32-bit integer (it s used as a seek position so that it can have a negative value),
and on newer systems (Linux, for example) it s defined as a signed 64-bit integer. As
long as applications are careful to cast integer types only to the correct off_t type
and use these for file-size manipulation, the same application will work on both
small and large POSIX systems.
This wasn t done all at once, because most commercial Unix vendors have to provide
binary compatibility to older applications running on newer systems, so POSIX had to
cope with both 32-bit file-sized applications running alongside newer 64-bit-capable
applications on the new 64-bit systems. The way to make this work was determined by
the Large File Support working group, which finished its work during the mid-1990s.
The transition to 64 bits was seen as a three-stage process. Stage one was the original
old 32-bit applications; stage two was seen as a transitional stage, where new ver
sions of the POSIX interfaces were introduced to allow newer applications to explic
itly select 64-bit sizes, and stage three was where all the original POSIX interfaces
default to 64-bit clean.
Future Proofing 2* 43
As is usual in POSIX, the selection of what features to support was made available
using compile-time macro definitions that could be selected by the application
writer. The macros used were:
_LARGEFILE_SOURCE
_LARGEFILE64_SOURCE
_FILE_OFFSET_BITS
If _LARGEFILE_SOURCE is defined, a few extra functions are made available to applica
tions to fix the problems in some older interfaces, but the default file access is still 32
bit. This corresponds to stage one, described earlier.
If _LARGEFILE64_SOURCE is defined, a whole new set of interfaces is available to POSIX
applications that can be explicitly selected for 64-bit file access. These interfaces
explicitly allow 64-bit file access and have 64 coded into their names. So, open( )
becomes open64( ), lseek( ) becomes Iseek64( ), and a new abstract datatype called
of f 64_t is created and used instead of the of f _t file-size datatype in such structures
as struct stat64. This corresponds to stage two.
_FILE_OFFSET_BITS represents stage three; this macro can be undefined or set to the val
ues 32 or 64. If undefined or set to 32, it corresponds to stage one (_LARGEFILE_SOURCE).
If set to 64, all the original interfaces such as open( ) and lseek( ) are transparently
mapped to the 64-bit clean interfaces. This is the end stage of porting to 64 bits, where
the underlying system is inherently 64 bit, and nothing special needs to be done to make
an application 64-bit aware. On a native 64-bit system that has no older 32-bit binary
support, this becomes the default.
As you can see, if a 32-bit POSIX application had no embedded dependencies on file
size, simply adding the compile-time flag -D_FILE_OFFSET_BITS=64 would allow a
transparent port to a 64-bit system. There are few such applications, though, and
Samba was not one of them. We had to go through the stage-two pain of using 64-bit
interfaces explicitly (which we did around 1998) before we could track down all the
bugs associated with moving to 64 bits. But we didn t have to rewrite completely,
and I consider that a success of the underlying standard.
This is an example of how the POSIX standard was farsighted enough to define some
interfaces that were so portable and clean that they could survive a transition of
underlying native CPU word length. Few other standards can make that claim.
Wither POSIX?
The POSIX standard has not been static; it has managed to evolve (although some
would argue too slowly) over time. A major step forward was the establishment of
the Single Unix Specification (SUS), which is a superset of POSIX developed in 1998
and adopted by all the major Unix vendors and shepherded by the Unix standards
body, "the Open Group." It was a great leap forward when this specification was
44 xC A Tale of Two Standards
finally made available for free on the Web from the Open Group web site at http://
www.unix.org. It certainly saved me from having to hunt down cheap POSIX specifi
cations in secondhand bookshops in Mountain View, California.
The expanded SUS now covers such issues as real-time programming, concurrent pro
gramming via the POSIX thread (pthread) interfaces, and internationalization and
localization, but unfortunately it does not cover file Access Control Lists (ACLs). Sadly,
that specification was never fully agreed on, and so has never made it into the official
documents. Interestingly enough, the SUS also doesn t cover the GUI elements,
because the history of Unix as primarily a server operating system has meant that GUIs
have never been given the priority necessary for Unix to become a desktop system.
Looking at what happened with ACLs is instructive when considering the future of
POSIX and the SUS. Because ACLs were sorely needed in real-world environments,
individual Unix vendors, such as SGI, Sun, HP, and IBM, added them to their own
Unix variants. But without a true standards document, they fell into their old evil
ways and added them with different specifications. Then along came Linux....
Linux changed everything. In many ways, the old joke is true: Linux is the Unix
defragmentation tool. 3 As Linux became more popular, programs originally written
for other Unixes were first ported to it, and then after a while were written for it and
then ported to other platforms. This happened to Samba. Sun s SunOS on a SPARC
system was, at first, our primary user platform, but after five years or so we rapidly
migrated to Linux on Intel x86 systems. We now develop almost exclusively on
Linux, and from there port to other Unix systems.
This means the Linux interfaces are starting to take over as the most important stan
dards for Unix-like systems to follow, in some ways supplanting POSIX and the SUS.
The ACL implementation for Linux was added into the system, at first via a patch by
Andreas Griinbacher, held externally to the main kernel tree. Finally it was adopted
by the main Linux vendors, SuSE (now Novell) and Red Hat, and has become part of
the official kernel. Other free Unix systems such as FreeBSD quickly followed with
their own implementation of the last draft of the POSIX ACL specification, and now
there are desktop GUI and other application programs that use the Linux ACL inter
faces. As this code is ported to other systems, the pressure is on them to conform to
the Linux APIs, not to any standards document. Sun has announced that its Solaris
10 on Intel release will run Linux applications "better than Linux" and will be fully
compatible at the system call level with Linux applications. This means Sun must
have mapped the Linux ACL interface onto the Solaris one. Is that a good thing?
In a world where Linux is rapidly becoming the dominant version of Unix, does
POSIX still have relevance, or should we just assume Linux is the new POSIX?
3 This was inspired by novice system administrators coming to Unix from the Windows platform
for the first time and asking "where is the system defragmentation tool?", the concept of a
filesystem designed well enough not to need one being outside their experience.
Wither POSIX? JJ 45
The Win32 (Windows) Standard
Win32 was named for an expansion of the older Microsoft Windows interface,
renamed the Win 16 interface once Microsoft was shipping credible 32-bit systems. 1
have a confession to make. In my career, I completely ignored the original 16-bit
Windows on MS-DOS. At that time, I was already working on sane 32-bit systems
(68000 based), and dealing with the original insane 8086 segmented architecture
was too painful to contemplate. Win32 was Microsoft s attempt to move the older
architecture beyond the limitations of MS-DOS and into something that could com
pete with Unix systems and to a large extent Microsoft succeeded spectacularly.
The original 16-bit Windows API added a common GUI on top of MS-DOS, and also
abstracted out the lower-level MS-DOS interfaces so that application code had a
much cleaner "C" interface to operating system services (not that MS-DOS provided
many of those). The Win32 Windows API was actually the "application" level API
(not the system call level; I ll discuss that in a moment) for a completely new operat
ing system that would soon be known as Windows NT ("New Technology"). This
new system was designed and implemented by Dave Cutler, the architect of Digital
Equipment Corporation s VMS system, long a competitor to Unix. It does share some
similarities with VMS. The interface choice for applications was very interesting, sit
ting on top of a system call interface that looks like Figure 3-2.
Figure 3-2. Architecture of the Win32 API
The idea behind the Windows NT kernel was that it could host several "sub
system" system call interfaces, providing completely different application behavior
from the same underlying kernel. It was meant to be a completely customizable
operating system, providing different kernel "personalities" any ISV might require.
The DOS subsystem and the (not-shown) 16-bit Windows subsystem were essen
tial, as they provided backward compatibility for applications running on MS-DOS
and 16-bit Windows; the new operating system would have gathered little accep
tance had it not been able to run all the old MS-DOS and Windows applications.
46
A Tale of Two Standards
The OS/2 subsystem was designed to allow users of text mode OS/2 applications
(which was at one time a Microsoft product) to port them to Windows NT.
The two interesting subsystems are the original POSIX subsystem and the new Win32
subsystem. The POSIX subsystem was added, as the POSIX standard had become very
prevalent in procurement contracts. Many of these valuable contracts were available
only to systems that passed the POSIX conformance tests. So Microsoft added a mini
mal POSIX subsystem into the new Windows NT operating system. This original sub
system was, I think it s fair to say, deliberately crippled to make it unuseful for real-
world applications: applications using it had no network access and no GUI access, so
although a POSIX-compliant system might be required in a procurement contract,
there usually was no requirement that the applications running on that system also had
to be POSIX compliant. This allowed new applications using the Microsoft-preferred
Win32 subsystem to be used instead. All might not have been lost if Microsoft had
documented the internal subsystem interface, allowing third-party ISVs to create their
own Windows NT kernel subsystems, but Microsoft kept this valuable information to
itself (there was an exception to this, which I ll discuss shortly).
So, let s examine the Win32 standard API, the interface designed to run on top of the
Win32 kernel subsystem. It would be logical to assume that, like the POSIX system
calls, the calls defined in the Win32 API would closely map to kernel-level Win32
subsystem system calls. But that would be incorrect. It turns out that, when released,
the Win32 subsystem system call interface was completely undocumented. The calls
made from the application-level Win32 API were translated, via various shared
libraries (DLLs in Windows parlance) mainly the NTDLLDLL library into the real
Win32 subsystem system calls.
Why do this, one might ask? Well, the official reasoning is that it allows Microsoft to
tune and modify the system call layer at will, improving performance and adding fea
tures without being forced to provide backward compatibility application binary inter
faces (or ABIs for short). The more nefarious reasoning is that it allows Microsoft appli
cations to cheat, and call directly into the undocumented Win32 subsystem system call
interface to provide services that competing applications cannot. Several Microsoft
applications were subsequently discovered to be doing just that, of course. One must
always remember that Microsoft is not just an operating system vendor, but also the
primary vendor of applications that run on its platforms. These days, this is less of a
problem, as there are several books that document this system call layer, and there are
several applications that allow snooping on any Windows NT kernel calls made by
applications, allowing any changes in this layer to be quickly discovered and pub
lished. But it left a nasty taste in the mouths of many early Windows NT developers
(myself included).
The Win32 (Windows) Standard X 47
The original Win32 application interface was, on the surface, very well documented
and cheaply available in paper form (five books at only $20 each; a bargain com
pared to a POSIX specification). Like most things in Windows, on the surface it looks
great. It covers much more than POSIX tries to standardize, and so offers flexible
interfaces for manipulating the GUI, graphics, sound, and pen computing, as well as
all the standard system services such as file I/O, file locking, threading, and security.
Then you start to program with it. If you re used to the POSIX specifications, you
almost immediately notice something is different. The details are missing. It s fuzzy
on the details. You notice it the first time you call an API at runtime, and it returns
an error that s not listed anywhere in the API documentation. "That s funny...." you
think. With POSIX, all possible errors are listed in the return codes section of the API
call. In Win32, the errors are a "rough guide."
The lack of detail is one of the reasons that the Wine project finds it difficult to cre
ate a working implementation of the Win32 API on Linux. How do you know when
it s done? Remember that Linus, with some help, was able to create a decent POSIX
implementation within a few years. The poor Wine developers have been laboring at
this for 12 years, and it s still not finished. There s always one more wrinkle, one
more undocumented behavior that some critical application depends on. Reminds
me of Samba somehow, and for very similar reasons.
It s not entirely Microsoft s fault. It hasn t documented its API because it hasn t
needed to. POSIX was documented in detail due to need: the need of the developers
creating implementations of the standard. Microsoft knows that whatever it makes
the API do in the next service pack, that s still the Win32 standard. "Wherever you
go, there you are," so to speak.
However, the Win32 design does some things very well; security, for instance. Secu
rity isn t the number one thing people think of when considering Windows, but in
the Win32 API, security is a very great concern. In Win32, every object can be
secured, and a property called a Security Descriptor, which contains an ACL, can be
attached to it. This means objects such as processes, files, directories, and even
Windows can have ACLs attached. This is much cleaner than POSIX, in which only
objects in the filesystem can have ACLs attached to them.
So, let s look at a Win32 ACL. As in POSIX, all users and groups are identified by a
unique identifier. On POSIX, it s a uid_t type for users, and a gid_t type for groups.
In Win32, both are of type SID or security identifier. A process or thread in Win32
has a token attached to it that lists the primary SID of the process owner and a list of
secondary group SID entries this user belongs to. Like in POSIX, this is attached to a
process at creation time and the owner can t modify it to give himself more privi
leges. A Win32 ACL consists of a list of SID entries with an attached bit mask identi
fying the operations this SID entry allows or denies. Sounds reasonable, right? But
the devil is in the details (see Figure 3-3).
48 X A Tale of Two Standards
Win32 process token
Owner: SID
Group: SID1
List:
Win32 security desciptor
Owner: SID
Primary group: SID-A I
Access control list:
Deny:[f*]:<bitmask>: SID 8
Allow: [P]:<bitmask>: SID C
Allow: ff]:<bitmask>: SID D
[f*] represents flags for this entry
Figure 3-3. Win32 access control
Each SID entry in an ACL can be an allow entry or a deny entry. Their order is impor
tant. Reorder a list of entries and swap a deny entry with an allow entry, and the mean
ing of the ACL can change completely. POSIX ACLs don t have that problem because
the evaluation algorithm defines the order in which entries are examined. In addition,
the flags defining the entry (marked as [f*] in Figure 3-3) control whether an entry is
inherited when the ACL is attached to a "container object" (such as a directory in the
filesystem) and may also affect other attributes of this particular entry.
The bit mask enumerates the permissions that this entry allows or denies. But the
permissions are (naturally) different, depending on what object the ACL is attached
to. Let s look at the kinds of permissions available for a file object:
DELETE
Delete the object.
READ_CONTROL
Read the ACL on an object.
WRITE_DAC
Write the ACL on an object.
FILE_READ_DATA
Read from the file.
FILE_READ ATTRIBUTES
Read file metadata.
FILE_READ_EA
Read extended attributes (if the file has any).
FILE_WRITE_DATA
Write to the file.
FILE_WRITE_EA
Write extended attributes (if the file has any).
The Win32 (Windows) Standard X 49
FILE_EXECUTE
Open for execute (why do we need the . EXE tag then?).
SYNCHRONIZE
A permission related to an open file handle, not the file.
And this is one of the simpler kinds of permission-bearing objects in Win32.
If the Win32 API treats security so seriously, why does Windows fail most security
tests in the real world? The answer is that most applications ignore this wonderful,
flexible security mechanism because it s just too hard to use just like the problem
with the POSIX pathconf ( ) call. No one can use the security mechanism correctly;
applications would degenerate into a mess. It doesn t help that Microsoft, having
realized the APIs controlling security were too difficult to use, keeps adding func
tions to simplify this mess, sometimes also adding new APIs with a new service pack.
In addition, as Microsoft has moved in the "Active Directory" world, it has extended
the underlying semantics of the security mechanism, adding new flags and behaviors.
Try taking a look at the "file security dialog" in Windows 2000. It s incomprehensi
ble. No one, especially a system administrator, can keep track of this level of detail
across their files. Everyone just sets one default ACL on the root of a directory hierar
chy and hopes for the best. Most administrators usually want to do two simple things
with an ACL: allow group X but not user Y, and allow group X and also user Z. This
is just about comprehensible with POSIX ACLs, although those are near the limit of
complexity that people can deal with. The Win32 security system is orders of magni
tude more complex than that; it s hopelessly overdesigned. Computer scientists love
it, as it s possible to do elegant little proofs of how secure it is, but in the real world,
it s simply too much to deal with effectively great idea, adding ACLs to every sys
tem object, but a real shame about the execution.
Just to spread the blame around, the networking "experts" who designed the latest ver
sion of Sun s network filesystem, NFS version 4, fell in love with this security mecha
nism and decided it would be a great idea to add it into the NFSv4 specification. They
probably thought it would make interoperability with Windows easier. Of course, they
didn t notice that Microsoft had been busily extending the security mechanism as Win
dows has developed, so they standardized on an old version of the Windows ACL
mechanism, as Microsoft documented it (not as it actually works). So now, the Unix
world has to deal with this mess or rather, a new network filesystem with an ACL
model that is almost, but not quite, compatible with Windows ACLs, and that is com
pletely alien to anything currently found on Unix. I sometimes feel Unix programmers
are their own worst enemies.
SO X A Tale of Two Standards
The Tar Pit: Backward Compatibility
Now, as an example of where Win32 got things spectacularly wrong, 1 want to look at
a horror from the past that unfortunately got added into the Win32 interfaces due to
the MS-DOS heritage. My pet hate with Win32 is the idea of "share modes" on open
files. In my opinion, this one single legacy design decision has probably done more
than any other to hold back the development of cluster-aware network filesystems on
Win32 systems.
Under POSIX, an open( ) call is very simple. It takes a pathname to open, the way in
which you want to access or create the file (read, write, or both with various create
types), and a permission mask that gets applied to files you do create. Under Win32,
the equivalent call, CreateFile( ), takes seven parameters, and the interactions among
them can be ferociously complex. The parameter that causes all the trouble is the
ShareMode parameter, which can take values of any of the following constants OR ed
together:
FILE_SHARE_READ
Allow others to open for read.
FILE_SHARE_WRITE
Allow others to open for write.
FILE_SHARE_NONE
Don t allow any other opens.
FILE_SHARE_DELETE
Allow open for delete intent.
To make these semantics work, any Windows kernel dealing with an open file has to
know about every other application on the system that might have this file open.
This was fine back in the single-machine MS-DOS days, when these semantics were
first designed, but it is a complete disaster when dealing with a clustered filesystem in
which a multitude of connected file servers may want to give remote access to the
same file, even if they serve out the file read-only to applications. They have to con
sult some kind of distributed lock management system to keep these MS-DOS-inher
ited semantics working. While this can be done, it complicates the job enormously
and means cluster communication on every CreateFile( ) and CloseHandle( ) Zcall.
This is the bane of backward compatibility. This idea of "share modes" arbitrating what
access concurrent applications can have to a file is the cause of many troubles on a
Windows system. Ever wonder why Windows has a mechanism built in to allow an
application to schedule a file to be moved, but only after a reboot? Share modes in
action. Why are some files on a Windows server system impossible to back up due to
"another program is currently using this file" errors? Share modes again. There is no
security permission that can prevent a user from opening a file with, effectively, "deny
The Tar Pit: Backward Compatibility * 51
all" permissions. If you can open the file for read access, you can get a share mode on
it, by design. Consider a network-shared copy of Microsoft Office. Any user must be
able to open the file WINWORD.EXE (the binary file containing Microsoft Word) to exe
cute it. Given these semantics, any user can open the file with READ_DATA access with
the ShareMode parameter set to FILE_SHARE_NONE and thus block use of the file, even
over the network. Imagine on a Unix system, being able to open the /etc/passwd file
with a share mode and deny all other processes access. Watch the system slowly grind
to a halt as the other processes get stuck in this tar pit....
World Domination, Fast
I ve heaped enough opprobrium on Win32. Let s give it a break and consider some
thing the designers really did get right, and one of the advantages it has over POSIX.
I m talking about the early adoption of the Unicode standard in Win32. When
Microsoft was creating Win32, one of the things it realized was that this couldn t just
be another English-only, American- and European-centric standard. It had to be able to
not only cope with, but also encourage, applications written in all world languages
(never accuse Microsoft of thinking small in its domination of the computing world).
Given those criteria, its adoption of Unicode as the native character set for all the sys
tem calls in Win32 was a stroke of genius. Even though the Asian countries aren t
particularly fond of Unicode, because it merges several character sets they consider
separate into one set of code points, Unicode is the best way to cope with the
requirements of internationalization and localization in application development.
To allow older MS-DOS and Win 16 applications to run, the Win32 API is available
in two different forms, selectable by a compiler #def ine of -DUNICODE (it also helps if
you own the compiler market for Windows, as Microsoft does, as you can standard
ize tricks like this). The older code-page-based applications call Win32 libraries that
internally convert any string arguments to 16-bit Unicode and then call the real
Win32 library interface, which, like the Windows NT kernel, is Unicode only.
In addition, Win32 comes with a full set of library interfaces to split out the text
messages an application may need to display into resource files so that ISVs can eas
ily have them translated for a target market. This eases the internationalization and
localization burdens considerably for vendors.
What is more useful, but not as obvious, is that making the Win32 standard natively
use Unicode meant developers were immediately confronted with the requirements
of multilingual code development. Many applications written in English-speaking (or
Western European eight-bit character set-compatible) countries are badly written,
making the assumption that a character will always fit within one byte. The early ver
sions of Samba definitely made that mistake and retrofitting multibyte character set
52 *J A Tale of Two Standards
handling into old code is a real bear to get right. 1 know, because 1 was the person
who first had to work on this for Samba (later I got some much-needed help from
Andrew), so I may be a little touchy on this subject.
Whenever I did Win32 development, I immediately designed with non-English lan
guages in mind, and wrote everything with the abstract type TCHAR (one of the few
useful abstract types in Win32), which is selectable at compile time using the Uni
code defined to be either wchar_t with Unicode turned on, or unsigned char with
Unicode turned off. Getting yourself in the right multibyte character set mindset
from the beginning eliminates a whole class of bugs that you get when having to con
vert a quick "English-only" hacked-up program into something maintainable for dif
ferent languages. POSIX has been catching up over the years with the iconv( ) func
tionality to cope with character set conversions, and Sun designed gettext( )
interfaces for localization, but Win32 had it all right from the start.
Wither Win32?
As with POSIX, the Win32 standard has not remained static over time. Microsoft has
continued to develop and extend it, and has the advantage that anything it publishes
immediately becomes the "standard," as is the case with all single vendor-defined
standards.
However, Microsoft is attempting to deemphasize Win32 as it moves into its new .NET
environment and the new world of "managed code." Managed code is code running
under the control of an underlying virtual machine (called the Common Language
Infrastructure, or CLI, in .NET) and can be made to prevent the direct memory access
that is the normal mode of operation of an API designed for C coding, such as Win32
or POSIX. Free Software is also making a push into this area, with the Mono project,
which implements the Microsoft C# language and .NET-managed code environment
on Linux and other POSIX systems.
Even if Microsoft is as successful as it hopes to be in pushing ISV programmers to
convert to .NET and managed code using its new C# language, the legacy of applica
tions developed in C using the Win32 API will linger for decades to come. ISV pro
grammers are an ornery lot, especially people who have mastered the Win32 API,
due to its less-than-complete documentation.
What seems to happen over the years is that experienced Win32 programmers gain a
sort of folk knowledge about the Win32 APIs i.e., how they really work versus
what the documentation says. I often hang out on Usenet Windows discussion
groups, and the attitudes of the experienced Windows programmers are very inter
esting: they usually hate telling novices how stuff works. It s almost as if having
learning Windows is a badge of honor, and they don t want to make earning that too
easy for the neophytes. They exude an air of "they must suffer as I did."
Wither Win32? X 53
As Microsoft becomes less interested in Win32 with the release of its new Longhorn Win
dows client and the move to managed code, is it possible for Microsoft to lose control of
it? The POSIX standard is so complete because it was designed to allow programmers
reading the standards documents to re-create a POSIX system from scratch. The Win32
standard is nowhere near as well documented as that. However, there is hope in the
Wine project, which is attempting to re-create a version of the Win32 API that is binary
compatible with Windows on Intel x86 systems. Wine is, in effect, a second implementa
tion of the Win32 system, making it closer to a true vendor-independent standard.
Efforts taking place at companies such as Code Weavers and Transgaming Technologies
are very promising; I just finished playing the new Windows-only game Half -Life 2 on my
desktop Linux system, using the Wine technology. This is a significant achievement for
the Wine code and bodes well for the future.
Choosing a Standard
BETWEEN TWO EVILS, I ALWAYS LIKE TO TAKE THE ONE I VE NEVER TRIED BEFORE.
Mae West
So, what should we choose when examining what standards to support and develop
applications for? What should we recommend to businesses and governments that
are starting to look closely at the open source/free software options available?
It s important that businesses and governments selecting standards-based products
pay attention to open standards. No more of the Microsoft Word .DOC format stan
dard (which suffers from the same problem as Win32 in terms of it being single-ven
dor controlled). No de facto vendor standards, no matter how convenient. They need
to select standards that are at the same level as POSIX namely, standards to the
level that other implementations can be created from the documentation. It s simple
to tell when a standard meets that criterion because other implementations of it exist.
The interesting thing is that both POSIX and Win32 standards are now available on
both systems. On Linux, we have the POSIX standard as native, and the Wine project
provides a binary-compatible layer for compiled Win32 programs that can run many
popular Win32 applications. Perhaps more interestingly for programmers, the Wine
project also includes a Linux shared library, winelib, which allows Win32 applica
tions to be built from source code form on POSIX systems. What you end up with is
an application that looks like a native Windows application, but can be run on non-
Intel platforms; something that early versions of Windows NT used to support, but
now is restricted to x86-compatible processors. Taking your Win32 application and
porting it using winelib is an easy way to get your feet wet in the POSIX world,
although it won t look like a native Linux application (this may be a positive thing if
your users are used to a Windows look and feel).
54
If you ve already gone the .NET and C# route, using the Mono project may enable
your code to run on POSIX systems.
On Windows, there is now a full POSIX subsystem, supported by Microsoft and avail
able for free. Earlier 1 alluded to Microsoft s reluctance to release information on how to
create new subsystems for the Windows NT kernel, but it turns out that earlier in its
history Microsoft was not so careful. A small San Francisco-based company, Softway
Systems, licensed the documentation and produced a product called OpenNT (later
renamed Interix), which was a replacement for Microsoft s originally crippled POSIX
subsystem. Unfortunately, OpenNT didn t sell very well; someone cruelly referred to it
as having "all the application availability of Linux, with the stability of Windows." As
the company was failing, Microsoft bought it (probably to bring the real gem of the
Windows kernel subsystem interface knowledge back in-house) and used it to create
its Services for Unix (SFU) product. SFU contains a full POSIX environment, with a
software development kit allowing applications to be written that have access to net
working and GUI APIs. The applications written under it run as full peers with the
mature Win32 applications, and users can t tell the difference.
Recently Mcrosoft made SFU available as a free download to all Windows users. I
like to think the free availability of Samba had something to do with this, but maybe
I m flattering the Samba team too much. As I like to say in my talks, "If you re into
piloting Samba on Linux in your organization, you re paying too much for your
Microsoft software." But what this means is that if you want to write a completely
portable application, the one standard you can count on to be there and fully imple
mented and supported on Windows, Linux, Solaris, Apple Mac OS X, HP-UX, AIX,
IRIX, and all the other Unix systems out there is POSIX.
So, if you ll excuse me, I m going to look at porting parts of Samba to Windows....
Choosing a Standard ^C 55
t CHAPTER 4
Ben Laurie
Open Source and Security
More than two years ago, in a fit of frustration over the state of open source security,
I wrote my first and only blog entry 1 (for O Reilly s Developer Weblogs):
June and July were bad months for free software. First Apache chunked encod
ing vulnerability, 2 and just when we d finished patching that, we get the
OpenSSH hole. 3 Both of these are pretty scary the first making every single
web server potentially exploitable, and the second makes every remotely man
aged machine vulnerable.
But we survived that, only to be hit just days later with the BIND resolver prob
lems. 4 Would it ever end? Well, there was a brief respite, but then, at the end of
July, we had the OpenSSL buffer overflows. 5
All of these were pretty agonising, but it seems we got through it mostly unscathed,
by releasing patches widely as soon as possible. Of course, this is painful for users
and vendors alike, having to scramble to patch systems before exploits become
available. I know that pain only too well: at The Bunker, 6 we had to use every avail-
1 http://www.oreillynet.com/pub/wlg/2004.
2 http://cve.mitre.org/cgi-bin/cvename. cgi?name=CVE-2002-0392.
3 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-0639.
4 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-0651 .
5 http://cve.mitre.org/cgi-biiticvename.cgi7name~CAN-2002-0656.
6 Back in those days, The Bunker belonged to A.L. Digital Ltd., and it wasn t called The Bunker
Secure Hosting.
"
able sysadmin for days on end to fix t he problems, which seemed to be arriving
before we d had time to catch our breath from the previous one.
But I also know the pain suffered by the discoverer of such problems, so I
thought I d tell you a bit about that. First, I was involved in the Apache chunked
encoding problem. That was pretty straightforward, because the vulnerability
was released without any consultation with the Apache Software Foundation, a
move I consider most ill advised, but it did at least simplify our options: we had
to get a patch out as fast as possible. Even so, we thought we could take a little
bit of time to produce a fix, since all we were looking at was a denial-of-service
attack, and let s face it, Apache doesn t need bugs to suffer denial of service all
this did was make it a little cheaper for the attacker to consume your resources.
That is, until Gobbles 7 came out with the exploit for the problem. Now, this
really is the worst possible position to be in. Not only is there an exploitable
problem, but the first you know of it is when you see the exploit code. Then we
really had to scramble. First we had to figure out how the exploit worked. I fig
ured that out by attacking myself and running Apache under gdb. I have to say
that the attack was rather marvelously cunning, and for a while I forgot the
urgency of the problem while I unravelled its inner workings. Having worked
that out, we were in a position to finally fix the problem, and also, perhaps more
importantly, more generically prevent the problem from occurring again
through a different route. Once we had done that, it was just a matter of writing
the advisory, releasing the patches, and posting the advisory to the usual places.
The OpenSSL problems were a rather different story. I found these whilst work
ing on a security review of OpenSSL commissioned by DARPA 8 and the USAF. 9
OpenSSL is a rather large and messy piece of code that I had, until DARPA
funded it, hesitated to do a security review of, partly because it was a big job,
but also partly because I was sure I was going to find stuff. And sure enough, I
found problems (yes, I know this flies in the face of conventional wisdom
many eyes may be a good thing, but most of those eyes are not trained observ
ers, and the ones that are do not necessarily have the time or energy to check the
code in the detail that is required). Not as many as I expected, but then, I
haven t finished yet (and perhaps I never will, it does seem to be a never-ending
process). Having found some problems, which were definitely exploitable, I was
then faced with an agonising decision: release them and run the risk that I
would find more, and force the world to go through the process of upgrading
again, or sit on them until I d finished, and run the risk that someone else would
discovered them and exploit them.
7 A hacker (or group of hackers, it is not known which).
8 The United States Defense Advanced Research Projects Agency, responsible for spending a great
deal of money on national security in this case, for a thing known as CHATS, or Composable
High Assurance Trusted Systems.
9 Yes, I do mean the United States Air Force.
SB X Open Source and Security
In fact, I dithered on this question for at least a month then one of the prob
lems I d found was fixed in the development version without even being noted
as a security fix, and another was reported as a bug. I decided life was getting
too dangerous and decided to release the advisory, complete or not. Now, you
might think that not being under huge time pressure is a good thing, but in
some ways it is not. The first problem came because various other members of
the team thought I should involve various other security alerting mechanisms
for example, CERT 10 or a mailing list operated by most of the free OS vendors. 11
But there s a problem with this: CERT s process is slow and cumbersome and I
was already nervous about delay. Vendor security lists are also dangerous
because you can t really be sure who is reading them and what their real inter
ests are. And, more deeply, I have to wonder why vendors should have the ben
efit of early notification, when it is my view that they should arrange things so
that their users could use my patches as easily as I can. I build almost every
thing from original source, so patches tend to be very easy to use. RPMs 12 and
ports 13 make this harder, and vendors who release no source at all clearly com
pletely screw up their customers. Why should I help people who are getting in
the way of the people who matter (i.e., the users of the software)?
Then, to make matters worse, one of the more serious problems was reported
independently to the OpenSSL team by CERT, who had been alerted by Defcon. 14
I was going, and there was no way I was delaying release of the patches until after
DeFcon. So, the day before I got on a plane, I finally released the advisory. And
the rest is history.
So, what s the point of all this? Well, the point is this: it was a complete waste of
time. I needn t have agonised over CERT or delay or any of the rest of it. Because
half the world didn t do a damn thing about the fact they were vulnerable, and
because of that, as of yesterday, a worm is spreading through the Net like wild
fire.
Why do I bother?
Two years later, I am still bothering, so I suppose that I do think there s some point.
But there are interesting questions to ask about open source security is it really true
that "many eyes" doesn t work? How do we evaluate claims about the respective vir
tues of open and closed source security? Has anything changed in those two years?
What is the future of open source security?
10 CERT is an organization funded to characterize security issues and alert the appropriate
parties a job they do not do very well, in my opinion.
1 1 Apparently, I m not one, so I m not on this list.
12 One of those recursive definitions programmers love: RPM Package Manager, a widely used
system for distributing packaged open source software, particularly for various flavors of Linux.
13 FreeBSD s package management system. Also used by other BSDs.
14 DefCon is a popular hacker s convention, held annually in Las Vegas.
* cq
K1 33
Many Eyes
Although it s still often used as an argument, it seems quite clear to me that the
"many eyes" argument, 15 when applied to security, is not true. It is worth remember
ing what was originally said: "Many eyes make all bugs shallow" (Eric S. Raymond). I
believe this is actually true, if read in the right context. Once you have found a bug,
many eyes will, and indeed, do, make fixing it quick and easy.
Security vulnerabilities are no different in this respect once they are found, they are
generally easy to track down and fix (the Apache chunked encoding vulnerability was
the hardest I ve ever had to track, and even that took only one long day s work). But
vulnerabilities aren t like bugs in that sense until they are discovered. Once you find
them, you have a recipe for making the software behave unexpectedly. Until that time,
what do you have? A piece of software that does what you expect.
The idea that bugs and security vulnerabilities are really the same thing is quite
wrong and it s an idea that I suspect has been perpetrated by the reliability commu
nity, 16 sensing a new source of funding. Software is reliable if it does what is
expected when operated as expected. It is secure if it does what is expected under all
circumstances. This is a very critical difference, indeed. Nonsecurity bugs have a sig
nificant qualitative difference from security bugs people don t go out of their way to
find bizarre things to do to make the software go wrong just for the fun of it. And if
they do, and it s not a security hole... well, yes, that s interesting, and we ll fix it one
day but, in the meantime, you didn t need that functionality, so just stop poking
yourself in the eye and it will stop hurting.
What has happened is that advocates of open source have taken the "many eyes"
argument to mean that because the source is available, many people will examine it
for weaknesses. This simply isn t true: most people never look at the source at all
(until it doesn t work), and even if they do, most do not have the experience to find
the problems. The argument simply does not hold water, and it s time we, as a com
munity, abandon it.
However, there is an important sense in which the "many eyes" theory holds a grain
of truth: those who want to look at the source to check for vulnerabilities, can. The
interesting question is whether those who want to look the the code are generally the
good guys or the bad guys. But this is a question I will come to later, when I com
pare open and closed source.
15 The argument is that if enough people look at the code, bugs (and hence security issues) will be
found before they bite you.
16 Academics who study the reliability, as opposed to the security, of computer systems.
60 *C Open Source and Security
Open Versus Closed Source
Since I wrote my rant, Microsoft has decided that security is important (at least for
sales), and as a result, there s been a sudden increased interest in the truth of the
claim that open source is "more secure" than closed source and, of course, the
counterclaim of the opposite.
But this claim is not easy to examine, for all sorts of reasons. First, what do we mean by
"more secure"? We could mean that there are fewer security bugs, but surely we have
to take severity of the bugs into account, and then we re being subjective. We could
mean that when bugs are found, they get fixed faster, or they damage fewer people. Or
we might not be talking about bugs at all. We might mean that the security properties
of the system are better in some way, or that we can more easily evaluate our exposure
to security problems.
I expect that, at some point, almost everyone with a serious interest in this question will
choose one of these definitions, and at some other point a completely different one.
Who Is the Audience?
It is also important to recognize that there are at least two completely different reasons to
ask the question "is A more secure than B?" One is that you are trying to sell A to an
audience that just wants to tick the "secure" box on their checklist, and the other is
because you actually care about whether your product/web site/company/whatever is
secure, and are in a position to have an informed opinion.
It is, perhaps, unkind to split the audience in this way but, sadly, it appears to be a
very real split. Most people, if asked whether they think the software they use should
be secure will say, "Oh yeah, security, that s definitely a good thing, we want that."
But this does not stop them from clicking Yes to the dialog box that says "Would you
like me to install this Trojan now?" or running products with a widely known and
truly dismal security record.
However, it is a useful distinction to make. If you are trying to sell to an audience
that wants to tick the security box, you will use quite different tactics than if the
audience truly cares about security. This gives rise to the kind of analysis I see more
and more. For example, http://dotnetjunkies.com/Weblog/stefandcmetz/archive/2004/10/
ll/28280.aspx has an article titled "Myth debunking: SQL Server vs. MySQL security
2003-2004 (SQL Server has less bugs!!)." The first sentence of the article gives the
game away: "Seems that yet again a MS product has less bugs that (sic) the corre
sponding LAMP 17 product." What is this telling us? Someone found an example of a
closed source product that is "better" at security than the corresponding open source
17 LAMP stands for Linux, Apache, MySQL, Perl (or PHP) and is common shorthand for the
cluster of open source commonly used to develop web sites.
Open Versus Closed Source * * 61
one. Therefore, all closed source products are "better" at security than open source
products. If we keep on saying it, it must be true, right?
Even if I ignore the obviously selective nature of this style of analysis, I still have to
question the value of simply counting vulnerabilities. I know that if you do that,
Apache appears to have a worse record than IIS recently (though not over longer
periods).
But I also know that the last few supposed vulnerabilities in Apache have been either
simple denial-of-service (DoS) attacks 18 or vulnerabilities in obscure modules that
very few people use. Certainly I didn t even bother to upgrade my servers for any of
the last half-dozen or so; they simply weren t affected.
So, for this kind of analysis to be meaningful, you have to get into classifying vulner
abilities for severity. Unfortunately, there s not really any correct way to do this.
Severity is in the eye of the beholder. For example, my standard threat model (i.e.,
the one I use for my own servers, and generally advise my clients to use, at least as a
basis) is that all local users 19 have root, 20 whether you gave it to them or not. So,
local vulnerabilities 21 are not vulnerabilities at all in my threat model. But, of course,
not everyone sees it that way. Some think they can control local users, so to them,
these holes matter.
Incidentally, you might wonder why I dismiss DoS attacks; that is because it is essen
tially impossible to prevent DoS attacks, even on perfectly functioning servers, since
their function is to provide a service available to all, and simply using that service
enough will cause a DoS. They are unavoidable, as people subject to sustained DoS
attacks know to their pain.
Time to Fix
Another measure that I consider quite revealing is "time to fix" that is, the time
between a vulnerability becoming known and a fix for it coming available. There are
really two distinct measures here, because we must differentiate between private and
public disclosure. If a problem is disclosed only to the "vendor," 22 the vendor has the
leisure to take time fixing it, bearing in mind that if one person found it, so will others
18 In a DoS attack, the attacker prevents access by legitimate users of a service by loading the
service so heavily that it cannot handle the demand. This is often achieved by a distributed
denial of service (DDoS) attack, in which the attacker uses a network of "owned" (i.e., under the
control of the attacker and not the legitimate owner) machines to simultaneously attack the
victim s server.
19 That is, people with user accounts on the machine, rather than visitors to web pages or people
with mail accounts, for example.
20 Root is the all-powerful administrative account on a Unix machine.
21 A local vulnerability is one that only a local user can exploit.
22 A term I am not at all fond of, since, although I am described as a "vendor" of Apache,
OpenSSL, and so forth, I ve never sold any of them.
62 X Open Source and Security
meaning "leisure" is not the same as "forever," as some vendors tend to think. The time
to fix then becomes a matter of negotiation between vendor and discloser (an example of
a reasonably widely accepted set of guidelines for disclosure can be found at http://www.
wiretrip.net/rfp/policy.html, though the guidelines are not, by any means, universally
accepted) and really isn t of huge significance in any case, because the fix and the bug
will be revealed simultaneously.
What is interesting to measure is the time between public disclosures (also known as
zero-days) and the corresponding fixes. What we find here is quite interesting. Some
groups care about security a lot more than others! Apache, for example, has never, to
my knowledge, taken more than a day to fix such a problem, but Gaim 23 recently left
a widely known security hole open for more than a month. Perhaps the most inter
esting thing is that whenever time to fix is studied, we see commercial vendors Sun
and Microsoft, for example pitted against open source packagers Red Hat and
Debian and the like but this very much distorts the picture. Packagers will almost
always be slower than the authors of the software, for the obvious reason that they
can t make their packages until the authors have released the fix.
This leads to another area of debate. A key difference between open and closed
source is the number of "vendors" a package has. Generally, closed source has but a
single vendor, but because of the current trend towards packagers of open source,
any particular piece of software appears, to the public anyway, to have many differ
ent vendors. This leads to an unfortunate situation: open source packagers would
like to be able to release their packages at the same time as the authors of the pack
ages. I ve never been happy with this idea, for a variety of reasons. First, there are so
many packagers that it is very difficult to convince myself that they will keep the
details of the problem secret, which is critical if the users are not to be exposed to the
Bad Guys. Second, how do you define what a packager is? It appears that the critical
test I am supposed to apply is whether they make money from packaging or not! 24
This is not only blatantly unfair, but it also flies in the face of what open source is all
about. Why should the person who participates fully in the open source process by
building from source be penalized in favor of mere middlemen who encourage peo
ple not to participate? 25
Of course, the argument, then, is that I should care more about packagers because if
they are vulnerable, it affects more people. I should choose whom I involve in the
release process on the basis of how many actual users will be affected, either posi-
23 A popular open source instant messaging client.
24 Of course, not all packagers make money, but I ve only experienced this kind of pressure from
those that do.
25 This is because vendors tend to encourage users to treat them as traditional closed source
businesses with their own support, their own versions of software, and so forth instead of
engaging the users with the actual authors of the software they are using.
Open Versus Closed Source *C 63
lively or negatively, depending on whether I include the packager or not, by my
choice. I should also take into account the importance of these users. A recent argu
ment has been that I should involve organizations such as the National Infrastruc
ture Security Co-ordination Centre (NISCC), a UK body that does pretty much what
it says on the tin, and runs the UK CERT (see http://www.niscc.gov.ufe for more infor
mation) because they represent users of more critical importance than mere mortals.
This is an argument I actually have some sympathy with. After all, I also depend on
our infrastructure. But in practice, we soon become mired in vested interests and
commercial considerations because, guess what? Our infrastructure uses software
from packagers of various kinds, so obviously I must protect the bottom line by mak
ing sure they don t look to be lagging behind these strange people who give away
security fixes to just anyone.
If these people really cared about users, they would be working to find ways that
enable the users to get the fixes directly from the authors, without needing the pack
ager to get its act together before the user can have a fix. But they don t, of course.
They care about their bank balance, which is the saddest thing about security today:
it is seen as a source of revenue, not an obligation.
Incidentally, a recent Forrester Research report claims that packagers are actually
quite slow as slow as or slower than closed source companies at getting out fixes.
This doesn t surprise me, because a packager generally has to wait for the (fast!)
response of the authors before doing its own thing.
Visibility of Bugs and Changes
There is argument that lack of source is actually a virtue for security. Potential attack
ers can t examine it for bugs, and when vulnerabilities are found, they can t see what,
exactly, was changed.
The idea that vulnerabilities are found by looking at the source is an attractive one,
but is not really borne out by what we see in the real world. For a start, reading the
source to anything substantial is really hard work. I know I did it for OpenSSL, as I
said earlier. In fact, vulnerabilities are usually found when software misbehaves,
given unusual input or environment. The attacker follows up, investigating why that
misbehavior occurred and using the bug thus revealed for their own evil ends. The
"chunked encoding" bug I mentioned earlier is a great example of this. This was
found by the common practice of feeding programs large numbers of the same char
acter repeatedly. When Apache was fed A lots of times, it ended up treating it as a
count of characters in hex, and it came out negative, which turns out to be a Bad
Thing. In this case, all that was needed was eight characters, but the problem was
found by feeding Apache several thousand. 26
26 This particular method is popular because it is so easy: perl -e "print "A xlOOOO" | target.
64 xx Open Source and Security
So, not having the source might slow down an attacker slightly, but given the avail
ability of excellent tools like IDA (a very capable disassembler) and Ollydbg (a pow
erful [and free! debugger), not by very much.
What about updates? The argument is that when source is available, the attacker can
compare the old and new versions of the source to see what has changed, and then use
that to craft software that can exploit unfixed versions of the package. In fact, because
most open source uses version control software, and often has an ethos of checking in
changes that are as small as possible, usually the attacker can find just the exact
changes that fixed the problem without any clutter arising from unrelated changes.
But does this argument hold water? Not really, as, for example, Halvar Flake has
demonstrated very clearly with his Binary Difference Analysis tool. What this does is
take two versions of a program, before and after a fix, disassembles them, and then
uses graph isomorphisms to work out what has changed. I ve seen this tool in action,
and it is very impressive. Halvar claims (and I believe him) that he can have an
exploit out for a patched binary in one to eight hours from seeing the new version.
Review
Another important aspect to security is the ability to assess the risks. With closed
source, this can be done only on the basis of history and reputation, but with open
source, it is possible to go and look for yourself. Although you are not likely to find
bugs this way, as I stated earlier, you can get a good idea about the quality of the
code, the way it has been written, and how careful the author is about security. And,
of course, you still have history and reputation to aid you.
Who s the Boss?
Finally, probably the most important thing about open source is the issue of who is
in control. When a security problem is found, what happens if the author doesn t fix
it? If the product is a closed source one, that generally is that. The user is doomed.
He must either stop using it, find a way around the problem, or remain vulnerable.
In contrast, with open source, users are never at the mercy of the maintainer. They
can always fix the problem themselves.
It is often argued that this isn t a real choice for end users; usually end users are not
programmers, so they cannot fix these problems themselves. This is true, but it com
pletely misses the point. Just as the average driver isn t a car mechanic but still has a
reasonably free choice of who fixes his car, 27 he can also choose a software maintainer
to fix his software for him. In practice, this is rarely needed because (at least for any
widely used software) there s almost always someone willing to take on the task.
27 This is a metaphor that is rapidly going out-of-date, as car manufacturers make cars more and
more computerized and harder and harder for anyone not sanctioned by the manufacturer to
work on. Who knows perhaps this will lead to an open source culture in the car world.
Open Versus Closed Source X 65
Digression: Threat Models
I mentioned threat models earlier. Because not all my readers will be security experts,
it is worth spending a moment to explain what I mean. When you evaluate a threat
to your systems, you have to have a context in which to do it. Simply saying "I have a
security hole" tells you almost nothing useful about it. What you want to know is
how bad it is, how fast you have to fix it, what it will cost if you don t fix it, and what
it will cost if you do fix it.
To make that assessment, there are various things you need to know. The obvious
ones are what systems you are running; what the value of each component is; what
impact the vulnerability will have on each component; how likely you are to be
attacked; and so forth. But less obvious is the question of whether you actually care
about the attack at all and this is where threat models come in. They characterize
what you have already assumed yourself to be vulnerable to and how you are vulner
able it.
So, as I mentioned, my threat model is that local users have root. Because root can
do, essentially, anything she wants, this means that any vulnerability that can only be
exploited by a local user, no matter what it is, and no matter how bad, is irrelevant to
me. They could do that already.
Threat models can get quite complicated, and you may well find that when a new
vulnerability comes along, you have to consider what your model actually is, because
you don t already know. For example, suppose there s an attack on the domain name
service that allows it to be faked. Do you care? Was that something you assumed had
to be correct when you built your system, or is incorrectness merely a nuisance?
Anyway, I don t want to turn this chapter into a textbook on security, so suffice it to
say that threat models are important, everyone s is different, and you can t evaluate
the impact of vulnerabilities without one which means, really, that the whole ques
tion of which is better is one only you can answer.
The Future
PREDICTION is DIFFICULT, ESPECIALLY ABOUT THE FUTURE.
Niels Bohr/Mark Twain 28
There are two futures: the one we should have, and the one we re going to get. I ll
talk about the one we should have first, because it s more fun, more interesting, and
definitely more secure.
28 Apparently it s difficult about the past too we don t know which of these people said this!
66 X Open Source and Security
Today s operating systems and software are based on decades of experience with
developing software that was run by nice guys on machines over which they con
trolled access relatively easily (whether as users or nonusers interacting with the
machine or software in some way). This was a world where your biggest security
threat was a student playing a prank. We learned a great deal about how to write
software that did clever things, was easy to use, and had pretty interfaces.
Unfortunately, we learned almost nothing about how to write secure software. And
in the meantime, we built up a huge amount of insecure software. Worse, we used
insecure languages to write the insecure software in. And worse even than that, we
used languages thath there s no real prospect of securing. And we continue to use
them, and the same insecure operating systems we wrote, with ever-increasing teeter
ing towers of software piled on top of them.
So, in my Brave New World, we get smart enough to scrap all this and use an idea
invented in the 1960s: capabilities. Unfortunately, academics decided very early on that
capabilities had all sorts of problems, and this has prevented their widespread adoption.
Mark Miller and Jon Shapiro, in "Paradigm Regained: Abstraction Mechanisms for
Access Control" (http://w\vw.erights.org/talks/asian03/paradigm-revised.pdf), have very
effectively debunked these criticisms, though I have to admit to being bemused by how
anyone could believe them in the first place, since they are so easily solved.
In any case, there are still some of us around who believe in capabilities, and I enter
tain the fond hope that we may start using them on a larger scale. The foremost
project using capabilities at the moment is the E language (http://www.erights.org),
which, as well as being a capability language from the ground up, has some very nice
features for distributed computing, and is well worth a look. Unfortunately, I do not
believe a language with such esoteric (and ever-changing) syntax will ever be widely
used. It seems that privilege belongs to a very few. Perhaps more promising from the
point of view of likelihood of adoption is my own nascent CAPerl (think "Kapow!")
project, which adds capabilities to Perl. Although this is far less elegant and satisfy
ing, it has the virtue of looking almost exactly like Perl to the experienced program
mer, and so I do have some hope that it might actually get used. I don t have a web
site for it yet, so I invite you to Google for it.
No discussion of capabilities in the 21st century would be complete without men
tioning EROS (http://www.eros-os.org). Funnily enough, EROS is short for Extremely
Reliable Operating System, since its author, Jon Shapiro, thought that was what was
important about it when he started writing it. Now, though, we are far more inter
ested in its security properties than in its reliability. EROS, like E, implements capa
bilities from the ground up. More importantly, it runs on PCs. Unfortunately, it
seems it is a project that won t be finished. Work is, however, starting soon on the
second attempt.
The Future JJ 67
Of course, if I really think this will happen, I m on crack. Not enough people care
enough about security to contemplate throwing everything away and starting again
(make no mistake, that s what it takes). But I can (and do) hope that people will start
writing new things using capabilities. And I hope that drawing them to your atten
tion will assist that.
Now I ll move on to what I think will really happen. Certainly people have become
more aware of security as an issue, and the increasing use of open source in corpo
rate environments also increases the pressure on security. It seems likely that this will
drive open source toward better ways to deliver updates faster. I don t think it is
actually possible to drastically improve open source s record on fixing security issues.
I believe that by any measure, that open source is ahead of closed source. But the
flow from author to end user is not yet a smooth one.
Interestingly, the fix for that is strongly related to the fix for another widely acknowl
edged problem with open source: package management systems. We do not yet have
the ultra-smooth systems to handle installation and update of systems in a way that
makes it a no-brainer for end users. Open source and closed source present interest
ingly different problems. Open source packages of any complexity tend to depend on
other open source packages, usually with a completely different set of authors and
release cycles. Managing installation in this environment is much harder than in the
closed source situation, where one vendor even one that buys components from
others is in control of the whole package. I think the open source world is moving
toward better package management, and this will automatically improve the end
user s management of security.
However, for corporate environments, this probably makes little difference. In such
situations, there are almost always elaborate procedures for rolling out new versions
which are almost unchanged when using open source. Even so, clearer visibility of
dependencies and, therefore, what needs to be upgraded when a fix comes out,
would be useful.
I also hope that better package management would reduce the dependency of users
(at least, if they choose to have their dependency reduced) on packagers. Although
packagers, in theory, add value, they also add latency. Perhaps worse, they damage
the open source model by introducing dozens of slightly different versions of each
package, through the widespread practice of applying patches to the packages
instead of contributing them back to the original authors, which reduces the effec
tiveness of community development by splitting the community into many smaller
subcommunities .
As always, there is a price to be paid for better package management. Automated
updates are a fantastic vector to mount automated attacks. We know well how to
prevent such attacks using public key cryptography, but once more, the complexity
88 X Open Source and Security
of multiple authors introduces problems of key management to which there aren t
really good answers, at least, so far. 29
One thing that does seem certain is that the increasing trend of concern about secu
rity by end users will continue. The seemingly never-ending rise of spam, adware,
and Trojans, if nothing else, has put it on everyone s agenda, and that doesn t seem
likely to change.
Interesting Projects
I ve already mentioned some projects in passing, but no chapter on open source
security would be complete without mentioning some of the more interesting
projects out there. I ll start with the obvious ones and move on to the more esoteric.
This list probably reflects my current obsession with privacy and anonymity:
OpenSSL
Well known, but still essential. This library implements most known crypto
graphic algorithms, as well as the SSL and TLS protocols. It is very widely used
in both free and non-free software, and at the time of this writing was in the final
stages of obtaining FIPS-140 certification, http://www.openssl.org.
Apache 2
Of course, we ve all known and loved Apache for years. Finally, Apache 2 has
HTTPS support out of the box. http://www.apache.org.
Mozilla
A suite of web browser, mail, and news reading software, and related utilities.
You probably don t think of this as security software, but it is probably second
only to Apache in the number of financial transactions it protects. And it does it
with a minimum of fuss. What s more, it isn t plagued with its closed-source
rivals fondness for installing evil software you never intended to install! http.7/
www.mozilla.org.
GnuPG
Implementing the OpenPGP standard under the GPL. Primarily used for email,
but also the mainstay for validation of open source packages (using, of course,
public key cryptography), http://www.gnupg.org.
Emgmail
Small, but (almost) perfectly formed. This is a plug-in for the increasingly popu
lar (and, of course, open source) email client, Thunderbird, providing a nicely
streamlined interface for GnuPG. http://enigmail.mo2dev.org.
29 1 should perhapsat this point plug KeyMan, a package I designed to solve this problem, but
since it has singularly failed to take off, that might be inappropriate.
Interesting Projects X 69
CVE
Common Vulnerabilities and Exposures. This is a database of security problems,
both commercial and open source. The idea is to provide a uniform reference for
each problem, so it s easy to tell if two different people are talking about the
same bug. http://cve.mitre.org.
TOR
The onion router. Onion routing has been a theoretical possibility for a long
time, providing a way to make arbitrary connections anonymously. Zero Knowl
edge Systems spectacularly failed to exploit it commercially, but now it has come
from a most unlikely source: the U.S. Navy. The Navy s funding recently ran out,
but the Electronic Frontier Foundation stepped up to take over. Well worth a
look, http://tor.eff.org.
Conclusion
In the end, it seems to me there s little to be sensibly said that, from the viewpoint of
security, truly differentiates between open and closed source. The points I believe are
critical are my ability to review the code for myself and my ability to fix it myself when
it is broken. By "myself I do, of course, include "or anyone of my choice." What I don t
believe in at all is the often-quoted but never-proven "many eyes" theory.
In the digression on threat models, I mentioned that the only person who can really
answer the question of whether open source is better for security is you. Leave the
camp of people who think security is a good thing that we should all have more of,
and join the camp of people who have thought about what it means to them, what
they value, and so, what they choose.
70 X Open Source and Security
b CHAPTER 5
Michael Olson
Dual Licensing
Over the past decade, there have been many attempts to commercialize open source
software. One common strategy has been to create services businesses, which offer
consulting and support to users of open source. Another strategy has been to build
hybrid businesses, which distribute open source platforms with proprietary add-ons,
and which make money by licensing the add-ons.
A third strategy, and the focus of this chapter, is called dual licensing. Companies that
use dual licensing provide a single software product under two different licenses.
One license, which imposes open source terms, is available to a certain class of users.
A second license, with proprietary terms, is available to others.
Business and Politics
This chapter is about business. Software is deep in the modern economy: it provides
the mechanism for the flow of capital around the world, and it is itself a good that
can be produced, bought, and sold. Whenever something interesting happens in the
world of software, business leaders pay attention.
Open source is interesting. It enforces new rules for use and distribution of software
products. It changes the economics of software production. It impacts the way that
companies can capitalize on the software they control.
At the same time, though, open source has no business agenda. Open source is about
freedom in the political sense. It is about peer review and scientific collaboration.
Open source licenses take no position whatsoever on the profitability of business
models. Open source is not antibusiness; it has no opinion.
Businesspeople, of course, have opinions on open source. Some years ago, when
open source was still new to the business community, it was unfamiliar, and that
unfamiliarity bred fear, confusion, and opposition. More recently, as quality open
source software products have proven their value to all kinds of businesses, that
opinion has shifted. Most businesspeople who have thought about open source at all
are guardedly interested in it, and want to find ways to use it in their companies to
be more efficient, to spend less, or to earn more.
An informed opinion on open source is important. Just as software is a powerful eco
nomic force, open source is a powerful force in the development and deployment of
modern software systems. The Internet, including the World Wide Web, and a wide
range of the services that run on it (for example, e-commerce sites such as Amazon.com;
information retrieval services such as Google; and portals such as Yahoo!) exist because
of open source software. Open source is a genie that is too big for its bottle. Now that it
is out, it will not fit back in. If you do not put it to work for you, it is likely to wreak bad
magic on your business.
My own opinion on open source is simple. It is one tool among many that can, when
used sensibly, create business value. I run a business based on open source, but my
agenda is commercial, not political. I understand the politics behind open source,
and I appreciate and respect many smart people in the open source community.
When I sit down at my desk, though, I am more interested in the difference between
income and expenses on my profit and loss statement. To the extent that open source
helps move that difference in the right direction, I care deeply about it.
The open source business strategy about which I know the most and the focus of this
chapter is called dual licensing. Dual licensing is a way to make a single software prod
uct available under two different licenses. One is an open source license, and encour
ages sharing and collaboration. The other is a more conventional proprietary license,
and permits secrecy and competition which promote the creation of proprietary value.
Dual licensing is a way to give a single product to open source users on open source
terms, and to paying proprietary customers on conventional proprietary terms.
Open Source: Distribution Versus Development
Open source can include a distribution strategy or a development strategy. While
people often think of the development strategy (many programmers working on a
common project) when they think of high-profile projects like Linux, we are instead
going to focus on the distribution strategy.
72 X Dual Licensing
Open source is just a way to put product in many users hands inexpensively. Dual-
licensing businesses do not use collaborative development to build their products. In
fact, as we will see, that production strategy is poisonous to dual-licensing businesses.
A dual-licensing business can take advantage of the cheap and ubiquitous Internet to
distribute its products at low costs. Open source licensing promotes use at much
lower cost, with much less friction, than an expensive marketing campaign could do.
Dual-licensing businesses can distribute software to more people, more cheaply, than
their proprietary competitors.
At the same time, dual licensing permits these businesses to generate revenue by licens
ing the software to certain users for a fee. Software licensing revenue is good revenue
because you can make and license a second copy of a piece of software for essentially
no additional cost, businesses and the financial markets like licensing revenue. Selling
support or services, by contrast, imposes new costs with every deal, because a business
must have the capacity to answer the telephone for every new customer it captures. As
a result, licensing-based businesses, including dual-licensing businesses, generally get
higher valuations and can raise capital more cheaply than businesses based exclusively
on services.
A Primer on Intellectual Property
Dual licensing, when you first encounter it, can seem like a parlor trick. How can I
possibly charge money for software that you can get for free?
There is, in fact, no sleight of hand. Nobody gets tricked. Dual licensing requires
some care, and the same diligence that most businesspeople bring to their jobs, but it
turns out that governments around the world want businesses to be able to do this.
They have constructed legal infrastructures that permit all sorts of businesses to
make money with confidence. All it takes is to behave like a business and comply
with the law.
Understanding the mechanism here is easier with some background in intellectual
property law. Most software vendors make money by charging fees for an intangible
product algorithms and their implementations as expressed in computer code. All
these businesses, including dual-licensing businesses, exist because of crucial legal con
cepts regarding intellectual property concepts such as ownership and license grants.
Ownership
Ownership of real property is easy to understand my ball, your house, her island.
Ownership of something intangible like the expression of ideas, is harder to under
stand. Over several centuries, governments have created rules about who may and
may not make copies of artifacts like books and music. This "copyright" law bal
ances the interests of the creator of a work an author or a composer with the
A Primer on Intellectual Property X 73
interests of consumers who purchase those copies. Copyright law clarifies issues and
resolves disputes among authors and readers. Copyright law has been adapted to
apply to software, balancing the rights of software authors with those people who
license and use their computer programs. 1
Copyright law worldwide generally says that the creator of an expression of an idea
owns that expression. From the point of view of a computer programmer, this means
that whoever writes a program owns the program. If the programmer copied parts of
it from somewhere else, of course, he was not the creator of those parts, and he does
not own them.
Unless the owner expressly assigns his rights to someone else, he owns his creation.
Most employment agreements include just such an assignment provision, so the code
a programmer writes for his job instantly becomes the property of his employer. The
Free Software Foundation, an important organization in the free software move
ment, requires such assignment for any contribution to projects that it manages.
Without an explicit assignment, there can be many different owners of a large soft
ware product. This is exactly the case with many open source projects, including
Linux. If 10 developers collaborate on an open source package, each of the 10 owns
the pieces she produced. None of them owns the entire work.
Licensing
Except in very rare circumstances, no one ever buys computer software. The person
who created the work is its owner; a purchaser only buys certain rights to use the
copy of the software in his possession. This distinction is critical to businesses that
build software products. These businesses do not sell ownership. Instead, they sell
licenses to the software, where "licenses" generally means a collection of rights to
copy, run, and use the software product.
The owner is allowed, under the law, broad latitude to set conditions on use of the
software. If someone wants a license to use the software, the owner can require that
person to do any number of different things in exchange for the license.
Most proprietary software vendors require payment of a fee. This has been a remark
ably successful business strategy for many decades, producing a number of billion-
dollar software companies.
Open source software licensing does not require payment of a fee. The owners of
open source software do impose other conditions on their open source licensees.
1 The bodies of law dealing with trade secrets and patents are also both important to businesses,
but are beyond the scope of this discussion. Patents in particular complicate open source
software development and distribution, and are something of a lightning rod in the debate
between proponents and opponents of open source.
74 xx Dual Licensing
Those conditions vary, depending on the open source license in use, but two broad
categories are most common:
Reciprocal licenses require that any recipient promise to contribute back any
changes or additions to the software. Reciprocal licenses are coercive; they essen
tially enforce sharing. The most common reciprocal license in use is the GNU
General Public License, or GPL.
Academic licenses usually require very little often, just acknowledgment of the
original owner s work on the software. Academic licenses encourage reuse of
other programmers work by making it available on liberal terms. The most pop
ular academic license in use is the Berkeley Software Distribution, or BSD,
license.
In both the proprietary and open source cases, the owner of the software sets the
conditions that others must meet to use the software.
The owner is allowed to set different conditions for different people. This same situa
tion applies to real property: you might allow your brother to sleep in your spare
bedroom for free, but probably would not let me do that on the same terms. At best,
I could hope to pay you rent for use of the room. Likewise, the owner of a piece of
software can grant different rights, on different terms, to different people.
This is common in proprietary software businesses. For example, if you buy a com
puter with an operating system and a word processor installed, you are most likely
permitted to use those packages, but not to make copies of them for others to use. By
contrast, the computer manufacturer is allowed to copy, install, and distribute both
pieces of software to you and to others. The company that owns the operating sys
tem and word processor chooses to grant the computer manufacturer broader rights
than you have, because the owner s goal is to make money in business, and creating a
distribution channel that generates license fees is a good way to do that.
The fundamental point to remember is that open source licensing rests on the same
foundation that proprietary software businesses use for their own licensing: copy
right law and the notions of ownership and licensing that inform it. In both the pro
prietary and open source cases, the owner grants licenses to use the software under
certain conditions.
One main benefit of being an owner is having the right to set those conditions.
Dual Licensing
Dual licensing exploits these attributes of copyright law to construct profitable busi
nesses using open source software. The software s owner distributes a single product
under both an open source license and a proprietary license. Open source licensees
pay no fees, but make certain promises. Proprietary licensees have different rights,
and pay a fee for that consideration.
Dual Licensing * 75
By making the software available on open source terms, the owner creates a large and
inexpensive distribution channel. Generally, users can download the software on the
Internet for free. In many cases, the software is bundled with third-party offerings,
and is distributed by others not formally affiliated with the owner. Open source dis
tribution makes the software ubiquitous, putting it in the hands of many users at
very low cost.
Reciprocity
Open source, as it has emerged from the academic world, emphasizes the importance
of reciprocity. Fundamentally, everyone in the community is allowed to share the bene
fits of the code that others have written. Everyone is expected to share their work, how
ever. If you give me your work for free, I reciprocate and give you my work on the
same terms. This emphasis on reciprocity encourages collaboration and allows the
community to build better software than any small group could on its own.
In a dual-licensing business, the open source license demands reciprocity. If a cus
tomer uses the software under the open source license, his own additions which
may well include the code for his own product must be open source, as well.
Under the proprietary license, by contrast, reciprocity is not required. The cus
tomer s own code, and any changes or additions he makes to the original product,
can remain proprietary.
This distinction between the two licenses is crucial. Sharing source code is a virtue in
the open source community, but is a serious competitive disadvantage in many com
mercial settings. Proprietary software vendors would much rather pay money than
give away the competitive advantage inherent in their source code.
Warranty
A warranty is a promise. These promises are the bedrock of most commercial rela
tionships. Software vendors that use proprietary licenses to do business with their
customers and suppliers use warranties to spell out clearly what each party expects
from the other.
As a software vendor, I might warrant that my software product will work as docu
mented, and that I will fix any errors if it does not. I will generally warrant that I
wrote the software, and that I am the person who owns it. I may ask my customer to
warrant that he will not give my software away for free to anyone else. If either of us
breaks one of these promises, our licensing agreement will usually spell out the steps
that the other party can take to fix the problem. If we cannot fix the problem, either
of us can sue the other in court for breakingthe promise.
76 X Dual Licensing
People do not generally make promises casually. There are real costs in keeping your
word. For example, if I have promised that my software works, and it does not, I
need to spend time, and possibly money, to fix it.
Virtually all open source licenses and certainly all those used by dual-licensing
businesses are "as is" licenses, with no warranties, no promises, and no recourse in
the event of problems. The user gets the software as is, and assumes all risk in using
it. This allows the business to minimize business risk from users of its software who
did not pay a license fee. Put simply, if the user does not pay for the license, the
owner will not use his money to protect the user in the case of a problem.
Proprietary licenses, by contrast, generally include clear warranties. A company can
afford to make promises to its paying customers, because it can use some of the
money paid to defray the costs of keeping the promise.
Depending on how a customer plans to use a software package, he may or may not
be able to tolerate the "as is" nature of an open source license. If the customer is will
ing to risk problems in the software, and to fix those problems himself, the open
source license is fine. On the other hand, if the customer plans to ship the software
to customers of his own, he may want the assurance of a committed partner behind
him. Likewise, if the customer runs mission-critical infrastructure on open source
software, he may need the confidence that commercial warranties provide.
Competitive Issues
Many vendors that consider dual-licensing strategies are concerned with competition.
Naturally, open source distribution presupposes that there are no valuable propri
etary techniques in the software that need to be kept secret. If an owner distributes a
software package in source form, competitors can read the source code, just like any
other person who receives a copy.
This seems at first like it should be a major concern, but in point of fact, the amount
of innovation in the software market is much smaller than is generally supposed.
Especially in relatively mature sectors of technology, such as operating systems and
databases, the techniques and algorithms are well understood by all the suppliers
The combination of particular techniques that any single vendor uses may be some
what interesting to its competitors. All of the vendors in a market hire from the same
pool of technical talent, and even poach employees from one another. As a result,
most vendors know pretty well how their competitors products work.
Proprietary vendors will naturally claim that their products are novel and innova
tive, and must be kept secret. The problem is that there is no way to test this asser
tion, since doing so requires examination of the source code, and that is precisely
what the vendors cannot permit, yet still protect their market positions.
Dual Licensing X 77
In some cases, these claims are no doubt true. The strategy of concealment, however,
does not distinguish between ugliness and beauty, and may be used to hide either.
A different competitive concern arises from confusion between ownership and licens
ing. Some vendors considering dual licensing worry that their competitors will
download the open source version of the product and license it under proprietary
terms to others. In effect, this would allow a competitor to use the vendor s own
product to compete with him.
Copyright law, of course, prohibits this. Only the owner has the right to grant pro
prietary licenses to the software. In fact, no competitor can copy pieces of the work
into its own products, since those products would then be forced to comply with the
terms of the open source license.
There is another, subtler, force that protects dual-licensing vendors from unscrupu
lous competition. Open source software is preemptive: the existence of a quality
open source package makes it very difficult or impossible to introduce a for-fee com
petitor. The cost of building such a competitive offering has to be recovered some
how. If a no-cost offering is available, selling an alternative for a fee will likely fail.
The result is that very few businesses are willing to challenge open source software in
the market once it is established.
The converse, of course, is not true. Open source frequently, and aggressively, chal
lenges established proprietary software.
Even in cases where proprietary alternatives exist, dual licensing creates competitive
advantage. The open source product is ubiquitous as a result of an inexpensive distri
bution channel. In addition, the fact that many users are able to use the software at
no charge actually takes money away from purely proprietary vendors in the market.
If a user can choose between a good open source product for free, and a competitive
proprietary product for a fee, the for-pay competitive vendor is likely to lose the sale.
Dual-licensing vendors are not paid by their open source users. Neither, however,
are their competitors.
Ownership
Only the owner of a work has the standing to offer it to different users under differ
ent licenses. As a consequence, dual licensing works only if there is a single, well-
defined owner of a work. Otherwise, customers have no single entity with whom to
negotiate their license terms. In practice, projects that use the open source develop
ment model (a large community of independent programmers collaborating on a
work) are poor candidates for dual licensing. There are just too many contributors to
contact for permission every time a new customer wants to license the software
under non-open source terms.
78 J* Dual Licensing
As a result, dual-licensing businesses do not use the open source development model.
Instead, they invest in the development of the open source software and do not accept
contributions from the community at large. Dual-licensing businesses rely on open
source as a distribution strategy, not as a production strategy.
Ownership is an issue in the larger open source community, of course. As a practical
matter, assessing the provenance of contributions to an open source project is hard.
Individual contributors are often judgment-proof, and ensuring that they have not
misappropriated the intellectual property they contribute to the project requires real
diligence. Projects manage this problem the same way that proprietary vendors do
they put experienced managers over coders to review contributions, and they rely on
mature and experienced contributors to build the product.
In fact, this ownership issue cuts both ways. Proprietary vendors are equally at risk
from employees who take pieces of open source software and incorporate it into the
proprietary products that their employers build.
The answer for both proprietary and open source developers, of course, is to set up
formal policies and standards on intellectual property use. Diligence is simply part of
the job. Both proprietary and open source developers can and do write large, sophis
ticated products without stealing from others.
Practical Considerations
Dual licensing works. Using it, businesses can generate revenue based on license fees
paid for copies of software. Because the public markets view this revenue as inher
ently lower margin than services revenue, dual-licensing companies have attractive
valuations and can raise capital at parity with proprietary software vendors.
Attractive Margins
Every sustainable business must consistently earn more money than it spends. This is
often hard.
One of the key considerations in designing a new business is the margin that the rev
enue stream can produce. Margin is, at base, the percentage of revenue that is profit.
If you pay $100 to build a widget, and you pay a salesperson $100 to sell it, the wid
get costs you $200. If you charge $400 for it, you have an attractive margin 50%. If
you charge $205 for it, you have a very thin margin 2.5%.
Most technology businesses sell licenses, or services, or a mixture of the two. For exam
ple, a company might license its product to customers, and might also sell consulting
services to help customers integrate the product into existing IT infrastructures.
Licensing businesses generally have attractive margins. This is because, while it may
cost $1 million in payroll to produce a new software program, the second copy of
that program is essentially free. Having sunk the cost into building the product, the
Practical Considerations X 78
company can sell as many copies as it likes without paying the developers to start all
over again. As a result, selling a new copy of an existing product really just requires
paying the sales team that sells it.
Services businesses, by contrast, have much slimmer margins. This is because, to
deliver the service, the business must have the people on the payroll who can do the
work that is inherent in the services contract. Selling more consulting engagements
requires that you hire more consultants. Thus, the costs that a services business incurs
on every contract include not just the cost of selling it, but also the cost of fulfilling it.
Of course, very few companies are purely licensing businesses. Most provide at least
customer support. However, building attractive margins is easier in a business with a
significant licensing component.
Dual-licensing businesses offer two different revenue streams. Proprietary customers
pay licensing fees, giving the business a high-margin licensing revenue stream. Both
proprietary and open source users may choose to buy consulting or technical sup
port, giving the business a lower-margin services revenue stream. This diversity in
the revenue streams can allow the company to weather temporary slowdowns in
either its licensing or its services businesses.
Capital
Over the past several years, the success of open source business models, and of dual-
licensing models in particular, has caught the attention of the investment commu
nity. As investors have learned more about open source and dual licensing, they have
begun to make investments sometimes substantial investments in new busi
nesses. In addition, established companies have begun to look at open source as a
strategic business advantage, and not just as a low-cost way to bring technology in-
house. Major technology vendors have demonstrated their willingness to acquire
open source businesses at prices that reward the principals and original investors in
those businesses.
Venture capitalists and other sources of early-stage funding for companies look for a
few key attributes in open source businesses.
First, of course, the company must have a credible, defensible business model. It is,
generally, easier to raise money for a company that uses dual licensing, than for one
planning to make money exclusively from services. The big risk for a new services
business is that it will demonstrate the viability of a new services opportunity, and
thus attract the attention of a large established services player. Popular open source
packages have enormous installed bases. Businesses exist today that earn tens of mil
lions of dollars supporting and training those users. That is enough money to inter
est even a large, established company.
80 X Dual Licensing
The real problem with providing only services for an open source package is that the
strategy is hard to defend against competitors. While it is true that the original
authors of an open source package have an advantage in supporting it after all, they
know the most about how it works freely available source code permits anyone else
to learn the product internals and offer the same service.
Investors and acquirers are generally willing to pay less for a pure services business
than for a licensing business, or for a business that combines the two sources of reve
nues. After all, costs grow in proportion to revenue growth. Every services sale
requires staffing to meet the service commitment. Selling licenses for software, on the
other hand, is much cheaper; making another copy of an existing product is free.
Second, investors look for open source packages with a solid market presence. The
investor typically wants to see a track record of successful deployment to prove that a
market exists. Thus, it is very hard to raise money to build a brand-new open source
package from the ground up. Indeed, virtually all of the open source businesses
funded in the past decade have tried to commercialize on the value of existing open
source packages.
This creates a chicken-and-egg problem. The open source package must exist before
it can be funded. Somehow, though, the package must get written in the first place.
Generally, the open source packages that serve as the foundation for successful busi
nesses were labors of love in the beginning, created by developers working in their
spare time for free. Only when they succeeded in building a credible product could
they raise money.
Third, and significantly, investors always look at the team in which they are asked to
invest. As a rule, no investor will back an unbalanced organization all engineering,
or all marketing, for example. A fundable open source business must combine the
technical expertise of a solid group of engineers with experienced management. In
particular, the company must be properly staffed to market and sell the licenses or
services that the business will offer. This point may seem obvious, but in practice, it
is very hard to put together a solid team with the ability to make and execute a busi
ness plan that demands both solid product development and execution against a
financial plan.
Once an open source business is successful in the market, it can choose to go in a
number of directions.
If the business is generating profits, the owners may choose to continue to run it as a
privately held company, earning a return on their effort and investment in the form
of dividends. As a rule, venture-backed businesses do not have this option. The ven
ture capital community wants to liquidate its investment at a profit within a few
years of making the initial investment, and will press management to sell the com
pany at some point. Absent that pressure, however, a strong, profitable, and growing
business is a wonderful thing to own.
More commonly, small businesses are acquired by larger businesses, and folded into
the bigger company. This rewards the original investors, as well as the principals
who started the company and helped to make it successful. The acquisition will most
often pay off in cash, stock in the bigger company, or a mixture of the two.
Established companies are willing to buy open source businesses for a variety of rea
sons. For example, open source technology is often ubiquitous in the market, and
controlling that technology can give the big company important advantages over its
competitors. In addition, an open source platform can create opportunities to build
new proprietary product offerings that run on top of the open source, which creates
new service and licensing revenue. The open source business s revenue may, on its
own, be enough to capture the attention of the larger company.
The reasons that any particular acquirer chooses to buy any other business depend
deeply on the peculiar circumstances of each, so there is no cookbook for building a
company to sell. In general, though, a solid customer base, a track record of consis
tent growth, and a profitable revenue stream are good things.
The last way that small, privately held businesses transform themselves is to offer
their stock for sale on the public markets. This is a much less common practice in
today than it was six years earlier; a business must, in general, have very high reve
nues to make this transition. In addition, the demands on the management team in a
publicly traded company are very different from, and in many ways more onerous
than, the demands on a private company s team. The requirements for reporting
financial information to the public markets and the need to manage the public
investment community s expectations dramatically change the way that a company
president works. As a result, many companies are forced to change their executive
teams before offering themselves for sale on the public market.
Choosing Licenses
One of the most important decisions in a dual-licensing business is what the terms
will be for both the proprietary and the open source license. This issue is much big
ger for the open source license, because that license is never negotiated. People sim
ply download the software and accept the terms. As a result, a mistake in the open
source terms is a mistake every single time the software is distributed.
Academic licenses are poorly suited to dual-licensing businesses, but reciprocal
licenses generally work well. An academic license simply requires acknowledgment
of the owner. Most rational businesspeople would much rather make that acknowl
edgment than hand over precious capital for use of software. A reciprocal license, by
contrast, requires that the customer s own intellectual property be given away under
an open source license. There is a very large population of potential customers who
are more interested in protecting their intellectual property than in saving money.
82 ** Dual Licensing
As a result, the only kind of open source license that makes sense for a dual-licensing
business is a very strong reciprocal license. The best example, of course, is the GNU
GPL. Choosing the GPL gives you the benefit of the work already done by the Free Soft
ware Foundation, or FSF, in drafting the license and defining the key terms. In addi
tion, the FSF has a strong vested interest in demonstrating the enforceability of the GPL,
so, in the event of a dispute over unauthorized use of your dual-licensed product, you
have access to a seasoned legal team that knows the subject well
It is almost certainly a mistake to try to draft your own open source license for a
dual-licensing business. Doing so requires that you understand and apply the funda
mental concepts of open source development and distribution in a new legal license.
This is work you do not need to do if you choose an existing license. More impor
tantly, writing a new license from scratch creates the opportunity to make bad mis
takes. Finally, drafting a new license will require you to educate the open source and
proprietary software business communities about the terms of your own license. This
will create friction and inhibit adoption. You want developers concentrating on your
software, not on your license.
Need and Pain
The interplay between the software product and its open source license is probably
the single most important business issue for dual-licensing companies. The software
product must create need in the market. Ideally, it will be so attractive to customers
that they simply have to use it. At the same time, the open source license must cause
enough pain that some users would rather pay money than endure the pain.
My company makes a product called Berkeley DB. It is an established product with a
good reputation, but the only way for our customers to use it is to combine it with
software they write themselves. That act of combination gives us leverage, because
the resulting work is derived from our software, and we thus can dictate the terms
under which the derivation must be licensed.
Our open source license requires that the entire work be released in open source
form. Open source users, of course, can do this, but the requirement is poisonous to
most proprietary vendors. Our dual-licensing strategy lets the proprietary customers
pay for a proprietary license and keep their own intellectual property secret.
Linux is, once again, a good example of a product for which dual licensing would
not work. Ignoring the ownership issues raised earlier, no customer needs to create
and redistribute derivative versions of Linux. Customers simply want to install and
use the operating system on their computers. None of those actions is forbidden by
the GPL, so there is no pain.
Practical Considerations ** 83
Of course there are businesses making money distributing Linux, but they are doing
so in different ways. Dual licensing works with only certain sorts of software, with
very specific ownership characteristics.
Any vendor considering dual licensing must consider both technology and licensing
when designing a business model. The software technology must be constructed so
that users need to do something specific for example, combine it with their own
intellectual property and distribute the combined work to others to use it. The
open source license must make this activity painful to at least some customers with
money. These customers must be willing to pay enough money to avoid that pain to
make the business profitable.
On the other hand, the open source license must not be painful to the open source
community, or it will undermine the benefits of the cheap and ubiquitous distribu
tion channel that open source licensing provides. Open source users must experi
ence only pleasure in their use of the software, or the product will fail to penetrate
the market.
Measuring the Market
Businesspeople generally measure markets in terms of dollars the amount of money
that customers in the market will spend for a product or service. Dual-licensing busi
nesses need a different metric, because they distribute their software to a combina
tion of paying and nonpaying customers. The result is that a dual-licensing business
can have a much larger installed base than a measure of dollars spent would suggest.
Dual-licensing businesses need to look at this issue pragmatically. Put bluntly, a
dual- licensing business is never going to get all the money on the table. Some users
would rather meet the open source terms than pay money for the software. A dual-
licensing business must balance the size of its installed base, and the concomitant
opportunity to sell more proprietary licenses, with the money that could be extracted
by charging for every use.
The long-term goal of the business is to maximize profits and to grow. By foregoing
some revenue in the short term, a dual-licensing business may make its product ubiq
uitous, which creates additional long-term opportunity. Though you might never get
all the money on the table, you can find yourself sitting at a much bigger table this way.
There are two other benefits to a large installed base, even if not everyone in it pays a
license fee. One, noted earlier, is that the earth is scorched for competitors: the only
way to compete on price with a free product is to pay people to use a competitive
one. This is an expensive way to capture customers.
The other, of course, is the opportunity to sell services independently of license fees.
A large installed base may be willing to pay for consulting and support, even if it is
not willing to pay for the software. Generally, dual-licensing businesses offer these
84 X Dual Licensing
services and book revenue profitably as a result. As a rule, however, dual licensing is
more valuable for the license fees that proprietary users pay than for the service fees
that open source users are willing to pay.
Piracy
Because open source software is widely available, it is easy for software pirates to
make and distribute copies in ways that violate the open source license for the code.
Significantly, it is easy for a user to download the software under an open source
license, and then to use it in ways that only a paid proprietary license would permit.
Piracy is not, of course, a problem unique to open source or dual-licensing compa
nies. Every software vendor indeed, every software developer who distributes a
product runs the risk that unscrupulous users will pirate copies of the product.
Individual vendors and umbrella organizations like the Business Software Alliance
battle the problem continually.
Piracy is a very real business problem for dual-licensing vendors. The two lines of
defense are diligence in protecting intellectual property rights, and consistent and
clear explanations of the terms under which the software is distributed.
Diligence in protecting intellectual property rights is relatively simple. Anytime a
dual-licensing vendor learns of a misappropriation of its software, it must pursue and
resolve the issue. This is no different from the rules that apply to a proprietary soft
ware vendor, of course.
Consistent and clear messaging on the license terms is equally important. Open
source licensing is now generally well understood by the software industry. By
emphasizing the conditions that apply to open source use, and making clear the dif
ference between its paid and proprietary licenses, a dual-licensing vendor can edu
cate its users and capture business before problems crop up.
In general, no responsible business or consumer wants to misappropriate the intel
lectual property of another. The penalties are large, the risks are unacceptable, and it
simply is not fair. Most consumers of software want to obey the law.
Dual-licensing vendors are in exactly the same position as purely proprietary ven
dors. Digital distribution means that copying is easy. There are pirated copies of both
proprietary and dual-licensed software in the world. Vendors of both have the same
law behind them and the same recourse against pirates.
The Social Contract
Open source is much more than an ingredient in a business model, of course. The
movement predates the dual-licensing model by decades, and its long history has
produced a complex and nuanced present. Any business that proposes to use open
source technology, including dual-licensing businesses, must understand and partici
pate in the open source movement as it exists today.
The open source community generally cares a great deal about reputation; compa
nies, as well as individuals, gain status by being smart and by contributing to the
good of the community. Contribution certainly includes developing open source
technology for use by others, and any dual-licensing business will do that. Contribu
tion can also mean, for example, promoting and explaining open source technology
in the press and at industry meetings a task for which businesses are often better
suited than individuals and supporting worthy open source projects with staff time
and money.
It is unusual in business for an outside group that pays a company no money and that
has no legislative authority to have as much influence over a business and its policies as
the general open source community does over open source businesses. If a company
alienates the open source community, the main advantages of open source distribu
tion ubiquity and a large installed base can disappear in a flood of bad press and ill
will on developer discussion lists. Executives at dual-licensing businesses must speak
clearly to their open source constituencies. They must show the community the respect
it deserves in order to earn the community s respect in return.
Besides merely making friends with the open source community, dual-licensing busi
nesses must pay attention to issues that are unique to the business model.
An unwritten social contract among open source developers says that the commu
nity generally will produce software that benefits the community most. This is in
some sense driven by Darwin the people who write open source code work on the
problems they consider most important, so if there is widespread pain around a par
ticular issue, there will be widespread attention to addressing it.
The social contract, of course, is not perfect. For example, many open source projects
are more poorly documented than their proprietary competitors, because very few
programmers enjoy writing documentation, and few will do it without being paid.
While proprietary enterprise software is not always more polished than open source,
it is generally the case that the drudgery in proprietary development gets more atten
tion than it does in open source projects. A programmer working as a volunteer often
lacks the patience to do the exhaustive testing and debugging, interface cleanup, and
so on, that commercial licensees of software have come to expect.
The introduction of companies focused on profits into this mix alters the social con
tract of open source. The change is, in some respects, for the better, but it is a change
nonetheless.
Businesses driven by profits will invest to maximize those profits. A large customer
willing to pay a significant price for a new feature or for changed behavior in a product
will get more attention from a business than will a large number of nonpaying users
86 xx Dual Licensing
who all want some different feature or behavior. In business, customers vote with their
money. In pure open source, contributors vote with their programming time.
A dual-licensing business will, and should, pay attention to the requirements of its
paying customers. The business needs to balance the needs of its paying customers
with the needs of the nonpaying open source user community. After all, the com
pany does not want to alienate its open source users and thereby lose the benefits of
its open source distribution.
As a rule, this issue requires attention, but seldom causes real problems. Paying cus
tomers are usually interested in speed, reliability, or enhancements that make a prod
uct more powerful. Those improvements are all useful and interesting to open source
users as well, so it seldom happens that the open source community loses and the
paying customer wins.
From the point of view of the paying customer, the ability of money to influence the
product roadmap is actually a benefit. Many companies considering adopting open
source technology are concerned that they have no way to influence the develop
ment community to solve real business problems for them. Because dual-licensing
companies care about income and profits, customers know that they can get the ven
dor s attention the old-fashioned way: by pulling out a checkbook.
Trends and the Future
Dual licensing is an innovative strategy that combines open source distribution with
proprietary licensing. The combination confers competitive advantages on busi
nesses that use it. These advantages include a low-cost distribution channel, power
ful product marketing, and a high-margin, scalable revenue stream.
Of course, dual licensing is just one tool that businesspeople can use to build sus
tainable enterprises in a world where technology and economic forces are in con
stant change. The rest of this chapter examines dual licensing in that larger context.
Global Development
The flow of capital and information across borders has transformed the world from a
collection of economic islands into a more integrated global economy. That trend
will surely continue, and will likely accelerate, over the next decade. At the same
time, security concerns, and particularly worries about terrorism, create a strong
political incentive to encourage the development of a prosperous middle class with
an economic stake in the future in emerging economies.
Worldwide economic development is necessarily influenced by information technol
ogy. Leaders of emerging nations are clearly interested in building clean, sustainable
IT industries. Doing so requires a significant investment in education, but also an
investment in enabling technology.
Trends and the Future X 87
Dual licensing provides a way for nascent knowledge economies to grow. Because
dual-licensed software is available for use at no charge under open source terms,
emerging businesses can preserve precious capital by choosing to comply with the
terms of the open source license.
China is an instructive example. In 2004, the Chinese government announced its
intention to invest in the development of a version of Linux tailored for use in the
country, with language and character set support and other new features. The eco
nomic advantage conferred by a low- or no-cost operating system in a country where
an enormous number of computers will be installed soon is obvious. Between 2005
and 2010, China is likely to become the world s largest consumer and producer of
open source software. Consumption will increase earlier, and faster, than production.
Demand for high-quality open source and dual-licensed products will be very high.
Although there is little or no short-term revenue for dual-licensing businesses here,
they do establish a long-term competitive advantage. As these small businesses in
emerging economies grow, and as they build value in expertise or new hardware and
software products, they can choose to pay some of their new capital for the more per
missive terms of the proprietary license. The cost of switching encourages customers to
stay with the product that they know, and the one built into their own products.
This same strategy applies to developed economies. Software vendors are generally
interested in the education market, in part because they want the next generation of
software consumers trained to use their products. Many vendors encourage univer
sity researchers and students to use their products so that the students will prefer
those products when they graduate and eventually recommend software purchases to
their new employers.
Dual-license vendors have an advantage in both cases, relative to proprietary ven
dors. Because the open source license terms permit use at no charge under reason
able conditions, individual business owners, as well as researchers and students, can
choose the open source software easily. They do not need to negotiate a special low-
or no-cost introductory license to use the product. There is much less friction in the
distribution of open source software than in most proprietary software distribution,
and the lower friction translates into higher adoption.
Open Models
Dual licensing is, at base, the combination of a venerable business strategy licens
ing software for money with a relatively new open source distribution strategy. This
combination is interesting and valuable on its own, but it is by no means the only
such combination that is possible.
The global Internet makes the distribution of content much cheaper and easier than
it ever was before. At the same time, it eliminates barriers to sharing among widely
88 J* Dual Licensing
dispersed individuals and companies. The effect is to create new opportunities for
the collaborative creation of intellectual property.
Some examples of this collaborative development were all but unknown just a few
years ago. Weblogs, or blogs, are common today. They have emerged as an alternative
source for news and information, replacing older media such as newspapers and radio,
especially for fast-breaking stories. Similarly, the publication and production of scien
tific journals is changing. Single-vendor control over high-profile journals, and the ven
dor s ability to dictate pricing to the market, is eroding because researchers can collabo
rate and publish their research online more easily than ever before. Finally, some web
sites encourage user contributions to make themselves more valuable to visitors. An
excellent example is the book and other product reviews on Amazon.com. Amazon s
visitors share their reviews with one another because they benefit from that sharing,
but Amazon itself gains an enormous advantage because of the depth and breadth of
those reviews.
In all three of these cases, old-fashioned ideas, like news distribution, journal publi
cation, and product reviews, have been transformed by the open, collaborative pro
cesses that the Internet encourages. Licensing is as much an issue here as in software
distribution ownership of the content, and the right to distribute it online, must be
considered carefully.
Collaboration and open distribution continue to transform the way that businesses
operate. That transformation necessarily damages some established businesses, espe
cially those where a middleman controlled the flow of goods or information, and was
able to extract a fee from the flow. The Internet allows individuals to bypass that
middleman the well-known "disintermediation" strategy and to share and pub
lish on their own.
Any new business built on a disintermediation strategy must consider the law.
Unlawful distribution of copyrighted music files is theft, not sharing, but that fact
alone does not mean that the existing music retailing industry makes sense in a
world with cheap ubiquitous bandwidth. The next generation of businesses must
find ways to use the legal system to protect intellectual property, even while they
take advantage of the powerful collaborative properties of the global Internet.
The Future of Software
Open source has transformed the way that software is produced. Now, with dual
licensing, open source is changing the way that proprietary software is distributed.
Dual licensing will never replace either pure proprietary or pure open source strate
gies. There are compelling reasons for both to exist.
Purely proprietary distribution allows companies to invest significantly in new devel
opment and to be rewarded for that investment. Particularly at the edge of informa
tion technology, where the newest products and services are built, businesses will
use proprietary licensing to protect their competitive position and to extract maxi
mum value from their efforts.
Purely open source development and distribution, on the other hand, reduces costs
of core infrastructure for consumers, and powerful market forces encourage invest
ment in that cost reduction. Open source has been most successful in those sectors of
the market where technology is mature and stable operating systems, databases,
web servers, and middleware. This is not to say that open source development is not
innovative, but its impact has been largest in the cases where it has commoditized
products in mature markets.
The net effect of open source distribution, from the point of view of the consumer, is
to reduce the total cost of software licensing. Dual licensing does nothing to reverse
this trend; dual-licensed software will exert downward price pressure on established
markets just as purely open source software does, though the net reduction in costs
will be lower since some consumers continue to pay for software licenses.
Dual licensing will continue to grow in popularity as new and established businesses
apply the strategy to new opportunities. Competitive pressure ensures that busi
nesses will look for ways to gain advantages over one another, and building a hybrid
business offers advantages in many cases. Other novel hybrid strategies will, no
doubt, appear in the future.
90 X Dual Licensing
if CHAPTER 6
Ian Murdock
Open Source and the
Commoditization of Software
It is said that the only things certain in life are death and taxes. For those of us in the
IT industry, we can add one more to the list: Commoditization. The question is, how
do we deal with it, particularly if we are IT vendors and not simply IT consumers, for
whom Commoditization is an unquestionably positive event?
Commoditization is something that happens to every successful industry eventu
ally success attracts attention, and there are always competitors willing to offer
lower prices to compensate for lesser-known brands or "good enough" quality, as
well as customers to whom price means more than brand, quality, or anything else
the high-end providers have to offer.
Often, to remain competitive at lower price points, the low-end provider employs a
strategy of imitation for example, investing less in research and development than
its high-end peers, and instead relying on the high-end providers to "fight it out" and
establish standards and best practices it can then imitate in its own products.
This strategy works because success also breeds interoperability. Unless a company
monopolizes a market (a temporary condition, given today s antitrust laws), an
industry eventually coalesces around a series of de facto standards that govern how
competing products work with each other, or how consumers interact with like
products from different vendors. In other words, given time and a large enough mar
ket, every industry naturally develops its own lingua franca.
This kind of natural standardization is good for consumers and for the world as a
whole. Few people, for example, would know how to type if every typewriter used a
different layout for its keys, and the telephone wouldn t be in widespread use today if
each carrier s network couldn t talk to any of its competitors networks. And where
would we be today without the descendants of typewriters and telephones namely,
computer keyboards and telecommunications?
Of course, from any incumbent s point of view, an ideal world would allow, say, the
market leader in typewriters to own the layout of its product s keys, so anyone who
learned to type using its product would face huge barriers to switching to a competitor s
product. Fortunately, the layout of a typewriter s keys and similar interoperability fea
tures are very difficult proprietary positions to enforce, so once a standard way of inter-
operating emerges, all vendors are free to imitate that standard in their own products.
The moral of the story is that standardization, and thus commoditization, are both
natural market forces as well as key events in human history. When an industry
matures and competing products become more or less interchangeable commodities,
this allows new industries to build atop them to create new and innovative products
that would not have otherwise been possible if the industries they built upon had not
standardized. In the case of typewriters and telephones, it is clear that the industries
they enabled the computer industry, e-commerce, etc. greatly exceed the size of
the industries that enabled them, both economically and in their contribution to
human progress.
So, how do incumbent firms fight commoditization? Another moral of the story is
that they shouldn t. The forces of commoditization, being natural market forces, can
not be beaten. Yet time and time again, incumbent firms fight them. First, the chal
lengers are ignored or dismissed as cheap knockoffs, unsuitable for any but the least-
demanding customer. Then they are ridiculed for lacking imagination and innova
tion. Then, invariably, they are imitated but by this point, it is too late, as the mar
ket has fundamentally changed, and the incumbent finds itself unable to compete
because the challengers were built for a commodity market and the incumbent was
not. In very simple terms, this is Clayton Christensen s Innovator s Dilemma at work.
This chapter argues that the open source movement is just another commoditization
event and that, like other commoditization events, it represents a disruptive shift in
the software industry as well as an opportunity for entrant firms to unseat the estab
lished firms against seemingly overwhelming odds. That being said, commoditiza
tion does not equate to certain death to the established firms if they have the vision
to see beyond the disruptive events that may befall them in the short term and can
adapt themselves to the new commodity environment. Above all, this chapter aims to
convey that commoditization is a natural and unstoppable force that is good for
everyone involved if that force is allowed to develop on its natural course.
92 * C Open Source and the Commoditization of Software
Commoditization and the IT Industry
The computer industry managed to escape the forces of commoditization for the first
20 years or so of its life a natural occurrence given the industry was young enough
and small enough that standards had not yet had the opportunity to emerge. In the
first two decades of the industry, computer manufacturers delivered an end-to-end
solution to the customer, from the hardware on up through the operating system
software that ran the hardware to the applications that ran on top of the operating
system. Every layer of the stack and, most importantly, the interfaces between
them was proprietary to the computer vendor. As a result, every computer spoke a
different "language," and it was difficult to get different types of computers to "talk to
each other" and interoperate.
Because of these incompatibilities, the initial choice of hardware implicitly tied the
buyer to an operating system; in turn, the operating system dictated what applica
tions the buyer would be able to use. Over time, the high cost of computing technol
ogy made it financially impractical for the buyer to move away from the incumbent
vendor because previous investments in that vendor s technology would have to be
discarded. The combination caused users to become "locked in" to a single vendor.
However, as the industry matured, the dynamic changed. Entrant firms such as
Apple, Apollo, and Sun saw the opportunity to create products that targeted an
entirely new class of computing consumer the individual user that could not
afford the mainframes and minicomputers sold by established firms such as IBM,
DEC, and Data General.
By focusing on "good-enough" quality and lower prices, and by tapping into years of
consumer frustration caused by batch processing, timesharing, and incompatibility
between proprietary stacks, the new "personal computing" products were received
enthusiastically and began to appear in offices and dens everywhere.
The strategies employed by one entrant firm in particular and one established firm in
particular would forever change the computer industry. The latter, ironically, would
lead directly to the commoditization of the hardware industry, and the former would
lead directly to the ongoing commoditization of the software industry.
On the hardware side, IBM sought to stem the rising tide of Apple by introducing its
own personal computing product, the IBM PC. Because of internal cost structures
designed around multimillion-dollar mainframe products as well as an aggressive prod
uct launch timeline, IBM decided to use off-the-shelf parts for the IBM PC instead of
following its traditional approach of developing proprietary components in house.
On the software side, Sun sought to attain a competitive advantage against the pro
prietary stacks of the mainframe and minicomputer vendors by basing its worksta
tion products on the Unix operating system. Unix was already hugely popular in aca-
demia and corporate research labs, so this approach gave Sun instant access to a large
Commoditization and the IT Industry X 33
portfolio of compatible applications as well as an enormous user base already famil
iar with the operating system that shipped on its products.
In other words, Unix was an open system that is, a system based on open standards.
Unix variants from different groups (for example, AT&T Unix and BSD Unix, the
two variants in widespread use in the early 1980s) were largely based on the same
APIs. Because of this, applications could be easily ported from one version of Unix to
another, and users familiar with one version of Unix could easily learn to operate a
different version.
Decommoditization: The Failure of Open Systems
The impact of Sun s decision was the first to be felt. Open systems quickly became
popular because of the compatibility they offered a completely foreign notion at the
time. Users adopted systems based on open standards because doing so allowed
them to move freely among products from different vendors, avoiding the lock-in
common in the proprietary world. Soon, numerous companies including some of
the mainframe and minicomputer vendors launched Unix-based workstations to
compete with Sun s, and Unix became big business.
As the Unix market grew, the competition for customers became fierce. "Compatibil
ity among products," which helped the Unix vendors win converts from the propri
etary world, changed from an asset to a liability. In an attempt to imitate the lock-in
strategies that had served the mainframe vendors so well for so many years, the Unix
vendors themselves began adding incompatible features to their respective products.
This ultimately fragmented the market and alienated customers. By the late 1980s,
Unix was no longer a lingua franca for the workstation market, but a veritable tower
of Babel.
Meanwhile, IBM s decision to use off-the-shelf parts in the IBM PC inadvertently cre
ated the industry s first open hardware platform. It was not long before a new wave
of entrants, such as Compaq, Dell, and Gateway, realized they could build products
that were 100% compatible with the IBM PC, thus gaining access to a large base of
applications and users, much as Sun had done by adopting Unix. On the component
side, two companies experienced the biggest windfall from IBM s decision: Intel and
Microsoft. As the clone market emerged, both companies found an entire market to
sell to, not just a single company a much larger opportunity, even if that single
company was IBM.
At this point, the events set in motion by IBM and Sun intersected. As the Unix ven
dors were competing vigorously with each other through the introduction of propri
etary extensions to Unix, thereby "decommoditizing" the lowest level of the software
stack, the fully commoditized PC waited in the wings. As PCs became more power
ful, they began to replace workstations, and as PCs continued their march upmarket,
94 X Open Source and the Commoditization of Software
the market power of the PC vendors (and, thus, the vendors of their constituent
components) increased dramatically. In particular, the new ubiquity of the PC helped
Microsoft s Windows operating system replace Unix as the lingua franca of not just
the new PC-based workstation market, but also of the entire computer industry.
Why did Unix fail while the PC has succeeded beyond anyone s wildest expecta
tions, particularly those of its progenitor, IBM? Both began life as open systems as
ecosystems of sorts and both grew enormously popular because of their open
nature. On the Unix side, though, each vendor tried to own the ecosystem by itself,
and, in the end, all they collectively managed to do was destroy it. Meanwhile, on the
PC side, the ecosystem won out in the end, for the betterment of all who embraced
that ecosystem; and, most importantly, the existence of that ecosystem enabled the
creation of other ecosystems above it. For example, without a truly open platform in
every office and den, the Internet would not have been able to take root, and it too
evolved into an ecosystem that has spawned countless products, services, industries,
and ecosystems that were previously unimaginable.
Linux: A Response from the Trenches
It was into this environment that Linux emerged in the early 1990s. At first the mere
hobby project of a young college student, Linux captured the imagination of those who
could best be described as the "collateral damage" of the Unix wars. Two features of
Linux made it appeal to this large group of users and developers: its compatibility with
Unix, with which they were intimately familiar; and that it was licensed under the GNU
General Public License (GPL), which not only allowed the scores of Unix refugees to
contribute to its development, but also guaranteed that Unix-style fragmentation could
never happen to the result of the community s work, at least at the source-code level.
Linux grew by leaps and bounds during the 1990s. As with previous challengers, it
was first ignored, then ridiculed, by the incumbents, primarily Microsoft, which had
masterfully used its position as the de facto standard operating system to expand into
numerous additional markets and gain additional even unprecedented market
power. Unlike so many companies that had come before it, Microsoft wielded the
forces of commoditization expertly. By offering its products at lower prices than its
competitors could afford to offer them, Microsoft preemptively commoditized many
of the markets in which it competed, depending on high volume to make its prod
ucts profitable and making it impossible for challengers to undercut it.
As Microsoft s power grew, so did the desire of Microsoft s competitors to counter it.
By the late 1990s, it was clear that Linux was a powerful force, and many of the
industry s largest companies began to see it as a competitive weapon. These compa
nies also recognized that the power behind Linux wasn t so much its technology as
its licensing and development model, by now referred to as "open source" and in
particular, the open source model s ability to "out-commoditize" Microsoft.
Linux: A Response from the Trenches * 95
The fundamental question is this: why is Linux (and the open source movement it
helped launch) able to out-commoditize Microsoft? Because it, like the PC, the Inter
net, and the other open systems and open standards we take for granted today, is
more of an ecosystem than a technology. Indeed, Linux builds above those previous
ecosystems without open, commoditized hardware, and without the Internet to
enable the open source development model to work, Linux would not exist today.
Microsoft may wield the forces of commoditization more expertly than any company
that has come before it, but its platform is not an ecosystem. By definition, an ecosys
tem is an environment to be shared, not owned. Linux is positioned to become the
lingua franca of the lowest level of the software stack, if we never forget it is an eco
system and not a product to be owned. Looking at the lessons of the past, if it
remains an ecosystem, we all win. If not, we destroy it.
"So, How Do You Make Money from Free Software?"
If the open source movement represents the commoditization of software, how can
the challengers of today s software industry utilize its commoditizing power to unseat
the incumbents, Microsoft in particular? Perhaps more importantly, if this strategy
succeeds, is there money to be made in a software industry that has been commod
itized? Finally, are there lessons that can be applied from past commoditization
events, particularly the events that reshaped the hardware industry in the 1980s?
For a textbook example of how to turn the commoditization of an industry into busi
ness advantage, one need look no further than Dell Computer. Dell, of course, was
one of the companies that started life in the mid-1980s to build IBM clones. Dell s
initial claim to fame was "build to order," taking advantage of the fact that a PC was
not really a product in itself, but rather, an assemblage of numerous products that
any individual with a moderate amount of skill could assemble himself a direct lin
eage from IBM s decision to base the original IBM PC on off-the-shelf parts.
Unlike some of its competitors, Dell saw itself for what it truly was: an assembler of
off-the-shelf components and a distributor of these components in a form its custom
ers found useful namely, a complete PC. Dell gave its customers choice not an
overwhelming amount of choice, but enough choice to give those with the skill to
build their own PCs reason to buy from Dell instead of building themselves. Its com
petitors, on the other hand, attempted to mold the PC into a monolithic, unchange
able product, a collection of specific components from specific vendors with the
occasional bit of proprietary technology added to the mix a thinly veiled attempt to
decommoditize the PC standard and own it all to themselves.
To accommodate its new approach to selling hardware, Dell had to develop a new kind
of business model. Over the years, the Dell model became more about the assembly of
product than the final product of that assembly process. Dell became remarkably good
96 * * Open Source and the Commoditization of Software
at assembling components from a multitude of suppliers into cohesive wholes, and in
negotiating with those suppliers to get the lowest possible price. It stuck to commodity
components, allowing the market to pick winning technologies and resisting the temp
tation to invest heavily in the R&D required to play the proprietary lock-in game its
competitors were playing. It employed unusual tactics on the sales side, most notably
selling directly to the consumer instead of going through wholesalers and resellers,
each of whom took a substantial slice of the profit margin.
As a result of its streamlined processes and lower cost structure, Dell was able to sell
PCs at a much lower price than its competitors could. As the PC market grew, and as
the market commoditized further with each failed proprietary extension to the PC
standard, Dell s position grew stronger. As the PC began to move upmarket, it sim
ply became less expensive to "outsource" the assembly of the PCs to a supplier that
specialized in assembling them, and Dell was extremely well positioned to play this
new role. Today, as the commoditization of PCs extends to other parts of the hard
ware market servers, storage, printers, handheld devices Dell continues to be
extremely well-positioned, and its entry into a new market is often taken as impend
ing doom for that market s established firms.
The First Business Models for Linux
So, what lessons can we leam from Dell as open source commoditizes the software
world? Namely, that operating in a commodity market calls for entirely different busi
ness models than the business models that have preceded them. Beyond general conclu
sions such as this, what specific lessons are there to be learned from Dell s success? As a
start, we will look at the lowest layer of the software stack, the operating system, and
attempt to draw parallels between Dell s successful strategy and the strategies of today s
open source operating system vendors namely, the Linux distribution companies.
To millions of users around the world, "Linux" is an operating system. They re right,
of course, but the reality is far more complex than that. First of all, Linux proper is
just the kernel, or core, of the operating system the rest of the software that com
prises the "Linux operating system" is developed independently from the kernel, by
different groups that often have different release schedules, motivations, and goals. 1
Traditional operating systems are built by cohesive teams, carefully coordinated
groups of product managers, project managers, and programmers at companies and
universities. In contrast, Linux is built by thousands of individuals hackers and
hobbyists and professional programmers some paid to work on specific projects
but the majority simply working on what interests them. And the reality is even more
involved: Linux is not just a single system, but hundreds of subsystems, programs,
1 To avoid confusion, I will use the term Linux to refer to the operating system, following
standard usage. When referring to just the Linux kernel, I will say "the Linux kernel."
The First Business Models for Linux * * 97
and applications, themselves developed by their own communities of individuals
around the world.
So, who glues all this mishmash together into something that actually looks like an
operating system? Since almost the inception of the Linux community, this has been
the job of the "Linux distribution," a curious term in itself for those coming from
broader computing circles accustomed to operating systems being built by cohesive
teams, or at least teams of cohesive teams.
A Linux distribution is a collection of software (typically free or open source soft
ware) combined with the Linux kernel to form a complete operating system. The first
distributions (HJ Lu s boot/root diskettes, MCC Interim) were very small affairs,
designed simply to help bootstrap the core of a Linux system, on which the user
(typically a Linux hacker himself, eager to get into writing some code) could com
pile the rest of the system by hand and as needed.
A second generation emerged (SLS, Slackware, Debian) that aimed to expand the
breadth and depth of software shipped by the first-generation distributions, includ
ing software typical end users of Unix systems might find useful, such as the X Win
dow System and document formatting systems. In addition, the second-generation
distributions attempted to be easier to install than the first, as they were targeted not
at Linux hackers eager to get into writing code, but rather, at the ever-expanding col
lection of end users Linux was just beginning to attract at the time.
As Linux s user base grew, many in the Linux community began to sense a business
opportunity, and the first Linux companies were formed: Red Hat, Caldera, SuSE,
and many others whose names have long been forgotten. These companies formed
around the concept of selling commercial distributions to the expanding Linux user
base. A third generation of Linux distributions was born.
The commercial opportunity was ripe, as the primary means of acquiring Linux to
that point had been the Internet, and up to that point, the primary users of Linux
had been students at universities, where Internet access was plentiful. However, in
the broader population where Linux was beginning to get noticed, potential Linux
users were lucky to have dial-up access to online systems such as CompuServe.
Combined with the rising popularity of CD-ROM drives and the growing size of dis
tributions to incorporate more and more software to appeal to a wider and wider
audience, the first business models for Linux were born.
These business models served the first Linux companies well through most of the
1990s and, indeed, this is where the term "Linux distribution" originated the com
panies themselves were little more than assemblers and distributors of Linux soft
ware, including the Linux kernel, the GNU compiler toolchain, and the other soft
ware that came with a typical Linux system. As the typical Linux user became less
and less of a technologist and more and more of a traditional end user, the focus of
98 * * Open Source and the Commoditization of Software
the distributions shifted from simple assembly and distribution to making the distri
butions easier to install and use.
Linux Commercialization at a Crossroads
Of course, as distributors of a commodity (for, after all, any company could easily
become a Linux distributor all the software being distributed was free), these new
Linux distribution companies lacked the "proprietary advantage" every business
needs to survive, not to mention thrive. So, following time-honored tradition, many
of the Linux companies kept their "value add" proprietary in an attempt to better
compete with each other.
For a time, one company took a different approach: Red Hat. After a brief flirtation
with proprietary extensions, Red Hat announced its products would include only
open source software. Why? It listened to what the market was telling it. The scores
of Unix refugees, now occupying important positions in the companies that were
adopting Linux in droves, had already been down that path; furthermore, the giants
of the industry now supporting Linux, which by now included virtually all of the
companies that had participated in Unix s destruction and had seen the conse
quences, saw Linux as a commodity platform that could recapture the position they
had collectively handed to Microsoft in the early 1990s. As a result, Red Hat emerged
as the market-leading supplier of Linux software.
However, as the Linux market continued to grow, and as it began to take a place at
the core of the computer industry, Red Hat bumped up against its own ceiling,
caused by lack of proprietary advantage other companies were beginning to take in
billions of dollars per year in revenue from Linux-based sales, while Red Hat seemed
to have hit its peak at $100 million or so.
To counter this, Red Hat came up with a strategy that was still in keeping with its
"100% open source" market position. Instead of focusing on selling Linux as a boxed
product, it would sell software updates to those boxed products in the form of
annual subscriptions. This strategy by itself proved inadequate, as the software
updates it distributed were available for free. So, it combined the new strategy with
another maneuver, a redefinition of the "Linux platform" to one it could define and
control itself.
Moving away from its traditional, freely redistributable Red Hat Linux product line, it
launched Red Hat Enterprise Linux. The key part of the strategy behind Enterprise
Linux was that independent software vendors (ISVs) and independent hardware ven
dors (IHVs) were directed to certify to this new "high-end" Linux platform, while the
old Red Hat Linux was relegated to software developers and infrastructure roles. The
other key pan of the strategy was that Enterprise Linux was no longer freely redis
tributablethe acquisition of the product was tied to the subscription, and any
redistribution of the product caused the subscription to be null and void.
99
In other words, if Linux users wanted access to the applications and hardware certi
fied to Red Hat s platform, they had to run Enterprise Linux. To run Enterprise
Linux, they had to acquire it from Red Hat via the new subscription model, which
entailed signing a subscription agreement that forbade them from redistributing it.
More precisely, customers were still free to redistribute Enterprise Linux, but in
doing so, they lost all support from Red Hat and, most importantly, from the legions
of ISVs and IHVs that certified to the Red Hat platform. Red Hat s transformation was
complete when it dropped its Red Hat Linux product line altogether in 2003. Red
Hat s new model was still in keeping with the letter of the open source movement
but no longer with its spirit.
Proprietary Linux?
By any measure of the term, this is proprietary lock-in, albeit proprietary lock-in that
does not involve the traditional attainment through source code intellectual property
i.e., proprietary software. In a way, Red Hat has learned from the lessons of Dell s suc
cess: it has come up with a clever new business model to match the commodity mar
ket in which it competes operating systems used to be sold as products in boxes or
bundled with other products, and Red Hat realized this approach would not be profit
able in the new operating system market Linux was helping to create; so it found a new
way to sell its operating system products that was profitable.
However, in a very real way, Red Hat s model is also dangerously close to the model
employed by the Unix vendors, which had catastrophic consequences. It is attempt
ing to decommoditize the Linux platform, not through proprietary extensions in the
form of software, but through a redefinition of the Linux platform to its own ends
and the restriction of how that platform can be used and redistributed. Sure, the
source code to its platform is still freely redistributable, but with the shift of propri
etary position away from source code intellectual property and to third-party rela
tionships and subscription agreements, the rules of the game have changed dramati
cally here as well.
What s at Stake?
Red Hat s new business model may be helping its revenues in the short term, but is it
in Red Hat s best long-term interest not to mention the best interest of the Linux
ecosystem as a whole if Linux is owned by a single company, or if Linux fragments
like Unix did as Red Hat s competitors follow down the proprietary Linux path?
If Red Hat s business model is wrong, what is the right business model for Linux dis
tribution vendors? In my view, the Dell model can be taken a step further than any of
the Linux distributors have thought to take it. After all, what are open source tech
nologies but commodity software components, and what are Linux distributions but
assemblers of those components into products the end customer finds useful?
100 * C Open Source and the Commoditization of Software
Indeed, such an "assembler of commodity software components" business model might
fully realize many of the benefits of Linux that the traditional, product-oriented busi
ness models of Linux distribution companies have failed to capture: flexibility and
choice, without the substantial expertise and financial investment required to adapt a
Linux distribution for its own purposes. What if a Linux distribution was a collection of
parts that could be mixed and matched to suit the needs of the company buying it
instead of a one-size-fits-all, monolithic product like the Linux distributions of today?
As with new business models that have come before it, such an approach would
open Linux to new markets, markets that are already using Linux, but for whom
today s product-oriented business models are ill-suited: server appliance vendors,
set-top box makers, and others to whom Linux is an invisible vehicle for driving
their own products. In their world, Linux is a piece of infrastructure, not a product
to be owned by Red Hat or otherwise.
Indeed, this is the model being employed by my company, Progeny. Our approach is
to embrace the commoditizing effect Linux and open-source software have on the
software industry instead of fighting it. Since every company needs a proprietary
advantage of some kind, we ve chosen to focus on building advantage through our
processes, not technology, much as Dell did in other words, to leverage our exper
tise in distribution building to help other companies assemble commodity software
components from disparate places into cohesive wholes, and to do so in a scalable
and flexible way.
Beyond building a better business model around Linux, what s at stake? I contend far
more is at stake, for one simple reason: Linux needs to remain a commodity, as it is
now a core piece of infrastructural technology at the heart of the computer industry.
Indeed, Linux was enabled by the commodity nature of the last infrastructural tech
nology to redefine the IT industry: the Internet.
In "IT Doesn t Matter," which appeared in the May 2003 edition of Harvard Business
Review, Nicholas Carr points out that infrastructural technologies "[offer] far more
value when shared than when used in isolation." What happens if Linux is decom-
moditized and ends up being the proprietary product of a single company to serve its
own purposes? What if the PC or the Internet had been decommoditized? Where
would we be today?
Carr s essay provides hope that there is money to be made in infrastructural technol
ogies that have been fully commoditized, and that there s no need to try to own those
infrastructural technologies:
. . .the picture may not be as bleak as it seems for vendors, at least those with the
foresight and skill to adapt to the new environment. The importance of infra-
structural technologies to the day-to-day operations of business means that they
continue to absorb large amounts of corporate cash long after they have become
What s at Stake? X 101
commodities indefinitely, in many cases. Virtually all companies today con
tinue to spend heavily on electricity and phone service, for example, and many
manufacturers continue to spend a lot on rail transport. Moreover, the standard
ized nature of infrastructural technologies often leads to the establishment of
lucrative monopolies and oligopolies.
Carr s essay also provides historical perspective on the commoditization process:
...infrastructural technologies often lead to broader market changes. [...]A com
pany that sees what s coming can gain a step on myopic rivals. In the mid-
1800s, when America started to lay down rail lines in earnest, it was already
possible to transport goods over long distances hundreds of steamships plied
the country s rivers. Businessmen probably assumed that rail transport would
essentially follow the steamship model, with some incremental enhancements.
In fact, the greater speed, capacity, and reach of the railroads fundamentally
changed the structure of American industry.
In a commodity world, technologists need to think about innovating in their business
models as much as (if not more than) innovating in their technology. Of course, it s a
natural trap for the technologist to think about technology alone, but technology is but a
small part of the technology business. Look for your competition s Achilles heel, which
more often than not is an outdated business model in a changing world, not technol
ogy. To attack your competition with technology alone is to charge the giants head on,
and this approach is doomed to failure the vast majority of the time.
Businesses operating in a commodity world also need to build business models with
the larger ecosystem in mind. It is tempting, once the incumbents have been over
thrown through the powers of commoditization, to lapse into the same old propri
etary lock-in strategies that served the former incumbents so well. In effect, though,
this is decommoditizing the industry, "poisoning the well." It is possible to build a
successful business in a commodity market, as Dell and many others before it have
shown, and in the long run, it is far better to ride the forces of commoditization than
to fight them.
102 ^ > Open Source and the Commoditization of Software
t CHAPTER 7
Matthew N. Asay
Open Source and the Commodity
Urge: Disruptive Models for a
Disruptive Development Process
Open source hastens software s natural trend toward standardization/commodification.
While technologically innovative companies will always find ample customer interest,
the most important innovations for the next decade of software will come from business
model innovation, mostly spawned by open source license requirements. Open source
builds a new intellectual property regime centered on the source of code, not source
code. Protection, in other words, shifts to "owning" the code creator, rather than the
product she creates. Those business models that acknowledge this and leverage it will
yield better profits than those that attempt a halfway embrace (or rejection) of open
source.
Introduction
We are missing the point. Yes, open source imposes dramatic changes on the soft
ware industry, and yes, it is roiling the fortunes of many an established vendor. It
will continue to do so, and at an increased pace. Yet despite the sometimes
anguished, sometimes giddy reception that open source has provoked in the IT
world, open source is not novel. It is not odd.
Open source is simply the software world s mechanism for becoming just like every
thing else.
All the world s a commodity or a service to support and distribute commodities:
this book that you are reading, the chair that supports you, the restaurant you will
eat at tonight everything including, increasingly, software, thanks to open source.
Open source accelerates the natural progress of software toward commodification, or
standardization.
It is critical that IT vendors understand this so that they can deploy (or fight, if they
so choose) open source effectively, and more intelligently choose how and where to
innovate. Open source does not destroy all value in software innovation; instead, it
shifts the control point from the code itself to the creator of the code. In so doing,
open source software will not pillage all closed source software. As in other indus
tries, there will continue to be plenty of room for upmarket vendors (e.g., Whole
Foods in grocery retailing; Starbucks in coffee; and Nordstom in retail clothing).
That said, there is no room for middling and muddling. Open source will commod
ity from the bottom up while "upmarket" vendors will dominate "up the stack."
Everything else will be a wasteland. Just as Safeway finds itself pummeled by Wal-
Mart and Whole Foods so, too, will middle-ground IT vendors find themselves
grasping at a dwindling market opportunity.
Open source offers hope, but perhaps not for the reasons normally associated with it.
Much has been made about the open source revolution, and with good reason. But
perhaps the best reason has little to do with development of source code, and instead
has much to do with distribution, marketing, and sales. In other words, what we
thought was a software development methodology may have far more importance as
a business strategy that undercuts competitors while driving down costs and shifting
control to buyers. In such a world, those who understand and leverage open source
commodification (or escape it) will thrive everyone else will be marginalized into
economic oblivion. Commodification, the highest stage of capitalism; open source,
the highest stage of software.
A Brief History of Software
Once upon a time, software did not matter hardware did. Software was something
that hardware vendors wrote to help them sell hardware. Little more. Software was
important because it made hardware operate, but customers understood that they
were paying for hardware, and not the software that ran on top of it. (This is still
somewhat true of certain areas of the embedded software market.)
As hardware commodified, software grew in importance as a differentiator with these
same customers. Not all hardware commodified at the same pace: Solaris servers, for
example, handled a workload in a way that commodified hardware could not, and
Sun consequently charged a premium. But the real premium increasingly gravitated
up the IT stack to the applications that people ran on their hardware. Hardware was
important, but only because the applications had to run on something. With the rise
of Dell and other commodifiers, however, IT buyers came to care less and less about
104 x C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
the "guts" of their computing experiences they bought systems for the applications
they could run, for the productivity they could achieve.
No single company did more to send the applications trend into hyperdrive than
Microsoft. Microsoft made software easily consumable by the masses. By simplifying
computing, and by doing so at a dramatically lower cost, Microsoft grew the market
by competing against nonconsumption and underconsumption, inviting multitudes
of average users into the hitherto closed world of computing. Microsoft s Visual Basic
lowered the bar of expertise to be a proficient developer, and its Office suite created a
market of home and business users who suddenly could create brochures, quality let
terhead, etc. Whatever open source developers feelings about Microsoft, they should
acknowledge Microsoft as the natural parent to their own brand of commodification.
For this is what open source is doing: commodifying software. We are now at the
point where mainstream software is becoming commodified by the open source com
munity, perhaps pushing all value to the services that support hardware and soft
ware. Microsoft, in a sense, is being out-Microsofted.
In this world, customers benefit as vendors focus on solving their business prob
lems, instead of innovating new methods to achieve customer lock-in. Much of
today s IT world is composed of expensive, monolithic software "solutions" that end
up creating complexity and integration problems, instead of resolving customer
problems. That is, today s IT industry is a morass of conflicting standards, complex
installations, tepid product interoperability, and expense all products of the indus
try s Wild West "level of thinking" in its adolescent years. Increasingly, however, cus
tomers are tired of subsidizing the disarray and are turning to open source as a way
to get more for less. As open source proliferates, the cost of infrastructure software
will plummet, freeing up resources that the CIO can spend on resolving application
requirements up the stack.
Vendors, for their part, also benefit from increased use of open source, because it
removes the "IP safety blanket." Because code is open, vendors must find innovative
ways to satisfy and "lock in" customers. Copyright and patent are fine, but they pit
the vendor in an adversarial relationship with the customer, whereas open source
control mechanisms tend to force vendors to win by intimately understanding and
fixing their customers business problems. In addition, this commodification of IT
will push vendors to move up the stack (and off the stack, into services) to deliver
increased customer loyalty/value. Finally, as prices for software drop to match the
drop in hardware costs, more buyers will enter the market, increasing the size of the
market. Everyone wins.
A Brief History of Software
A New Brand of Intellectual Property Protection
To fully appreciate this trend, it is critical that we better understand the intellectual
property regime powering the open source revolution. Intellectual property (IP) law
has always been about control. That control benefits creators by holding off would-be
competitors long enough to allow the creator to attempt to profit from her innovation. I
write a piece of software; I copyright it; I sell it (assuming it is a useful piece of soft
ware and I have adequately marketed it so that people know about it). Simple. This has
been the software industry s dominant model for decades, and has created a few mam
moth software companies that have successfully exploited their IP to generate billions
of dollars in revenues. In this model, exclusion (i.e., the ability to keep competitors or
customers from copying one s code and distributing it to others) yields profits. In this
model, the code itself locked up and protected matters most.
In the open source world, at least as defined by the GNU General Public License
(GPL), IP continues to play a critical role, but it is a different kind of IP. Dubbed
"copyleft," open source IP focuses on keeping code access open rather than closed.
And, unlike in the world of proprietary software, the code matters less than the
coder anyone can see the code, but not everyone can replicate the coder s influ
ence on the community to which she contributes her code. By virtue of her contribu
tion, she builds influence in her chosen code community, and this influence trans
lates into a new kind of IP: reputation property instead of intellectual property.
In this new world of open source, reputation property means as much as or more than
traditional intellectual property. If I employ the developers on a given project, I have a
measure of control over the direction that the open source project will take. But even
more importantly, the more developers I employ who work on, say, the PostgreSQL
database project, the more likely it is that would-be customers will trust me to be able
to support it. Once a company is thought of as the default support vendor for a given
project, the harder it becomes to dislodge that vendor. This jibes perfectly with other
commodity businesses where brand, price, and service provide the only lock-in, a
benevolent lock-in that customers choose instead of one that vendors impose.
In this way, the open source code creator exercises a form of control over her cre
ation, and that control translates into her (and only her) ability to charge a premium
for the software. As an open source creator, then, my options for deriving profit from
my creation are not more limited, but they are different. Instead of a limited monop
oly guarded by law, I have a monopoly guarded by common sense: buyers want to
buy from the most qualified source of support. They pay to have access to the source:
not the source code, but the source of the code.
This distinction is important. The importance of source code gets trumpeted so often
that one would think that every IT buyer on the planet is clamoring for access to
source code. They are not. Indeed, Microsoft recently conducted a survey of its cus
tomers and found that roughly 60% felt that access to source code was "critical." But
106 * C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
when pressed on the matter, 95% said that they would never look at the source, and
a whopping 99% said that they would never modify it. (If they did, chances are that
such modification would violate their support agreement anyway, whether their ven
dor was Microsoft, Novell-SuSE, Oracle, Red Hat, etc.) In sum, customers perceive
source code access to be important, but are not exactly sure why. As I will detail
shortly, the "why" relates to a desire for additional choice and control, and choice
and control drive down costs.
Of course, nothing in this chapter should lead one to believe that source code is irrele
vant. Source matters. It matters because it lowers switching costs (i.e., the cost of swap
ping out one vendor s software for a competing vendor s software); because it provides
buyers with more control over their IT, as it allows them to shape code to fit their par
ticular needs; and because it provides a mechanism for keeping vendors honest, by
forcing them to take responsibility for the quality of their code. In short, source code
matters because it shifts control back to the buyer, which forces vendors to offer better
software at lower prices. While none of these source code benefits requires the inter
vention of a vendor, we should not get sucked into the belief that vendors matter but
little in the open source world. Instead, open source actually makes vendors more rele
vant to customers than ever before at dramatically lower prices.
Besides benefiting customers, this GPL licensing scheme offers vendors a way to
exercise an incredible amount of control over competitors. By open sourcing my
code under the GPL, I push my competitors to follow suit or to increase their R&D
efforts to escape commodification. Unfortunately for them, this counterstrategy of a
unilateral R&D arms race tends toward paltry results: customers will often opt for
the "good enough" product when the price is dramatically lower. Yes, my closed
source competitors could simply take my freely accessible source code, "fork" it, and
build it into their own products, but they almost never will. Doing so compels them
to open source their own software, which they will be disinclined to do. Even if they
did so, however, and even if my competitor were not a stodgy old closed source ven
dor, but rather, an agile open source predator, it would matter little, because open
source buyers invariably favor the source of the source, as it were: they trust the cre
ator of the code to support it best.
Open Distribution, Not Source
This has huge implications for the software industry. Disruptive vendors can opt to
completely open source their code, relying on reputation property to net them reve
nues, and further relying on their freely available alternative to competitive products to
force competitors to meet them on their home turf. This is not to say that all vendors
must adopt an open source strategy, but rather, that they must compete with open
source s lower cost structures and superior distribution mechanisms. All must increas
ingly compete on open source s terms. More detail is needed on why this is so.
Open Distribution, Not Source ** 107
The Open Source Weapon
Open source enables a vendor to maximize its market penetration at minimal cost,
which is the goal of every IT vendor, but particularly of emerging-growth vendors
seeking to displace incumbent vendors. One of the biggest roadblocks to any com
pany s growth is the Bureaucracy Bottleneck the larger the buyer (and, hence, the
larger the opportunity), the more layers of bureaucracy an IT buyer must fight
through to try-before-they-buy. Not so with open source, which surreptitiously
makes its way into enterprises via free download.
Such distribution fattens a vendor s bottom line without fattening the customer s price
tag. MySQL had 10 million downloads in 2003, and by mid-2004 had more than 5 mil
lion installations. Of these would-be customers, 5,000 have returned to buy a support
contract/license from MySQL, bumping the company s revenues by 100% to $10 mil
lion in 2003. The revenue growth is important, but even more so is that it achieved this
growth by spending less than 10% of total revenues on sales and marketing activities. By
contrast, most public software companies spend 45-50% of total revenues on sales and
marketing, and companies of MySQL s size generally spend 21.8% on these activities,
according to a study done by Softletter.com. In short, open source creates a small uni
verse of prequalified buyers who seek out the vendor, instead of the other way around,
with the vendor s primary marketing costs relating to setting up an FTP server and
mostly word-of-mouth-type evangelism to developers.
The savings do not stop there. Whether the open source vendor "borrows" much of its
code (e.g., Novell, Specifix, Gluecode) or creates it almost entirely in-house and then
open sources it (MySQL, SugarCRM, JBoss), open source delivers development-related
cost savings. For the "borrowers," the cost savings are obvious: they leverage a well-
developed body of code, most of it written by individuals not on their payroll. For the
JBosses and MySQLs of the world, which do 85100% of their own development
work, there is still a significant QA savings from the global pool of testers who submit
bug fixes and code contributions (which may or may not be used by the vendor)
cheaper to build, cheaper to sell, cheaper to buy.
Proliferating Open Source Beyond the Enterprise
Today, open source largely confines itself to infrastructure software, in part because
this is where the widest computing community resides. Community-based open
source projects require a sufficient body of developers with aptitude and interest in a
given development problem. But as the IT industry begins to recognize the promise
of emerging open source business models, community becomes less critical to the
success of a project. As this happens, no area of the software stack will be exempt
from open source s influence and intrusion.
r
Significantly, open source business models will pave the way for open source to
conquer the Great Middle Class of IT: the small to medium-size enterprise (SME)
108 ^ C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
market. Open source, as a disruptive methodology in the Clayton Christensen
sense, will do more than simply allow startup vendors to compete against estab
lished vendors in established markets: it will help to create new markets by com
peting against under-consumption and nonconsumption. The Internet, and open
source s unparalleled use of it, is at this trend s core.
In "Does IT Matter?" Nick Carr offers one example of how this worked in another
industry: chocolate. Milton Hershey, founder of the Hershey Company, noticed a gap
in the chocolate landscape, a gap the railroad could resolve. Until his observation,
transportation deficiencies had forced production to stick close to consumption there
was no quick and refrigerated way to ship chocolate over long distances, creating
scores of micromarkets for chocolate. With the advent of the railroad, however, Her
shey conceived the idea of a national chocolate market, built it, and owned it.
Today, the Internet parallels the railroad infrastructure of Hershey s era. It offers
independent software vendors (ISVs) a similar opportunity to that which Hershey
had, yet the majority of ISVs are not capitalizing on it. Yes, some traditional ISVs can
and do offer their products for download, but this is a makeshift attempt to leverage
the Internet. Open source is an Internet phenomenon it depends upon the Internet
and extends the Internet s utility. Open source should disproportionately benefit
from the Internet s distribution mechanism, provided companies understand this fact
and act accordingly. As I will show shortly, tomorrow s most successful software ven
dors will triumph to the extent that they develop models that leverage the Internet as
a distribution mechanism, and use open source licensing as the rules-based system to
govern that distribution.
So, Why Not Freeware?
Let us assume that all of this is true. Open source is great because it enables upstart
competitors to undercut established vendors on price while providing their custom
ers Porsche technology at Pinto pricing. But if open source is so important because it
allows me to freely distribute my product over the Internet, why is freeware not
equally disruptive?! Stated another way, if the source code does not matter, and only
distribution matters, why not just give the software away as freeware and charge
users who require support? Why offer something (access to source code) that simply
does not matter?
The easy way out of this apparent quandary is to allow that while open distribution mat
ters most, open source code access is also important. But this does not get us very far. I
will therefore detail the reasons that freeware cannot match open source as a distribu
tion strategy. Most importantly, I will explain how the two matter most when they inter
sect, making distribution without access as hollow as access without distribution.
1 Larry Augustin originally needled me with this question, for which I thank him.
Open Distribution, Not Source * C 109
Don t view. Don t modify. What do you do?
As mentioned earlier, it is an indisputable fact that the vast majority of IT buyers will
never view or modify source code, even if offered the ability. There are numerous
reasons for this, but the most compelling one is that customers expect to pay for a
solution to their problems, and not merely a tool to help them solve their problems.
(More on this shortly.) No company can afford the time and human resources neces
sary to resolve all IT problems; therefore, they take "shortcuts" by buying software
that purports to fix certain problems for them. This applies equally well to closed
source software and open source software. Most IT buyers just want their software to
work, they don t want to have to fiddle with it.
By opting not to view or modify source code, does an IT buyer thereby opt out of
any and all of the benefits of access to the source code? Absolutely not. Just because
customers do not choose to exercise their rights to view and modify source code does
not mean they do not benefit from the right, even when not exercised. On one level,
the option to view the source code serves as a surrogate for the actual exercise of this
ability. As an example, because I can review the database code that Sleepycat deliv
ers to me, it forces Sleepycat to provide a higher-quality product than closed source
vendors would have to offer.
ROml Lefkowitz of AT&T Wireless gives a tangible example of how this works. In
June 2003, ROml related that he had asked his wife to solicit multiple contractors
bids for a home improvement project. Instead of gathering several bids, however,
ROml s wife procured only one bid. When he asked her why, she responded that she
figured the contractor would assume she had collected a number of bids, and so
would give her his best bid from the start. The option to exercise choice, then, served
her as a useful surrogate for actual choice.
In this way, access to source code motivates the code s vendor to provide a superior
product, knowing that it will be open for all to see. It also functions as a security
blanket for customers. Hopefully, they will never have to look at the source code. But
if Vendor X fails to deliver on its promises, or if it goes out of business, that cus
tomer will have the option (unpleasant though it might be) to have some other ser
vices firm support the stranded code. Source code access lets buyers rely on their
vendors... but not too much. Importantly, the more independent the buyer is from
the vendor, the lower the vendor s prices must be. More on this shortly.
As IT buyers have grown comfortable with open source projects, another benefit has
emerged. Initially, it is true that buyers will tend to want to avoid tampering with the
software they buy. Over time, however, as they grow familiar with a product (closed or
open), the buyer s developers will want to make tweaks here or there. They begin to
support themselves, in other words, because calling out for support takes unnecessary
time (and patience). In a closed source world, however, their ability to tweak the "solu-
110 * C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
tions" they buy is limited. In an open source world, the Amazons of the world have free
reign over their IT. Source code access gives customers the ability to experiment with
and tailor software to their liking, if they choose, and on their own time table.
Other reasons have been suggested. Developers like to be creative. Like anyone else,
they prefer not to have self-expression manacled, and they choose to express them
selves in the code they write and modify. On a mailing list in June 2003, Frank
Hecker argued that access to source code is critical for developers at the heart of a
company s IT infrastructure. Such people want to be able to modify code, and so
must have access to source, because they will need to be able to fix any problems
they may download into the company. Outside the corporate firewall, Ben Tilly (on
the same email list) stipulated that while the majority of developers are not involved
in open source, access to source code is critical to that core of developers who do
participate. They are the lifeblood of open source communities and are the ones who
will openly extend assistance to newbies who just want the code to work without
getting their hands dirty.
All of which is a verbose way of repeating the earlier point: source matters, even
where it may not directly matter to the end user. Access to source extends benefits to
users beyond those chosen few who actually exercise the right to touch source code.
Source matters because choice matters. Choice matters for a number of reasons, not
the least of which is that choice drives down prices. And choice is amplified by open
source, not by freeware, which has its source code closed.
Open source. Open choice. Open wallet.
Many successful software vendors would have us believe otherwise. That is, they
want to sell suites of services that take care of all needs, that reduce complexity, and
that reduce choice. The primary perpetrator of this strategy is Microsoft, which, as
Dana Gardner of Yankee Group notes, wants to "make the end user any offer they
can t refuse to go Windows everywhere" (http://enterprise-wtndows-it.news/actor.com/
story.xhtmZ?story_td=22143). One major problem with buying into these monolithic
visions is that once in, the switching costs to go with another vendor are prohibitive.
By buying into Microsoft or any other vendor that holds out greatly reduced choice
as a way to accomplish moderately reduced complexity, a buyer surrenders his IT
destiny to that vendor. He upgrades when the vendor wants him to. It gets new tech
nology when the vendor chooses to innovate. (I would argue, and have on several
occasions, that Microsoft s market dominance has caused it to stagnate in terms of
innovation. When was the last time Microsoft s Office product significantly improved
over the last version? And yet the buyer keeps buying, because he finds himself on
the Microsoft treadmill.) And he pays whatever the vendor demands, because the he
has no other options. He is a prisoner of the vendor s universe, however expansive
the vendor pretends that universe to be.
Open Distribution, Not Source ** 111
Over time, buyers who condemn themselves to such vendor-controlled realities will
pay more for their IT, both in hard costs and in opportunity costs. Open source
offers the opposite vision: maximum freedom to shift among vendors (even while
staying with the same or similar code base). Open source therefore costs less in the
short term and, especially, in the long term.
If we step outside the IT world for a moment, this point will become even clearer.
My wife and I recently redid our landscaping, including our cement work. Or,
rather, we wisely chose to hire out the work. True, with a Dummy s Guide to Cement
(my "source code," as it were), even I might have been able to figure it out and could
have completed the project satisfactorily. Had I opted to do the work myself, the cost
would have been X. Because I could have done the work myself for X, my cement
contractor was only able to charge me 1.5X. Had he bid higher, I would have had
strong incentive to perform the work myself. I had access to the source, so his pric
ing power was curtailed. (In the same way, access to a closed binary, as with free
ware, does not accomplish this same effect of driving costs down.)
The cement contractor ended up performing shoddy work and walked off with a
portion of our money, for which he had not completed the associated work. Measur
ing it out, it will cost us 5-10X to hire a lawyer to compel our cement contractor to
satisfactorily complete his 1.5X worth of work. I happen to be a lawyer, but not one
that has ever actually practiced law, so I am stuck paying the lawyer s fees: $5007
hour to recover $1,500+ in payments owed to me by the contractor.
Perverse world, you say? Yes, I suppose so, but the point is that the delta between the
cost of me doing my own cement work and the cost of me doing my own legal work
is directly proportionate to the skill set involved and the artificial licenses set up by
the legal profession to keep would-be attorneys in "would-be land." I am effectively
barred from accessing the "source code" of the legal (and medical, among others)
profession, which drives up the price that I must pay.
Again, access to source code, whether in software or cement, offers choice, and choice
ensures lower prices. It does not matter that most people will never choose to do their
own cement work, just as it does not matter that most IT buyers will never choose to
view and modify source code. The important thing is that they could if they were so
inclined. That "could" is instrumental in dropping prices through the floor.
Such lower prices, then, allow the CIO to spend more money on developers who can
further customize software to meet that specific organization s requirements. Imag
ine that: IT that works for a customer, rather than against it. That is innovative.
Such innovation is what open source is all about, and is why it continues to make
inroads in the enterprise, in embedded devices, and everywhere else. Open source
brings choice, and choice saves money. Freeware does not engender such choice.
Meaningful choice is not created by cost-free technology; rather, choice is created by
112 * * Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
the freedom to manipulate code to one s personal (or corporate) advantage, or to
have it widely distributed in such a way that one can benefit from others exercise of
that freedom. Access matters little without distribution, and distribution matters lit
tle without access. Together, they spell the commencement of a new age of software
innovation, innovation that benefits vendors and buyers bottom lines.
Open Source Business Models
All of this may sound plausible enough, but we now need to trace through some real-
world business models that vendors use or could use to leverage the benefits of open
source to drive revenues and boost profits. Before doing so, it is important to note
that an "open source business model" means more than simply supporting Linux as
an operating system. In other words, the fact that my CRM system runs on Linux, or
that my hardware appliance has Linux as its core, does not make me an open source
company. An open source business model means that a vendor somehow engages
with the open source community.
With that said, I also need to stress that whatever the importance of open source, not
all companies must adopt open source to find success. Open source is the great corn-
modifier, but there will always be those who successfully evade that commodifica-
tion. Other industries prove instructive on this point.
Take retail, for example. Even as low-cost commodifiers devour middle ground in
this market, profits persist up the stack. Wal-Mart is the 8,000-pound gorilla of corn-
modification, cannibalizing groceries, clothing, and just about everything else on
which it puts its hands. Still, for all of Wal-Mart s success in low-end fashion, for
example, Nordstrom continues to win at the higher-end game. This is more than a
case of customer snobbery it has to do with an experience that Nordstrom delivers
(superior customer service) that Wal-Mart is structurally incapable of offering. (This
same phenomenon exists in coffee why are consumers so willing to shell out $4 for
a cup of coffee? Because Starbucks has defined a customer experience that tran
scends Maxwell House at home.)
Another example is the groceries market, as Charles Fishman highlights in the July 2004
issue of Fast Company (http://www.fastcompany.com/magazine/84/wholefoods.html). In
just a few short years, Wal-Mart has become the United States largest grocery chain, yet
the title of "Most Profitable Grocery Chain" and "Fastest Growing Grocery Chain" eludes
Wal-Mart (and its European competitor, Aldi). No, those titles go to Whole Foods, with
remarkable year-over-year growth in the face of a nationwide 2.5% annual compound
growth rate: 17% (2003), 21% (2002), 21% (2001), 23% (2000), and 14% (1999).
Whole Foods delivers an upscale grocery experience, offering organic foods and superb
quality, and Wal-Mart stocks its shelves according to its modus operandi: decent selec
tion at rock-bottom prices. Both chains have found their respective strategies to be
highly profitable everyone else has gobbled their dust. Whole Foods has registered
Open Source Business Models JJ 113
$188 million in profits over the last several years, and Food Lion cleared only $150 mil
lion with seven times as many stores and five times Whole Foods revenues. Safeway, for
its part, lost $1 billion in the same period on even greater revenues. The takeaway?
There is no room in the middle for undifferentiated players. One either commodifies or
evades commodification through innovation. Everyone else languishes.
Both Source (a.k.a. Mixed Source) Model
So, the first business model is for the technical innovator that refuses to join open
source commodification at all. But what about those companies that opt for a "both
source" model, whereby they offer both open source and proprietary software? This
model has promise and peril, requiring the vendor to walk a fine line between the
model s divergent business requirements (low-end commodification/standardization
coupled with high-end specialization). To the extent that a company marries the two,
it must do so with a clear understanding of open source complements and substi
tutes to its proprietary product portfolio.
Both source offers a way to fill in the gaps left by open source, and to charge a pre
mium for this "service," while still delivering open source software. Such a model
seems to be ideal for established players that cannot abandon existing customers of
closed source products, and blanch at the thought of losing existing profit margins.
Of course, whether a vendor can avert the open source "threat" depends upon
whether open source has created a viable substitute to its product. If so, head-on
competition with that open source project is likely futile unless it can move signifi
cantly upward in the feature set. Even if it can, competing against free and "good
enough" is exceptionally difficult.
A both source strategy makes more sense where the vendor can define and contrib
ute to open source complements. In economic terms, a complement is something
that completes a whole; in software terms, it is a component of a software solution.
So, just as French fries may be considered a complement to a hamburger, so, too, is
Apache a complement to IBM s WebSphere product. Importantly, the more comple
ments that exist for a given product, the more desirable that product becomes for
customers, so vendors want as many low-cost, high-quality complements to their
products as possible. Oracle likes Linux and x86 hardware because it drives down
the total cost of a customer s database solution... without lowering the cost of Ora
cle s software. Customers, thus, can buy more Oracle software, which gives Larry
Ellison more time on his boat.
So far, this sounds like a reasonable defensive strategy for vendors that want to toe-
dip into the open source community without getting very wet. But both source also
allows vendors to take a scorched-earth agenda against their competitors, by skill
fully choosing to build open source complements to their proprietary software, com
plements which cut directly at those areas that competitors have chosen to retain as
114 * C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
proprietary. Of course, such a strategy must bear in mind the distinct possibility that
the opposing vendor will then choose to open source pieces of its portfolio that
injure the first vendor, creating a lot more open source software, but not necessarily
any profits for either company.
Still, it is an open question whether this is a solid strategy against upstart competi
tors with lower costs who can undercut a proprietary product s margins. In addition,
a both source strategy works best for vendors with products that have respectable
market share. Slapping open source on or around an also-ran product will not sell it.
Good technology, good service, and good sales/marketing sell products. Open
source, by itself, is as much a losing strategy as closed source, by itself.
Open source complements to a market leader s products make that proprietary prod
uct more valuable by lowering the total cost of the product. Hence, while both
source may be the easiest step for a closed source company to make, it will help the
vendor only if its products were already competing well against other proprietary
products. Again, both source offers no panacea for market losers. The lesson? Com
panies should adopt the both source strategy when they are on top of their games,
instead of when they are losing the final sets of their matches. For market losers, a
better bet is to make the difficult transition into a pure-play open source vendor, as
defined shortly.
Professional Open Source (a.k.a. Services) Model
The dirty little secret of open source is that the term open source community is some
thing of a misnomer. In general, the actual number of contributors to any given
project, including the Linux kernel, is tiny. Thus, to "own" an open source project
requires little outlay of human resources in terms of numbers, though it may require
a significant amount of time to build reputation capital within a given open source
community. (Newbies to the Linux kernel, for example, should expect to put in two
years or more before they can hope to attain "committer" status in the kernel hierar
chy.) Despite the low number of developers required to corner the market on an
open source project, the importance of doing so is massive: employing a majority of
the developers on a given project roughly equates to intellectual property owner
ship, as explained earlier.
For this reason, companies that spawn open source projects e.g., JBoss are able to
completely open source their code without abandoning pricing power. JBoss, for its
part, employs roughly 85% of the developers who contribute to the JBoss open
source project. JBoss offers its code under the Lesser General Public License (LGPL),
which allows users a wide range of action vis-a-vis their code, including the right to
fork the JBoss project and start JBoss II.
But no one does that, for reasons already detailed.
Open Source Business Models . * 115
Because of the heavy JBoss "ownership" of the committers to the project, the com
pany does not save a great deal of money on development costs. It functions much
like any closed source company, except that its development is open for public view
and consumption. Any appreciable development savings derive from the bug finds/
fixes that JBoss receives from its development community.
Still, the professional open source business model is not really about development
savings. Rather, it is about maximizing distribution of one s product; getting it
beyond the purchasing firewall/bureaucracy bottleneck to plant the product in the
hands of its developer end users so that they can try and then revisit the professional
open source vendor for support/service contracts. To get approval to use BEA s
Weblogic or IBM s WebSphere, a developer would need to go through a cumber
some process. To use JBoss, she simply needs to click "Click here to download." And
while the developer might choose to support herself through newsgroups or other
online fora, in production situations she will generally turn to the source of the code
(in this case, JBoss). This is the classic open source model, though it is only now
starting to be exploited effectively.
Dual-License Model
The dual-license model has been popularized by MySQL, but has been around for
some time, most notably deployed by Sleepycat and Trolltech. In the case of a dual-
license vendor, that vendor employs not most, but all, of the developers who contrib
ute to the code. Because it employs all of the developers, it also owns all of the copy
rights to its work. Then, as the owner of the copyrights, it is entitled to license its
software under one or more different licenses.
However, the fact that it owns the copyrights and employs the developers begs the
question as to what benefit, if any, it derives from its open source status. The answer,
as with the professional open source model, lies in distribution strategy. For a dual-
license vendor, open source is less a matter of development and more a matter of dis
tribution for open source vendors. Yes, the dual-license vendor derives benefit from
outside developers who contribute code (though MySQL, for example, tends to
repurpose/rewrite incoming code to help it better fit its existing code base) and bug
fixes, but its primary benefit is in the ability to broadcast its product to the world
with customers benefiting from lower prices and less lock-in.
Also interesting, though not a benefit touted by the primary adopters of the dual-
license model (MySQL, Sleepycat, Trolltech, and now SugarCRM), is the fact that the
dual-license strategy provides the customers with a mechanism to buy their way out of
the GPL, if consider this desirable. This is of particular benefit in the embedded world
where, for example, Linksys might receive GPL d code from Broadcom and might want
a closed source license to that code, so that it will not have to open source the software
running its routers and access points (a purely hypothetical example, of course...).
116 * C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
db4objects is promoting its embedded database with precisely this message, one that
customers appreciate because however much a vendor may prefer the GPL or another
open source license, the fact remains that it may not always be the best fit for a given
customer. As such, the dual-license model offers customers a way to pay for the right to
choose the license under which to receive software.
ASP Model
Such are the prominent open source models that are easily recognized as such: open
source business models deployed by open source companies. But, as Tim O Reilly
has been telling the industry for years, "open source" is a much bigger tent than we
may recognize. Tim includes such "infoware" vendors as Google and Amazon in his
open source tent. The common denominator between the two? Internet infrastruc
ture powered by open source (Linux and a great deal else), plus an architecture that
promotes participation that makes the infoware increasingly valuable.
The enterprise IT industry has also been moving toward a related model for stan
dard enterprise applications, calling it utility computing, on-demand computing, and
a range of other names. In this model, IT vendors deliver computing power in a util
ity fashion: Enterprise Consumer X gets the computing cycles when it needs them,
instead of buying all of the hardware/software upfront.
Importantly, customers in this model buy IT (including software) as a service, rather
than as a standalone product. As such, customers do not really buy software at all
they buy solutions to their business problems. Whether the "guts" of that solution are
open or closed source does not matter anymore. Customers simply pay for value,
delivered as a service: SP (service property) rather than IP (intellectual property).
This sounds much like software s ASP model, in which software is delivered to the cus
tomer over the Internet, hosted on a central server by the vendor, with customers pay
ing for the value they access over the network. A prominent example is Salesforce.com.
Whether the software underpinning the service is closed or open source becomes irrel
evant. The requirement to release modifications to a given open source project is trig
gered by distribution: so long as the code itself is not actually distributed (and only the
resultant service dictated by the code is), open sourcing of modifications is not
required, but voluntary.
Other Models
The aforementioned business models are the primary models in use today by most
open source companies. However, some of the most interesting new companies
employ equally interesting (and innovative) business models, generally altering the
way open source software is supported. For such companies, the real customer bene
fit of open source is the availability of source code. But, as noted, major vendors such
as Novell and Red Hat, which tie their support contracts to specific product builds,
Open Source Business Models X 117
obviate this benefit. Gluecode and Specifix resolve this irony and may point to
tomorrow s most successful open source business models.
Managed source model
Gluecode incorporates three levels of source code support into its model. First, Glue-
code conglomerates various Apache packages, tests them, and generally makes them
play nicely together so that customers need not worry about visiting Apache.com for
themselves. Second, Gluecode develops its own proprietary software to extend
Apache s reach and thereby provide a compelling solution for portals/business pro
cess management (BPM). Third, and unique to Gluecode, the company offers source-
level support to its customers, allowing them to check in their code to Gluecode s
CVS repository. Gluecode runs the customer s code against test suites to ensure the
customer s modifications or additions work properly with Gluecode s open+closed
codebase, enabling the customer to become something more: a development partner.
Code-level service model
Specifix does something similar. Focusing on embedded and server deployments of
Linux, Specifix allows its customers to modify Specifix s Linux distribution to meet
their particular requirements. Instead of invalidating their support agreement with
Specifix by doing so, Specifix tracks exactly where the modifications were made and
allows the customer to support its own modifications, while continuing to support
the original Specifix distribution. The customer may, in other words, opt for the
"road less traveled," but Specifix is happy to maintain the more-trafficked road for
them, keeping it parallel with the customer s chosen divergence.
Conclusion
Open source propels software toward Commodity Land, a happy place where cus
tomers pay for real value and vendors compete on that value, not intellectual prop
erty lock-in. Each of the open source business models detailed in this chapter will
help to further this trend, making open source mainstream and possibly displacing
the traditional, IP-based model as the default.
We are thus on the cusp of a Kuhnian paradigm shift, one that will fundamentally
alter the way IT vendors create, sell, and distribute software. Once apparently sty
mied by the restrictions that open source licensing places on traditional business
practices by IT vendors, open source vendors are now finding that open source
licensing creates as many opportunities as it closes, changing the nature of software
competition for decades to come. This means that incumbent and emerging IT ven
dors must understand the new rules of engagement to compete effectively. Whether
they like to admit it or not, open source will force every software vendor to come to
grips with omnipresent, ravenous commodification.
118 ^ C Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process
Some may opt for technical innovation over business model innovation, with vary
ing degrees of success. However, such innovators should recognize that while
copyright and patent provide potent protections, they also put the vendor in an
adversarial relationship with the customer. As such, these traditional intellectual
property tools hurt customers as much as (or more than) they do competitors, and
will put them at a disadvantage against open source competitors who offer custom
ers choice and value at lower prices. Open source, then, allows vendors to lay
waste to their competitors profit margins by lowering their own costs of distribu
tion, sales, marketing, and development, while simultaneously blessing their cus
tomers with increased IT flexibility and a more finely tailored approach to solving
their business problems.
Open source, then, offers a new way to innovate, a new way to compete, and a new
way to win.
Conclusion ** 119
kf CHAPTER
Stephen R. Wall!
Under the Hood: Open Source
and Open Standards Business
Models in Context
People debate regularly whether open source software is "good for business," and
how one makes money on something given away "for free." People raise concerns
over the commoditization effects of open source, 1 and portray a gloomy road ahead
where open source software will "eat its way" up a stack of functionality to the logi
cal conclusion where software has become valueless.
Standards as a commoditization driver have been well understood for quite some time
across many industries. A standard exists to enable multiple implementations. The eco
nomic argument is that they serve to broaden the market for all producers while foster
ing price competition (which also fosters production efficiency) for the benefit of con
sumers. Industry associations of vendors support such work where it expands their
market opportunities in complementing areas. Governments support such work
because of the "good" economic effects. Seldom does one hear complaints about this
commoditization effect, and vendors continue to participate in the development of
standards and compete on implementations regardless of that effect.
In this chapter, we will take a look at traditional working definitions of open stan
dards and open source software focusing on the veneer of differences, then step back
1 "Will Open Source Middleware Commoditize J2EE?", Nov. 5, 2004, http://linuxworld.com/story/
46957.htm; visited Nov. 9, 2004. Also: Paula Rooney, "Open Source Will Commoditize Storage,
Databases and Security," Jan. 20, 2004, http://www.storageptpehne.com/hardware/J7500067;
visited Nov. 9, 2004.
and look under the hood at a broader business context for the dynamics at work to
provide a business model where standards and open source software can be seen in
context.
Open Standards
A standard can be a specification, a practice, or a reference model. It is used to define
an interface between two (or more) entities such that they can interact in some pre
dictable fashion and to ensure certain minimum requirements are met. Standards
exist to encourage and enable multiple implementations.
It is important to put some simple perspective on the standards discussions that fol
low, as books can be written about this seemingly dry subject. We will look at the
context for standards defined by their development and use, a process for develop
ing and maintaining standards, and a set of implementation issues such as intellec
tual property concerns, conformance and certification concerns. Finally, we ll dis
cuss the history of the concept of "open standards."
Standardization efforts are typically divided into various categories, but the classifica
tion systems are often orthogonal. For example:
Standards can be categorized by the type of development organization e.g.,
national or international body, industry and trade associations, and consortia.
Standards can be viewed as industry voluntary efforts or government-regulated
efforts.
Standards can be thought of as formal de jure developed specifications, or market-
dominant de facto product technologies.
All standards live within a context of development and use. Many formal standards
are developed by national bodies or international organizations such as ISO. These
standards often define procurement policy for government organizations and large
enterprises alike. Industry and trade associations develop standards relevant to their
expert and specialized constituencies. In the information technology space, for exam
ple, the IEEE has a standards arm, and historically CBEMA (now NCITS) and Ecma
International acted as standards development organizations in the U.S. and Europe,
respectively, for IT standards. Each of these three organizations was accredited
within its national and regional geographies to produce standards that could be later
adopted by the relevant nationally or internationally sponsored standards organiza
tion to prevent overlapping efforts, and to build on the relevant expertise within dif
ferent industry groups.
Narrowing the focus even further, consortia of vendors often arise within a specific
area of technology within an industry to develop standards and specifications. The
122 * C Under the Hood: Open Source and Open Standards Business Models in Context
consortia often try to build specifications more quickly to expand a particular mar
ket, feeling that the more traditional organizations are too slow to deliver standards.
We can categorize standards differently if we bucket them between regulatory versus
voluntary standards. Government regulation defines a separate set of concerns over
the voluntary work of many organizations within industries. Such government
involvement is often driven by economic concerns for the public good (e.g., commu
nications-related standards) or safety issues (e.g., pharmaceutical testing and registra
tion requirements or vehicle safety). Regulatory-based standards will not be dis
cussed further in this chapter because the focus is on the role of standards and open
source in market-dynamic areas rather than government-regulated areas.
Another categorization attempts to discuss the difference between de jure standards
developed in a consensus-based process and de facto standards. A more accurate
statement might be that de facto technology describes a market-dominant product,
rather than a specification for interoperability open to all implementers. 2
Common examples of voluntary information technology standards across this organi
zational spectrum include SQL, HTML, TCP/IP, and programming language stan
dards like C/C++ and C#.
Standards act as a yardstick against which multiple competing implementations can
be judged in the marketplace to make sure that certain basic requirements are met.
Vendors compete on implementation beyond the standard to establish competitive
differentiation in the market. Ultimately, customers choose the product that does
more than simply meet their base requirements. It is this relationship among specifi
cation, implementation, and competitive differentiation that provides basic interoper
ability among vendors, drives competition, and spurs innovation.
All standards organizations have rules about participation, construction, adoption,
and amendment. They establish processes for how meetings are carried out to pro
mote fairness of discourse and prevent anticompetitive practices. Standards develop
ment organizations also put in place intellectual property rules to ensure partici
pants are aware of the intellectual property landscape with respect to the standard
under development.
Most standards bodies require participating holders of essential patents to announce
the existence of such patents, and to make them available on "reasonable and non-
discriminatory" (RAND) 3 terms if an implementation of the standard would require a
license to the patented technology. Under RAND terms, patent holders cannot dis-
As we shall see, Clayton Christensen has proposed a situation that says there is market pressure
that can change de facto technologies into de jure standards.
While each organization s rules are stated somewhat differently and with different levels of
formality, a quick look at the governing rules of the IEEE, ISO, IETF, and Ecma International
shows a remarkable similarity.
Open Standards *C 123
criminate against a particular company or a particular platform. Standards organiza
tions supporting such patent policies ensure that developers interested in delivering
standards-based products can do so, while ensuring developers that have invested in
a particular invention still have their investment respected.
It is important to remember, however, that no standards development organization
can speak for the intellectual property of developers that are not participants in that
organization. Standards development organizations structure their patent policies
this way because they cannot be the policing organizations nor bear the liability for
patent infringement cases from nonparticipants. They are neither funded nor set up
to do so. Indeed, if they took on this role, they would likely collapse under the fiscal
burden and serve no one.
The interesting thing to observe is that while standards exist to encourage multiple
implementations, patents are government-enacted legal tools to protect a single
implementation. Patents exist to allow the developing company government-
enforced, time-limited legal protection of an invention by preventing others from
building the invention. It allows the inventing company to recover the costs of bring
ing an invention to market in return for publishing the idea for future use by the
broader market. A patent is in some regards the antithesis of a standard. Standards
are to trade agreements as patents are to tariffs. By definition, they serve different
purposes in the economic landscape.
Just as standards organizations are not organized or funded to handle intellectual prop
erty liability claims, neither are they typically the conformance certifying agencies for
implementations for the standards they produce. Conformance requirements in the
standards and specifications are typically simple "claim" style i.e., you provide the
functionality required by the standard and claim conformance to the standard. Organi
zations that care about conformance then take on the fiscal and legal responsibility of
verification around the conformance claims. For example, in the government space in
the U.S., the National Institute of Standards and Technology (NIST) developed a pro
curement process (FIPS 4 ) and certification testing process for the standards that it
cared to use in those procurements. The government was acting appropriately to pro
tect and serve the public good in federal procurement policy essentially putting pub
lic tax dollars where its mouth was to improve the return on investment. In a commer
cial setting, The Open Group (nee X/Open) as a market consortium handled
conformance claims and liability for its specifications. Beyond the testing requirement,
warranties of conformance are required and a brand license is signed which is tied to
the trademark usage associated with the standards it produced. Companies that wanted
to use the trademark on their products in the market had to pay royalties. The X/Open
standards were developed through the organization and a company paid for its seat at
4 FIPS stands for Federal Information Processing Standards.
124 * C Under the Hood: Open Source and Open Standards Business Models in Context
the specification setting table through its consortium membership dues. Conformance
certification, on the other hand, was funded through the cost of trademark use.
If standards act to define a base functionality to encourage multiple implementa
tions, essentially the greatest common denominator for a specific technology, they
help create a commodity. This results in a constant, healthy tension among the stan
dards bodies participants as they work with each other on the standard, while simul
taneously vying for market share with their different products.
The term "open" with respect to standards became a mantra in the late 1980s and
early 1990s, and was tied to the concept of "open systems." As Cargill observed,
"open systems" was marketing-speak for the idea that if all the vendors would just
build their computing products to "open" standards, the consumer would be able to
build data processing systems by mixing and matching information processing hard
ware and software modules in much the same way that one could mix and match ste
reo components to build the desired system. 5 "Open systems" was a description of
the architecture the consumer thought should exist. Unfortunately, the complexity of
interconnected data processing systems doesn t lend itself so readily to the metaphor
of a single-purpose device (i.e., the stereo system) and the ability for plug compatibil
ity between stereo components to solve all the attendant complexity.
"Openness" became a quality attributed to the standards that would enable open sys
tems. The openness was an attribute of the creation process (the standard was built
in some form of public, consensus-based process open to all participants) rather than
an attribute of implementations of the standard.
The development model for a standard is unrelated to the development model used
for the implementation of that standard. It is equally possible for a standard (open or
otherwise) to be implemented in a closed proprietary software product or in an open
source software project.
Open Source Software
Open source software (OSS) is a term applied to a collection of software development,
licensing, and distribution practices. A lot has been written about OSS over the past
decade, as various open source projects gain market importance and the license models
demonstrate economic significance. Eric Raymond s original treatise 6 on the develop
ment practices remains relevant. The Open Source Initiative (http://www.opensource.org)
publishes the definition of the requirements a license must meet to be considered an
5 Carl Cargill, Open Systems Standardization: A Business Approach (Upper Saddle River, NJ:
Prentice Hall 1997), 70-71.
6 Eric Raymond, The Cathedral &&gt; the Bazaar (Sebastopol, CA: O Reilly Media, 2001). The original
essay was published in 1997.
Open Source Software ** 125
"open source software" license. I will focus on a group of attributes of OSS projects that
sets up the economic discussion to come.
OSS projects are interesting "buckets" of technology. Successful OSS projects share a
number of attributes.
For instance, distributed communities with good software development practices
develop technology packages that satisfy well-defined needs.
Software quality is a measure of community activity (i.e., the developer customers).
Contributions reflect the individual economic considerations of the contributor
and are based on selfish asymmetric value propositions.
The projects reflect their Unix history of loosely coupled component architectures
with well-defined interfaces that make it easy to assemble larger solutions (e.g., the
LAMP stack is assembled from Linux, Apache, MySQL, and Perl/Python/PHP).
OSS projects develop software packages in a distributed community where the core
developers that inspired the project act as a hub for the evolution of the software as a
"benevolent dictatorship." Just like all successful software projects, successful OSS
projects support a strong software engineering discipline and ethic at the project s
core. Essentially, good software is developed by good software developers.
What makes the software "open source" is the licensing model. While a wide variety
of licenses are considered "open source licenses," the basic common denominator
(without relisting all the requirements from the Open Source Initiative) is that the
software s source code is always freely available and users can modify it without
restriction; however, requirements associated with distributing the software may
exist. In similar fashion to standards efforts supporting a lack of discrimination
(either in participation within the context of their community or in their intellectual
property engagement goals), OSS licensing discriminates against no one. Anyone can
participate in the community development of the software. Anyone is free to use the
software. Anyone can see the source code. Anyone can distribute the software. In
each case, requirements may be imposed by the license or reputation that must be
earned in the community, which would lead some to not want to participate, but
nothing inherent in the process prevents participation, use, or distribution.
An interesting dividing line in the licensing schemes is whether the license is consid
ered "viral." A reciprocal license such as the GNU General Public License (GPL)
attaches itself to new software by requiring that if the software is modified and dis
tributed, the license is attached to the new software. This forces the "open" aspect
upon new software, keeping the source code publicly available. A company may be
wary of publishing the source code to its software, as it may contain trade secrets or
other third-party licensed software for which it doesn t have the ability to publish the
source. The classic permissive licenses arose in academic settings (e.g., the Berkeley
126 x * Under the Hood: Open Source and Open Standards Business Models in Context
license and the MIT Project Athena license) and had no requirement to associate new
work with the license. This class of licenses was very liberal in what was allowed, and
a company could easily take software, modify it, and not publish the new source
code.
One of the most interesting aspects of OSS development is the economics of the
community participation. Surveys have been run and much has been written about
the rationale for participation. 7 The "simple" economics is that participants in a com
munity get more than they give. It is a normal selfish asymmetric value proposition.
To understand that statement, think about context for a moment. Many people in
many walks of life use and value their skill sets differently in different contexts. A
writer might be a technical writer or communications writer for a corporation as her
paying job, but still use that same collection of writing skills teaching an English as a
Second Language class in the evenings, working on a writing project with her child s
class at school, and writing a sonnet to a loved one. In each case, she values her skill
set differently, and the reward accordingly. Software developers are no different. The
interesting aspect of community is that corporations are equally economically ratio
nal in their participation. Developers and corporations participate in OSS projects
because of the same simple asymmetric value proposition. Many companies partici
pate in OSS projects and draw upon the software to deliver the products and ser
vices upon which they base their revenue streams. We will look at this a little more
closely in a moment.
Coupling the license and distribution model that ensures the source code is freely
available, with a core project team that is disciplined allows for the community effect
of OSS development to shine. The community of interest in a particular project can
directly contribute changes and bug fixes. While there may be orders of magnitude of
difference in the number of bug reports submitted, down to the number of bug
reports submitted with proposed fixes, down to the number of "good" fixes that meet
the bar defined by the core project team, there is definitely a net gain for the project,
both from a testing and a bug fixing point of view, as well as the opportunity to find
new talent for the project that wants to participate.
The Real Business Model
Customers view solutions as a network of related "bits" that have to come together in
some definable fashion to solve their IT problems. This network can be defined with
nodes representing various technology objects and the paths between nodes represent
ing the relationships. This is a very informal network, but very real. For example, a
7 Most notable were the surveys by the Boston Consulting Group (http://www.bcg.com/publications/
pub/ication_view.jsp?pubID=935<S language=Eng!ish, Dec. 15, 2004) and the broader FLOSS
survey done at the University of Maastricht (http://www.in/onomics.nl/FLOSS/report/index. htm,
Dec. 15, 2004).
solution for a new retail inventory management system will include nodes representing
the existing application systems to which the new retail system must interface, com
puter resources on which it will run, the programming language environment in which
it will be developed and maintained, the staff and their experience and skill sets that
will develop and then maintain the new system, databases with which it will need to
interact, . The other application systems to which the new retail inventory system will
need to interface have their own historical networks. The platform resources may rep
resent a different network view if multiple application systems share the fundamental
computing platform. Companies define architectures for their IT functions to attempt
to simplify the decisions that need to be made, and often publish these as internal pro
curement and development standards. History also counts in the network for exam
ple, some shops always buy "Unix" hardware or always program in C or Java, because
that is how their resource history has developed.
Turning the discussion around to the vendor-centric product perspective, Geoff Moore
defined a model 8 in 1991 for technology adoption that suggests that once a market
starts to develop, a company best leads by providing a customer the best "whole prod
uct solution." By this he means that the vendor offers its core value product proposition
to the customer and then needs to wrap as much around that product as it can to
present a "complete" product solution to the customer to meet the customer s broader
needs, essentially mapping as much of the customer solution network as possible.
Another way to think about this is that the vendor wants to provide as many comple
ments as it can to its core product offering, covering as much of the customer s solution
network as is feasible to present the best (most valuable) solution in the customer s eyes.
The business of a vendor would then be to ensure that the complements were as
inexpensive as possible, indeed commoditized if possible, so that the whole solution,
from the customer s perspective, is as inexpensive as possible but the lion s share of
the revenue would come to the vendor through its core offering. Several business tac
tics and tools are available to the vendor to try to drive these complement spaces:
Traditional buy-versus-build strategies can be used to ensure that as much as of
the customer s solution is provided through the vendor s own brand, regardless
of whether the complement products are offered as add-ons or are bundled
directly with the core revenue stream.
Develop a rich ecosystem of add-ons by encouraging developer and partner net
works to provide a richer whole solution to the customer. Publishing propri
etary specifications for the complement space enables more partners to develop
businesses in the complement spaces.
Develop tool spaces that help add complements to the complement ecosystem.
8 Geoffrey Moore, Crossing the Chasm (New York: Harper Collins, 1999).
128 * C Under the Hood: Open Source and Open Standards Business Models in Context
Provide certification programs around the core technology to ensure that there
are lots of service professionals to help the customers complete and support their
solution. Indeed, a company might have its own consulting services arm for
parts of a solution, and provide certifications for other parts of a solution.
Taking this view, a company s assets and offerings also form a network of related
products and services it matches against the customer s solutions network through
the sales and marketing functions. Each node in the network has cost, risk, and reve
nue models associated with it, and as long as the overall revenue model is greater
than the sum of the costs, the company will be profitable.
It is important to remember, however, that no company exists alone in the market to
solve the customer s problems. Each vendor in a particular space must have different
product networks to allow a differentiation in its sales pitch to the customer. Differ
ent vendor companies will also behave differently in their hiring and acquiring strate
gies to shore up their "whole product offerings."
In addition, it is important to note that one can now look at intellectual property (IP)
tools (and by that I mean trademarks, patents, copyrights, and trade secrets) in con
text. Each of these four legal property types or tools (regardless of legal and geo
graphical jurisdiction) provides a different set of legal protections at different costs.
One is far more likely to spend heavily and strategically with IP protection tools in
the spaces defining one s core product value proposition or in spaces in which one
has the greatest investment, than farther out in the complement spaces of one s prod
uct offering network. Indeed, in the complement spaces, a vendor may aggressively
publish (or sparingly strategically patent) to ensure that no other vendor can patent
in the complement space and raise the prices on that complement.
If we now stan to consider open source and open standards in this core-complement
context, we see that they are simply additional tools in the tool chest to drive comple
ment spaces. Let s look at each separately for a moment.
Open Source Complements
It becomes very easy for a vendor (OEM, ISV, or systems integrator) to bootstrap a com
plement product or project space for its core value proposition to its customers using
open source software directly. The projects are polished to product readiness either
within the company or within the community itself. To "buy" versus "build" as comple
ment strategies for a vendor, we can now add "borrow" and "share." If a vendor joins an
existing community, it can polish the OSS project to product readiness to complement
its core value proposition to its customer. If it starts its own project, it can be used as the
hook to find and engage with new customers around the rest of its core offering.
The engagement in the community is actually a very leveraged conversation directly
with people interested in the community s project and then possibly the company s
offerings. As people cross the line from community participant and software user to
Open Source Complements * 1Z9
potential customer, they are self-selecting the vendor s services. This is a very efficient
way to find new customers. This does not mean one should consider the community as
a mass-marketing broadcast channel (it s not), but rather, as a public conversation with
one s customers and potential customers. This is not for the faint hearted. Unlike a tra
ditional "Go to Market" plan, the technical people have real-time unmanaged discus
sions with the customers. 9
The vendor s challenge becomes ensuring that products remain products and com
munities are communities. Starting a community project is not that risky if the ven
dor plays by the rules, staffing it with good software developers that will lead the
community well, and understanding that the real return is the conversation they have
with customers, and the product complement effect. The "community" at large does
not exist to work for free improving a company s products. This mistake is still being
made despite the public experiences of the past.
The community leadership is a benevolent dictatorship. Sponsoring the community (or
earning your place in an existing community) does give the vendor the opportunity to
manage things on its own terms. Software stability is maintained through the commu
nity project by the leadership. Project direction is developed by the community leader
ship and people that have joined the community and earned their position of trust.
There may not be a road map with a view three to five years out, as is almost necessary
in a product, but the complement space doesn t need the rigor of the core product.
Viewpoint becomes important. A customer s view of the need for a road map around a
solution may not map to a vendor s view of the need for a product road map.
While a number of relatively small companies are using OSS in their businesses,
large vendor participation is very interesting. [Caveat lector: the following examples are
observations from the author and do not represent any direct knowledge of these vendors
business plans or models.]
IBM has made three big plays: Apache, Linux, and Eclipse. IBM joined the Apache
community six years ago, borrowing a web server while selling WebSphere. It joined
the Linux community four years ago while managing the commodity curve on the
AIX product line and using it as a competitive shot into the Sun server market. Most
recently, it has begun a "share" project creating the Eclipse project out of technology
it acquired (and then it acquired Rationale).
In joining the Apache community, IBM doesn t need to maintain its own web server
team and can focus its efforts on WebSphere instead. In the Linux community, it can
focus on the parts of the OS that best meet its needs. Linux is clearly becoming the Unix
server replacement over time. IBM s AIX product space will be replaced. It can either
The first thesis in the Cluetrain Manifesto is "Markets are conversations." Indeed, most of the 95
theses are highly relevant to the discussion (http://www.duetrain.com/fimanifesto, Dec. 15, 2004)
130 I * Under the Hood: Open Source and Open Standards Business Models in Context
actively participate and position itself on the leading edge of the curve, or wait until its
product space is consumed.
SAP released a complete modern relational database for free in August 2002 to drive
its core business into the mid-tier customer space where the customer may not
already have an enterprise-class database and may not be willing to pay the "Oracle/
IBM/Microsoft" tax to get SAP R3. It was released under the GNU GPL after a two-
year, 100-person investment in updating the acquired Adabas technology. SAP then
partnered with MySQL AB in Sweden to "manage" the database community.
Sun Microsystems worked in the GNOME desktop community to develop, acquire,
and contribute the accessibility features it needed to meet U.S. government procure
ment policies to complement its Linux workstation offerings. For a relatively modest
investment in the tedious and difficult accessibility technology, it is getting an entire
full-featured desktop environment.
In each case, the corporation is getting more than it gives, developing a complement
rapidly around core offering(s). They gain time-to-market for the complement at a
reduced investment. While initially met with skepticism when a large company joins
an existing community, as long as that company plays by the community s rules with
respect to engagement and quality, it can become as accepted as any other active par
ticipant. Depending upon the nature of the product relationship to the core and
company commitment, the company may make best efforts to hire key community
developers. This is not altruistic, but neither does the company expect the develop
ers to change their community engagement. It gives the company deeper insight into
the community it is looking toward for support as it develops the complement.
There is a competitive edge to OSS community development as well. Often the com
pany takes advantage of the reciprocal aspect of the licensing to salt the intellectual
property fields around it by aggressively publishing prior art, holding the comple
ment costs down, and preventing competitors from directly monetizing their origi
nal investment in the community project software. For example, SAP is not in the
database business and so may feel comfortable publishing the investment in SAPDB
(now MaxDB), but it probably doesn t want Oracle, Microsoft, or IBM directly mak
ing use of that investment in their respective database products. In this case, the
reciprocal license is the most business-conservative license SAP could choose. As well
as driving a complement directly, the community engagement also allows the ven
dor to work closely with partners, customers, and potential customers to build the
relationships they will need to sustain the business over time.
The other competitive aspect happens when you consider two competing vendors
product-centric networks, and how they appear to the customer. The customer is
looking at things as a "whole product solution" and does not really think (or care)
about what is core or complement from the vendors perspectives. A vendor can
develop a complement community directly in the path of a competitor s core value
Open Source Complements ** 131
proposition to a mutual customer. It need not be a deliberate move and the sole pur
pose of a community; it is the icing on the cake of the multifaceted approach of a
business in using OSS development and engaging with its customers.
Small companies can also easily use the OSS buckets to bootstrap product comple
ments. Clayton Christensen s original research 10 around disruptive business models
shows how small companies assemble off-the-shelf parts into underperforming prod
ucts compared to the industry norm, offering those products in their own niches
with different business models. As the sustained innovation around the new disrup
tive product develops, it eventually becomes mature against the yardstick used to
judge the incumbent but at a better price for the performance, and the incumbent s
business is disrupted. Consider the development of the Linux operating system
from its inception in 1991, delivered by a university student, its growth in educa
tional use, to simple infrastructure servers, to the point in history where it is pres
ently challenging the traditional Unix vendors products (though it has, in some
cases, become too complex to teach anymore 11 ).
There is also a situation, as we shall shortly see, where a product market hits the point
when customers start to be overserved, and there is a call for standardization. This
means that OSS components that already represent a package with well-defined inter
faces may be a rapid way to bootstrap a "good-enough" product into that market.
One thing to note in this discussion using the network of core and complements
together is that there is no "stack" of technology per se. Think back to the earlier dis
cussion of customer-centric solution networks and vendor-centric product networks.
Vendors may see their world as a stack with their valuable core at the top and all the
commoditized complements below, but in reality, it is simply their view through their
own product stack and its relationship to the customer and their partners. A chip man
ufacturer views the stack very differently from an operating system company or from a
middleware company (hardware design in silicon is where the value is, with operating
systems and middleware and apps being less and less interesting to the chip manufac
turer). The terminology of eating up the stack may have more to do with the position
in which the vendor perceives itself.
Open Standards Complements
Clayton Christensen further observed in his research 12 that as companies begin to
overdeliver functionality in their product lines faster than customers are able to use
the new functionality and therefore faster than customers are willing to pay for it
10 Clayton Christensen, The Innovator s Dilemma (New York: Harper Collins, 1997).
11 In interviews in February 2003, a number of university OS professors made reference to the
current revision, with the addition of symmetric multiprocessor suppor, becoming too complex
to teach. As a result, they were basing their course work on earlier versions of Linux.
12 Clayton Christensen, The Innovator s Solution (New York: Harvard Business School Press, 2003).
132 ^ C Under the Hood: Open Source and Open Standards Business Models in Context
the market begins to call for standardization. Indeed, prior to the point where they
begin to overdeliver, the market leader is often offering the technology in a tightly
integrated fashion and best delivers to consumer needs in this space where the solu
tions typically are not yet good enough. This is the time when tight integration, not
standards-based components, is the path to success. Standards develop once the
marketplace reaches a point where the market leader begins to overdeliver. These are
the circumstances in which a market-dominant de facto technology is at a critical
point and the call for de jure standardization is possible.
The signal to standardize a technology is somewhat unclear, but there is likely a col
lection of factors:
Competitors with standards experience and similar product offering networks
but different core drivers likely use the opportunity to "call for standards," 13
hoping to reduce their own complement costs while causing a competitor grief
in a core revenue stream.
Customers managing substantial procurement budgets will support and call for
standards in the hopes of prolonging investments and attempting to reduce costs
from vendors that are overdelivering. For example, the U.S. government as the
largest IT buyer on the planet at the time, led the charge around the POSIX and
C-language standards, quickly followed by the large companies in the petroleum
and automotive industries.
If you are the one true implementer, and the market (i.e., partners, customers, and com
petitors) is calling for standardization in your core technology space, you have a prob
lem. They re calling for the benefits of standards (expanding market and price competi
tion) because they want the ability to replace you. Some segment of your customers
wants the choice of multiple implementations. Your competitors are happy to support
the call, as this is the thin edge of the wedge to break open your value proposition to
your customer, all in the name of open systems. Your partners may be happy to support
the call for standardization because they want price pressure as their margins diminish
and perhaps your percentage of their Cost-of-Goods-Sold is increasing.
13 Geoff Moore argues that the first response in the market from competitors when they see a
"gorilla" forming is to cry for "open systems" (Geoffrey Moore, Living on the Fault Line [New
York: HarperBusiness 2002], 119). This might be more of a cause for standardization too early
with all the attendant problems that ensue as has been observed by James Gosling of Sun
Microsystems (James Gosling, "Phase Relationships in the Standardization Process", circa
1990). Goslings observations are more closely in line with Christensen s, arguing that there is
an optimal time in a technology s development for standardization. Some of us have always
suspected that it is best to standardize existing practice and experience, instead of trying to
standardize ahead of the market curve. Indeed, it would be interesting to do a survey of
successful and unsuccessful standardization efforts to determine whether the unsuccessful
efforts were undertaken too early in a marketplace, when vendors are still trying to define the
marketplace itself and stake out claims with products and patents. First, of course, one would
need to define the measure of a successful standard. Christensen s observations are likely more
in line with standards forming at the optimal market time.
Open Standards Complements ** 133
It is important to note that one needs to get the view of the market "right" for this
sort of discussion, and hindsight is always 20/20. It is not necessarily the dominant
vendor s product that is to be standardized, but the product market space. For exam
ple, one can argue that the POSIX standards (and the C-language standards, for that
matter) were not about standardizing Unix systems, but rather, were an effort to
standardize an OS interface for minicomputers. Digital Equipment Corp. was the
dominant player in minicomputers (which became departmental servers and work
stations). DEC was driving customers up the hardware upgrade cycle to support its
market growth faster than customers were willing or able to absorb the change. Unix
systems of the early and mid-1980s represented the best opportunity around which
the market could form a minicomputer application programming standard to sup
port customers applications portability. While the Unix systems of the day were
often less scalable, less robust, and less secure than VAX/VMS systems, the Unix
operating system had been ported to most vendors hardware (including DEC
VAXen), so competing vendors could see the market opportunity.
At the same time, the PC arrived on the scene. Many have argued that the PC won
against Unix systems by taking over the desktop, largely due to the inability of the Unix
vendors to set a desktop "standard" fast enough. The PC certainly took the desktop by
storm, but it was actually competing against nonconsumption. In a Christensen view of
the world, it was put together from inexpensive parts, and when compared to mini
computers it was certainly underperforming, but it became the de facto business appli
ance in a document-centric world, enabling a whole new class of electronic document-
centric applications. (Word processing systems companies vanished almost as fast as
the minicomputer companies.) The PC was competing with nonconsumption, giving
business users computing resources on their desktop instead of being stuck waiting for
their business data processing applications to be developed by corporate IT, with its
ever-growing systems development backlog. The Unix systems (driven by standards
and an "open systems" message) were data processing-centric rather than document-
centric, and caused DEC grief in a completely different space.
Christensen observed that as an area of technology is standardized, the value moves
to adjacent spaces in the network. 14 The trick then becomes to ensure that one is
building one s business efforts in the product network around the space being stan
dardized. This would lead us to believe that the richer a product offering network a
vendor has, among different software, hardware, and service components and prod
ucts, the more opportunity that vendor has to move with the value or to define new
components that the old components complement.
14 This was originally referred to as "the Law of Conservation of Attractive Profits," but is now
referred to as "the Law of Conservation of Modularity."
134 X Under the Hood: Open Source and Open Standards Business Models in Context
This core-complement product network view allows one to very rapidly see how the
vendor politics in a standards working group play out. A vendor with a de facto
product technology that is being dragged by the marketplace into a de jure stan
dards working group is likely a little less than enthusiastic about participating in its
own commoditization. The vendor alliances within the working groups are partici
pants in the complement space. The game is one of technology diplomacy, where the
goal as a vendor representative is to expand your area of economic influence while
defending sovereign territory. This holds true regardless of whether one is participat
ing in a vendor-centric organization such as Ecma International, as an "expert" to a
national delegation to the ISO (on behalf of her employer), or as an individual con
tributor to an organization like the IEEE (again, funded by her employer to partici
pate). Vendor consortia offer a similar view. Which vendors formed the consortia
and which vendors quickly and noisily joined shortly afterward says a lot about who
the incumbent in a product space is and who the competitors are.
Conclusion
Businesses are often much more than simply hardware companies or a software com
panies or a service providers, offering breadth of product and service in overall value
proposition to their customers. Successful companies use a collection of strategies to
deliver a "whole product offering" for their customers, driving their core revenue
generator with a host of complementing products and services.
Standards have traditionally been one tactic or tool for driving additional comple
ment value to a customer by developing a complement space in a maturing market
with a lot of implementations at a reduced price.
Open source software can also be used as a tool to develop a complement space that
supports a core revenue product or service. The open source project can act as a
quick and convenient bucket of technology around which other product offerings are
wrapped, or plugged into an existing product offering network.
A number of models were presented on how to think about customer-centric solu
tion networks and vendor-centric product networks (and for thinking about the
product network from a core-complement point of view), alongside Moore s tradi
tional Technology Adoption Life Cycle and Christensen s models for how product
markets behave. Open source software projects and standardization efforts can be
viewed as tools to be used to attain competitive advantage. A number of large corpo
rations are now participating in OSS communities to the benefit of the corporation
and the communities, just as corporations have historically driven voluntary stan
dards engagements. The model-based view certainly doesn t take away from the
excitement inherent in different OSS projects or the overall economic value of a suc
cessful standard. It merely provides context to businesses that want to understand
how to adopt and participate in either.
Conclusion ** 135
t CHAPTER 9
Russ Nelson
I ve been giving away my software since 1983, full time since 1991. I don t do it for
fun, although I enjoy it. I do it because it s a way for a small business to earn money
and it s fun. Each of my software interests started as a hobby, and some have turned
into a profession. Not every hobby of mine has turned professional, and I hope to
explain why some have and some have not.
Three of my hobby projects, which I ll talk about in depth after I introduce myself,
have turned profitable. They are Freemacs, Packet Drivers, and qmail. 1 Freemacs is an
MS-DOS text editor, styled after Emacs. It s still used today as the official editor of the
FreeDOS project. Packet Drivers hide the difference between Ethernet cards in an MS-
DOS system. If you ve ever eaten at a McDonald s restaurant, your order was communi
cated through Crynwr Packet Drivers. Qmail is a mail transfer agent (MTA) for send
ing and receiving Internet mail. Qmail is the engine behind Rediffmail s 30-million-
user, multiterabyte, 100-node email cluster, and many smaller sites.
Introduction
I did hardware hacking long before college. Digital electronics was too expensive for
me: $1 per TTL quad nand gate at a time when vinyl records cost only $5. So, I fid
dled around with analog electronics. I invented a trigger sweep for my dual-beam
oscilloscope, and an analog computer throttle for my model railroad.
Qmail is an all-lowercase name, and will be capitalized here only at the beginning of a sentence.
^137
My high school was a member of LIRICS: Long Island Regional Instructional Com
puter System, which had a PDF- 10 students could use to leam to program, via tele
types operating over modems. I was at Baldwin Senior High School from 1972 to 1975,
but took advantage of the program only in my last year, from 74 to 75. I learned
BASIC and wrote a four-banger calculator program. I also wrote a word processor in
BASIC, for which I had to do all sorts of horrific string manipulation. It took hours to
format a two-page social studies paper. Partway through I got an Instant Message (IM)
from an operator who asked me what I was running, and if it was looping.
During this period I learned PDP-10 Assembly language. JRST, HRRLZ, and SKIPNE
are all familiar friends to me. Unfortunately, none of my candidate colleges had a
PDP-10. MIT almost certainly did, but I was a poor scholar who was more interested
in getting an education than in proving that I had one. Of course, everything on the
PDP-10 was what we d now call "open source." Nobody thought of holding back the
source code in those days.
Many colleges will teach you how to become a businessman. I didn t have that desire
upon entering college, and so I sought a degree in electrical engineering. Only later
did I decide to run my own business, but how to learn? I started slowly, learned
through experience, and didn t take too many risks.
I learned "on the job," and discovered new ways to profit from open source soft
ware. Everyone in the business had to teach themselves. There is no master s degree
of open source business administration not yet anyway.
Hewlett-Packard recognized my "genius" and hired me and my wife to work in its
calculator division doing integrated circuit design. I missed programming, so I
bought a RadioShack Color Computer (CoCo). This led to my first freelance income
associated with programming.
I wrote programs for fun and sold them to CoCo Magazine for distribution. They were
just little cute things, but they were in Assembly language, so they were fast, small,
and easy to distribute. The standard distribution was on audio cassette through a
paid subscription. It was nice to receive money for writing a program for fun. With
out a local user community, it was also the only way I could distribute my software.
Freemacs and Open Source
After I returned to graduate school, I started writing a programmable editor for MS-
DOS. Instead of writing it de novo, I thought it should be compatible with Emacs. I
had used Emacs while working at Hewlett-Packard, where I had done some hack
ing on an editor. That experience convinced me I wanted an editor without any dis
tinction between editing and typing. I purchased a copy of the MIT AI Lab memo
describing Emacs, written by Richard M. Stallman (RMS). I recognized his name
because of his GNU Manifesto, a new document then. I sent email to RMS to get
138 K * Open Source and the Small Entrepreneur
permission to sell a copy of the memo along with my editor. The document was in
the public domain, but I thought that asking permission was only polite.
I got a call from RMS (this was back when his wrists hurt so badly that he couldn t
type). He persuaded me to give away my version of Emacs rather than sell it. He
appealed to my sense of fairness. He asked why I should profit from a manual that I
had not written. I was impressed that so stellar a personage as RMS would take the
time to call me. I decided that it would be best to give it away. I didn t really have
any idea whom I might sell it to. All my previous software sales had been for the
RadioShack Color Computer, and had been sold to CoCo Magazine. My editor was
for MS-DOS, so this was a completely new situation for me. Once I decided to give it
away, I gave it the catchy name Freemacs.
In graduate school, I had access to worldwide networks, and it was actually possible
to distribute software "for free." Nobody was kidding themselves; the Department of
Defense was paying the bills for the ARPANET, universities for BITNET, and compa
nies for CSNet. Nothing was free to the institution, but the users perceived the net
works to have no incremental cost. This led to allocation by congestion, but I m not
talking about economics yet. Regardless, a software author could give away software
for the mere cost of uploading it to a distribution point.
Freemacs was distributed from SIMTEL-20.ARPA, an FTP site with copies of most useful
MS-DOS software. It was run by the Army at the White Sands Missile Base, but nobody
cared about where it was physically. The point was that they had good stuff, and they
were sharing it. This made me a contributing member of the open source community.
Freemacs and Business
Freemacs was a hobby, and I had no intention to turn it into a business. My comput
ers (even my home computers) were paid for by my employer, so I had no expenses
to cover. As the program gained users, they told other MS-DOS users about it. Those
users wanted updates, and none were available on any of the worldwide networks of
the day. Having no other recourse, they asked me for copies. I knew that they were
gaining from these copies, so I asked for a portion of those benefits in the form of a
copying fee. Between 1985 and 1991, most of the activity of Crynwr Software con
sisted of putting software on floppy disks and mailing it to customers.
Two interesting stories about mailing floppies: one is about a customer in Ireland who
had two floppies go bad on him. Guessing that his email was going through some kind
of antiterrorist scanner (as the Irish Republican Army was quite active at the time), I
sent him a third floppy wrapped in Imm-thick lead foil. That floppy got through OK.
Another is of a customer who, although a part of the defense department, had no Inter
net access, or even have a modem and this was after almost everybody had gotten on
the Internet, so I was surprised that they were even allowed to telephone out, but I sent
them a floppy with software on it and they were happy with that.
Freemacs and Business I * 139
Staying in Touch
It s crucially important to stay in touch with your users. The biggest advantage
an open source developer has is close contact with users. If you re the primary
user for the software, of course you know what users want you just sit and cog
itate. Quite a bit of open source software is written to "scratch your own itch."
This is easy and rewarding because very little communication is needed. Pro
grammers are not typically great communicators (most programmers fall into one
of the four NT classes on the standard Myers-Briggs personality test). A program
mer who can listen and talk is worth her weight in chips (and chips are worth
more per ounce than gold).
With Freemacs, I started with a single mailing list, which proved to be a mistake:
some people don t need any help and just want to know when new releases come
out; other people want to get or give help but don t want to code; and still other
people are interested in every miniscule detail of the program. One list cannot
serve everyone. I found that I needed three lists.
One list carried only announcements of new releases. You really want to have an
announcements list, and you need to remember to use it. You might send only
one or two pieces of email a year, but those are crucial. First, you need to remind
people that they ve given permission for you to send them email. Second, people
need to know that you re in business even if they don t currently need your busi
ness. Any user might suddenly find himself needing to become a customer. You
need to be the proprietor of the relationship between the software and the user,
as you ll use that relationship to make money.
A second list was for user-level help. Some programs are exceptionally powerful
(I m not thinking of the Unix "cat" or "tail" here, but something more like send-
mail or qmail) and in-depth knowledge to properly exploit all that power. Some
users want to acquire that depth. Others do not, but will dip their toes into the
depths by asking a question on the user mailing list. If there are sufficient users
of the program, you will have other businesses competing with you. One of the
ways they will compete is by offering to help other people. No need to worry,
though! By virtue of your proprietary interest in the program, you will have a
built-in advantage over these other businesses. In any case, customers like com
petition because they perceive it as ensuring fair prices.
140 * C Open Source and the Small Entrepreneur
The third list is for developers. 1 am of two minds here. You could have the devel
opers list open to all comers, regardless of their to contribute to the project. Or
you could have the developers list be open only to those who actually have con
tributed. The main tradeoff is protecting the time and attention of your contrib
utors. You don t want them signing off the developer mailing list because it has
too many user-level questions being asked on it. You really need their attention
to help you make decisions that will affect them. For example, if you change an
API, you need to clear that change with your developers first, because it keeps
them involved in the process, and second, because they may be relying on some
thing you re doing.
FreeDOS has adopted Freemacs as its standard text editor, so it still has a user base. I
only rarely do any MS-DOS work, and when I do, I m happy with the state of
Freemacs, so it s now frozen in time. There were never any commercial users, so
apart from selling copies on floppies, Freemacs managed only to buy me my own
computer for home.
Packet Drivers
Crynwr Software came into its own with packet drivers. A packet driver allowed the
sharing of an Ethernet card between two protocol stacks. For about a year, the only
possible way to get Novell network clients on the Internet was by using a packet
driver. Also, a packet driver would hide the differences among Ethernet cards.
Unlike video boards, which are at least compatible at the VGA level, Ethernet boards
have never been compatible.
Back before packet drivers existed, there were network clients and servers largely
Novell NetWare. The manufacturer- written network driver was linked to Novell s
code in a single executable. The resultant program had no API for an external pro
gram to send or receive an Ethernet packet, which was very bad for any competition
to NetWare. Maybe Novell planned it that way, but I doubt the company was that
Machiavellian.
Anybody wanting to send packets other than NetWare s had a problem.
The 3Com 3C501 was the market leader, but it was a very insufficient card. It had one
buffer shared between transmit and receive, so a packet could be lost if it arrived when
the buffer had not been emptied, cleaned, and turned around. However, everybody had
drivers for it. Novell, in an attempt to improve the state of the art, took National s 8390
demo board and put it into production as the NE1000 (and later as the NE2000). This
board had sufficient memory with separate transmit and receive buffers.
Just about then, other Ethernet controllers were coming on the market. People were
using the Intel 82586, the AMD LANCE, and the National 8390 (in non-NE2000-
compatible ways). Only NetWare included a device driver development solution. It
had a driver development kit (DDK), and a certification house (Novell Labs).
Other protocol stack vendors were doing the same thing producing drivers linked
into their own products. No vendor had a driver that could be shared, however.
While Novell and Microsoft pondered, little FTP Software (now owned by NetMan-
age) had the same problem as everyone else: too much hardware and too few driv
ers. It came up with its own specification for a shared Ethernet driver and, unlike
other vendors, published it as an open standard.
I was working for Clarkson University at the time, and we had the same problem as
everyone else: how to support multiple pieces of software and hardware at the same
time. I was using Phil Karn (KA9Q) s NOS, and he had packet driver support. So, I
wrote packet drivers for the two Ethernet adapters in use at Clarkson (the 3c501 and
Racal-Interlan NI5210) and published them as open source software.
A number of fellow Internet users contributed drivers, and before long, we had cov
ered a considerable portion of the industry. This led to more support from TCP/IP
vendors, and a group at Brigham Young University wrote a NetWare driver that
could use a packet driver. We really got the ball rolling then, because anyone with a
NetWare network could put it on the Internet.
There were some holdouts, notably Microsoft and Novell, both of whom started pro
moting their own standards: NDIS and ODI, respectively. The NDIS document was
published from the start, but there were no sample drivers, and no base of code from
which to build. ODI documentation was available only with an expensive DDK pur
chase. A packet driver distinguishes itself by coming with source code, by having a
simple, approachable API, and by being small in size. The typical driver was 5K of
executable, compared to 20K for ODI, and 40K for NDIS.
By the mid- 1991, I realized there was money to be made providing packet driver
programming and certification services the latter for drivers not written by Crynwr.
So I left Clarkson and, after a five-month placeholder stint at a local PBX company, I
started Crynwr Software. Up until 1998, Crynwr s main source of income was from
packet drivers.
Packet Driver Income
Most likely, everybody has heard that the way to profit from open source software is
to sell services. That s true, but there are many different types of services. I ll list
some of them in the following paragraphs.
142 * * Open Source and the Small Entrepreneur
The first, and most profitable, is contract programming. Various people need packet
drivers written, or features added, or bugs fixed. I contract with them to fix it, either
for a fixed price (if I understand the problem), or at an hourly rate (if discovery is
needed). Buyers don t like cost uncertainty they really like to know what some
thing will cost up front but whenever you bid a fixed price, you are taking on the
risk that the project will be much harder than you thought.
I have actually been successful doing what appears, at first sight, to be the worst of
both worlds: charging per hour with a minimum and maximum price. If you set the
minimum and maximum to reasonably sane values, the risk is reasonably shared
between the two parties.
Business Tutorial
Here s a quick tutorial, which I wish I had had when I started, on how people do
business. First, customers expect to do business first, and pay you for it later. The
customer accomplishes this by issuing a private currency called a purchase order
(PO), with a face value and a serial number called the "PO number." Purchase
orders owed to you are Accounts Receivable. Purchase orders you have issued
and will pay are called Accounts Payable. I call a PO a currency because you can
get a loan against good receivables, and you can sell bad receivables (customers
who don t pay, or pay very late) at a discount.
Never do work on a promise to pay you. If someone is really going to pay you,
they ll be able to cut you a PO. People change jobs and companies go into bank
ruptcy. If you have a PO number, that s as good as gold, because a company s
ability to purchase things depends on its reputation for paying on terms. If it loses
that ability, nobody will accept a PO from the company, and then it has to pay
cash for everything. Get that PO!
Some companies have intricate purchasing systems, where you have to be a qual
ified vendor, you have to sign a W-9, and you have to sign a nondisclosure agree
ment just to work with them. Other companies just whip out the credit card, and
you re good to go. For any company larger than 50 people, though, you ll be
dealing with a buyer. Most buyers are used to purchasing software as a product.
Although they are starting to understand that software can be a service, you
might still might run into a confused buyer, because sometimes they re told to
"buy this software" and they don t understand that they re purchasing a CD and
a support contract. Take the time to educate them about the difference, and you ll
have an easier time working with them.
Packet Driver Income X 143
I ve also sold proprietary packet drivers, although this was a special circumstance
(and one that was very profitable to me). I had a customer who wanted a new packet
driver, but who didn t want to pay the entire price for it. He wanted to pay only half.
He persuaded the vendor (SMC Semiconductors, now SMSC) to pay the other half,
since the packet driver would be useful for all the vendor s customers. That seemed
fair to me. I had his purchase order and SMSC s promise. Unfortunately, he paid up
and SMSC didn t, so I had a packet driver that the vendor hadn t paid for. If I made it
freely copyable, no vendor would ever bother to pay me, so I decided to license it to
SMSC s customers until SMSC paid me. The company never paid, so I sold it with a
clear conscience.
I ve also dual-licensed packet drivers. A vendor that was going to embed an Ethernet
chip into its product and use an embedded processor wanted to freely copy code
from the packet driver without taking a chance that its driver would become a
derived work under the provisions of the GPL. So the vendor purchased a copy of
the code from me, licensed for any use except resale.
I ve also sold compatibility certification. Digital Equipment Corporation had written
its own proprietary packet drivers. DEC wanted me to certify that the company was
compatible with the open source packet drivers. I had written a test program that
would exercise the edges of a packet driver to try to break it. If that program ran, it
meant DEC had made no stupid mistakes reading the specification. I also ran a stress
test for several days; if that didn t run into problems, it meant DEC had made no stu
pid coding mistakes.
I ve also done pure consulting. Contracting is different from consulting. A contractor
is someone who sells his work output, and a consultant is someone who sells his
ideas. A customer wanted me to describe how my packet driver worked on their
hardware, so they sent an engineer to my site for a day to get a debriefing. He took
my family out to lunch, and I got paid handsomely for the day not as much as I
would have been paid to write the improvements myself, but you can t make all the
money all the time.
Qmail
Qmail 2 is an MTA written by Daniel J. Bernstein, a University of Chicago professor.
He needed a fast MTA to run his mailing lists. While I was working on Freemacs and
Packet Drivers, I was also running my own mailing lists.
Qmail is not open source. It s freely copyable, but you can t redistribute modified executables.
Although open source MTAs do exist, qmail is close enough to open source that I have
insufficient reason to switch.
144 x x Open Source and the Small Entrepreneur
I experienced the same problems he did, so when he published qmail, I was on it
right away. First, I ran it on a test machine, because I hate to lose email. Later, I ran it
on my email hub after I learned to trust it. Slowly, the qmail community grew.
Working with qmail has been a different experience from Freemacs and Packet Driv
ers, as I did not write the qmail code. It s just as well, since that gives me something
different to write about. It s a truism that you cannot sell something you don t own.
A number of the techniques that I used for Packet Drivers do not work for qmail, as I
don t own the copyright on it. Nonetheless, I have done quite well with qmail.
Open source software serves to promote the author. By writing quality software
(code and documentation), the author shows everyone the quality of his work. The
software pushes his reputation out into the world. But what if you haven t written the
software? I have found the best technique is to spend time reading user forums and
answering questions. You can advance your reputation in this manner.
There are other ways to establish your expertise with a particular program. You can
contribute improvements to the code or documentation. You can write your own
code that enhances the software, but that otherwise stands alone. You can also write
extra documentation or maintain a web site about the software.
I did all these things for qmail. Dr. Bernstein was not interested in registering the
qmail.org domain, so I did it for him and maintained the web site, and I wrote a
POP3 daemon for qmail and gave it back to him. I answered questions on the qmail
mailing list. I wrote add-on packages and patches that people have found useful.
Using all these techniques, I found paying qmail employment. Most often this came
from people who needed qmail installed on their machines and had extra requirements
that needed custom coding. Sometimes the customer wanted on-site qmail training
which I have provided in Stockholm, Mumbai, London, New York City, Oslo, and
Istanbul. All these trips were, of course, paid for by my customers, who also paid me.
Open Source Economics
It was my reputation, or "brand name" if you wish, that got me involved in the Open
Source Initiative (OSI). I had been running the Free Software Business (FSB) mailing
list since 1993, and had some success and reputation. When I heard about the Open
Source name, I immediately adopted it in describing my software. It s so much easier to
explain to customers why they should pay for software when it isn t "Free Software."
Sometime after that, I heard that Eric Raymond was seeking to create an organization
to promote OSI. I had been corresponding with Eric about open source, and we had
discussed it on the FSB mailing list, so I volunteered to be on the board of OSI.
I started the FSB mailing list so I could be more aware: I wanted to know what other
people were doing to make money from open source. It seems that adding value to
Open Source Economics * * W5
things others created is a revolutionary way to make money; even Shakespeare might
agree, as he routinely "recycled" plots and storylines written by other people.
Certainly in the software business, an FSB is a new thing. With proprietary software,
about the only way to add value is to sell the software for a higher price, or bundle
products and sell them together for a lower price in toto.
Running an FSB interested me in economics. When you give up a payroll check and
start paying yourself, you also have to pay the business s share of Social Security
taxes and start paying estimated income taxes quarterly. The government imposes
this dead load on businesses. Why do they do this? Who benefits? Who loses? Eco
nomics helps you answer these questions.
Think carefully about how you price your services. There is an economic concept
called "price differentiation." It means that you charge different parties different
prices for slightly different services. If you charge a single price to everyone, and that
price is too high, you miss out on helping some people who cannot afford your ser
vices. If you charge a single price that is too low, you create value for some people
beyond the amount they paid. It s not exactly fair that they should gain a lot more
than you. To maximize your gain, sell things to people based on the value they
receive rather than the cost to you. For example, everyone has seen software sold for
less in a third-world country or to a school.
Of course, pricing is also related to costs. Think about both transaction costs and so-
called "sunk costs." Every transaction consumes a small amount of value in the transac
tion itself. The buyer needs to evaluate whether the cost spent is worth the value
received. The seller needs to take the money and provide the value. This cost is not
received as value by either the buyer or the seller; it is simply wasted. One way you can
sell support to a customer is on a self-renewing yearly support subscription. One
month before the subscription expires, you send the customer an invoice. The sub
scription portion avoids having to bill the customer for each support request, and the
self-renewing portion avoids having to ask the customer to renew the support contract.
A sunk cost is one you cannot recover by selling the thing you bought for example
a railroad or a run of fiber optics cable. You can pull up the rails and sell them, but
you won t get back anywhere near the cost of building the railroad. Likewise, spend
ing money to create or improve open source software is a sunk cost. Once you ve
spent that money, you have no way to sell the software (except by exiting the open
source system by using a dual license). Just as a railroad needs to recover its sunk
cost by selling transportation services, you need to recover your investment in the
software by selling related services.
One of the ways to manage costs is by making use of "public goods." A public good
is nonrivalrous (meaning that my use doesn t affect your use) and nonexcludable (I
can t stop you from using it). Absent copyright or patent protection, information is a
146 ^ C Open Source and the Small Entrepreneur
public good. Open source is typically copyrighted software, but is licensed under
terms that make it effectively a public good. There is currently great debate over how
much excludability is necessary to produce the optimal amount of software.
Previously, economics students were taught that public goods were always underpro
duced, with lighthouses as the canonical example.
Someone dug up the history of lighthouses, only to find that the early ones were
built by voluntary organizations. In a similar manner, the Free Software Foundation
(FSF) wrote the GNU tool set as a public good. Economists can no longer assume
that public goods are underproduced.
People don t particularly care about products. People only buy things and own things
for the services those things render to them. People don t want to own a washing
machine; they just want clean clothes. Any desire to own a washing machine is second
ary to having the clean clothes. The same thing goes for computers, only computers can
provide many different services. The same services that someone can get from a soft
ware product can also come from open source software and a support contract.
Economists have discovered many principles helpful to the proprietor of an open
source business. Nevermind the joke about 10 economists having 11 opinions. This
chapter can but touch on the principles. (See the "For Further Reading" section at the
end of this chapter for more information.)
Where Do We Go from Here?
I ve brought you up to my present life. Well, not quite. I received an inheritance
from my mother, which, when invested in the stock market, generates sufficient
income that I no longer need to work for a living. I still take interesting jobs as they
come up, and I support long-term customers because they ve become friends, not
just customers. In everything else, I just write open source and distribute it as I wish.
My advice to you is to always pay your retirement fund first: put 10% of every
project s check into a brokerage account and invest it in an Exchange Traded Fund.
Happy hacking!
For Further Reading
For a basic (and enjoyable) introduction to price theory, read Hidden Order, by David
D. Friedman (Collins, 1997). In fact, read anything written by any member of the
Friedman dynasty: Milton, Rose, David, or Patri.
For a basic introduction to economics, read Economics in One Lesson, by Henry Hazlitt
(Three Rivers Press, 1998).
Where Do We Go from Here? *C M7
For an explanation of the proper function of the law, read The Law, by Frederic Bas-
tiat (Foundation for Economic Education, 1987). It s in the public domain, so you
can find it on the Web, in print, and as a free audio book.
For a very deep exposition on economics, read Human Action, by Ludwig von Mises
(Fox & Wilkes, 1996). It s available at http://www.mises.org/humanaction.asp.
The FSB mailing list is at http://crynwr.com/fsb.html.
Freemacs is at http://www.freedos.org/jhall/freemacs.
Packet Drivers are at http://crynwr.com.
qmail is at http://qmail.org.
148 x x Open Source and the Small Entrepreneur
CHAPTER 10
Wendy Seltzer
Why Open Source Needs
Copyright Politics
Some programmers and businesspeople draw a distinction between "Free Software"
and "open source." Free Software is political, they say, and open source is pragmatic.
Free Software developers want to recede the world; open sourcers just want to write
good code. This distinction is, of course, exaggerated. Many people adopt these
labels for their own reasons; some switch between them depending on audience or
context. But even the most apolitical of open source developers and users should be
concerned by the copyright battles waged right now. The copyright law being made
and enforced today will impact the software we can develop and use for decades, and
its impact reaches far beyond commercial media.
Imagine, for example, that you d like to build an open source home multimedia
server. Nothing fancy yet, just a place to play music, watch the occasional DVD, and
record television programs one machine to replace the menagerie of devices nest
ing in your media center. Easier developed than cleared legally. Technically, you (or
others willing to share with you) will be able to meet the challenges with Moore s
Law-fast processors, ever-cheaper massive storage capacities, and clever user inter
faces. The legal obstacles are harder to hack. Start with the music. If you have stan
dard CDs, you re all set: plenty of Free programs let you play them from the CD
drive, rip them to Ogg, FLAG, or MP3 (with a nod, perhaps, to the patent licensors at
Fraunhoffer). Try to connect to a streaming service or purchase music online, and
things get tricky. Apple s iTunes, the "new Napster," and Rhapsody all lack open
source clients, and none would be happy with reverse engineering to write one that
plays the music they sell encrypted or by subscription.
Yet music is the easy part. Want to write a player for DVDs you ve purchased or Net-
flixed? Because only closed source implementations have been licensed to decrypt
the DVD s files, any DVD player you write is liable to be deemed a "circumvention"
by the movie studios and courts, even if the only features you write match those of
WinDVD or the standalone player under the TV. Television, then; recording over-
the-air broadcasts shouldn t be too hard, since those are unencrypted. Watch out for
the digital television transition and the broadcast flag, though. Unless public interest
groups challenge succeeds, the FCC s broadcast flag rule will ban open digital TV
tuners that can be used with open source software. The only ones who will be able to
play will be those making closed hardware or proprietary software decoders. You ll
encounter these obstacles before you even try to take any of your media off the server
to exchange with friends or family.
OK, but say for a moment that you have no interest in multimedia. Leave that mine
field for another day and move on to business networks or productivity software.
Even there, copyright law intrudes. Your security analysis of a system s encryption
might be limited by what media companies have preemptively claimed as "techno
logical protection measures;" your selection of replacement parts or add-on modules
could be dictated by copyright-based tying more than fitness for use; your ability to
interoperate depends on whether reasonable interpretations of the law prevail over
some vendors extreme copyright claims.
Like a group of once-healthy cells grown out of control, copyright law has metasta-
sized to threaten the system of creativity it was once helping to support. No longer a
"limited monopoly" to encourage creativity and dissemination of creative works to
the public, copyright has become a blunt tool of exclusion, chilling development of
software, among other creative endeavors. And so the fight to restore balance to
copyright law cannot be dismissed as mere politics. Unless users and developers of
open source software join the copyfight, they will find the new reality of copyright
law restricting not just their freedom to play blockbuster movies, but also their core
freedoms to write and run independent and interoperable software.
From Movable Type to MovableType
A balanced copyright law is enshrined in the U.S. Constitution: "to promote the
progress of science and useful arts," Congress was empowered to grant authors
exclusive rights "for limited times." The monopoly created was limited in time and
scope. The first copyright law gave authors a 14-year term, renewable once, to pub
lish and vend maps, charts, and books. Copyright protected original expression for a
short time, while leaving others free to build around that expression (translations and
dramatizations, for example), and then to recycle works entirely from the public
domain once copyright expired.
ISO ^ C Why Open Source Needs Copyright Politics
Copyright law has changed with the introduction of new technologies. New means of
reproduction often first challenge the copyright framework, then establish them
selves as new creative tools for authors and their public audiences alike. At the turn
of the last century, printers bought single copies of sheet music and punched holes
into rolled paper to program "piano rolls" for then-new player pianos. Composers
and music publishers sued, seeking to rein in this appropriation. When the courts
held that punched paper didn t "copy" inked notes, Congress updated the law with a
compromise not to ban player pianos or mechanical reproduction, but to permit
anyone to produce piano rolls if they paid a "mechanical license" royalty for every
roll sold. As the player piano market grew, more music reached more people, and
more composers got paid for creating it.
The pattern has repeated itself many times since. Songwriters and performers
denounced radio until both found that it could promote sales. Movie studios deplored
the videocassette recorder, saying Sony s Betamax would be the "Boston Strangler" to
their industry. When they failed to shut Sony down, however, the industry converted
its peril into a profit center, finding that viewers with home recorders were potential
customers for rentals and sales of appropriately priced videotapes. Meanwhile, the
Supreme Court s ruling that technology makers would not be liable for users copy
right infringements so long as their devices were "capable of substantial noninfringing
use" fueled a technology boom. The public and the creators shared the benefits of new
technology the public could record movies from television to videotape; studios
could sell or rent videocassettes more easily than reel-to-reel.
Despite making it through these earlier transitions, the entertainment companies
haven t stopped fighting technological change and the competitive threats it repre
sents. The MP3 player is a slightly more convenient cassette deck, and the weblog is
just the next step forward from the typewriter and mimeograph. This time, however,
the entertainment industry has swayed many in Congress and the courts to the view
that "digital is different," and induced them to change the law in ways that are differ
ent and dangerous.
This expansion of copyright s control interferes with open source development. The
changes manifest themselves in layers, most notably overassertion of protection for
code itself; excessive protection of other copyrighted content that code is dealing with;
and misuse of copyright to control markets and maintain cartels in technologies of dis
tribution or manipulation of code and content. Together, the copyright layers build a
shell around not only proprietary code, but also around culture and innovation.
Copyright in Code
Copyright protects original expression in code, as it protects any other "original
works of authorship fixed in any tangible medium of expression." Some developers
use that protection to enforce the openness of their code, as with the GNU General
Copyright in Code X 151
Public License (GPL); others use it to reinforce a proprietary distribution model. But
while copyright protects code s creative expression, it does not protect the functions,
methods, or procedures that expression implements. Thus, even for closed code, a
programmer remains free to study interfaces and functionality, free to interoperate or
replace that code with his own.
Situated as it is in an environment filled with proprietary software and poorly docu
mented interfaces, open source development frequently relies on reverse engineering
to fit in. Anyone who has used Samba to bridge Windows and non- Windows net
works has benefited from Andrew Tridgell s reverse engineering of the Windows pro
tocols for network services; anyone who exchanges files to read and write them in
OpenOffice.org rather than Microsoft Word appreciates the reverse-engineering-
derived ability to edit files in Microsoft Word format.
Courts have long held that reverse engineering, the practice of examining something
and taking it apart to figure out how it works, is a fair use, not an infringement of
copyright. Even when programs are released only as closed, binary code, program
mers can often discover a great deal about them by watching their operation or the
file formats they use, or by disassembly. Reimplementing those discoveries in new
code comports with copyright too. So, companies have been protected in taking
apart a video game console to build a console emulator (Sony v. Connectix) or disas
sembling a game to build a new one compatible with the console (Sega v. Accolade). If
someone builds a better mousetrap after examining those that exist, copyright law
will not stop her from deploying it.
At least that s the black-letter law. In practice, though, many copyright holders try to
extend copyright s limited monopoly to block reverse engineering, through a combi
nation of copyright, contract, and anticircumvention. For example, Blizzard, maker
of the popular Starcraft and Warcraft video games, claims that all players have
"agreed," through click-wrap licenses they encounter before the programs run, to a
contract that prohibits reverse engineering the Blizzard games. This contract plus
copyright, Blizzard asserts, prevents anyone from interoperating without permission.
The bnetd project began when a group of programmers became frustrated by the
poor performance of Blizzard s battle.net server for multiuser play of the games they
had bought. Instead of putting up with the frequent downtime and rampant cheat
ing on Blizzard s server, they started work on their own open source game server. By
watching the communications between game and server, the bnetd programmers
were able to reverse engineer their own compatible server, which they set up to give
owners of Blizzard games an alternate place to meet, and made the source available
for others to join the effort. The public got another option for playing Starcraft, and
another reason to buy Blizzard games.
Blizzard rewarded the bnetd team s creativity with a lawsuit claiming, among other
things, copyright infringement and breach of the click-wrap contract. The team had
152 * C Why Open Source Needs Copyright Politics
not seen any of Blizzard s source code, much less copied it, as they reimplemented
uncopyrightable functionality, but that didn t stop Blizzard from pulling out the
copyright sword. Copyright s lack of protection for functionality is deliberate and
sound innovation policy the public benefits from being able to choose among com
peting implementations of functionality, be they game servers or network services
yet Blizzard follows in the steps of many trying to get around copyright s limits with
contract claims.
Blizzard was trying to limit the code others could produce, to extend the copyright
protection on its own code. But many of those pulling out copyright s swords aren t
trying to protect code, but other copyrighted content touched by or that they re
afraid will be touched by code. These efforts, assertions of secondary liability, anti-
circumvention regimes, and attempts to impose technology mandates, all limit open
source developers ability to produce new code, to learn from old code, and to com
pete in the market with proprietary code.
Secondary Liability
Copyright law has not been strictly limited to the direct infringers, but may be
extended to those who "contribute" to the infringement in an ongoing relationship
with the infringer, or with special-purpose equipment suited only for infringement.
Thus, the proprietor of a hall, who looks the other way while paying guests listen to
unlicensed music, can be held vicariously liable for the infringing public perfor
mance, and the seller of tapes of a length precisely timed for copying particular copy
righted albums could be held contributorily liable for the subsequent infringing use.
Extended too far, however, secondary liability chokes off innovation.
Twenty years ago, the Supreme Court rejected Universal and Disney s "unprece
dented attempt to impose copyright liability upon the distributors of copying equip
ment" with the ruling that manufacturers of devices "capable of substantial non-
infringing use" could not be held secondarily liable. The MGM v. Grokstcr lawsuit, an
attack by all the major record labels and movie studios against Grokster and Stream-
cast, maker of the Morpheus filesharing software, is nothing short of an all-out
assault on the Sony standard.
The studios argue that Grokster and Streamcast should be liable because many users
of the peer-to-peer software infringe copyrights notwithstanding that many others
transfer public domain works from Project Gutenberg or the Internet Archive; freely
licensed works including open source software and Creative Commons-licensed
media; or government works. They argue that the producers of software should be
held liable for its "predominant" or "principal" use. Their standard is unworkable
both to an entrepreneur financing an untested product and to an open source devel
oper releasing software, any of whose users could adapt it to an unintended, infring
ing purpose.
Secondary Liability *C 153
Under the Betamax standard, makers of multiuse devices such as the VCR could thus
offer them to the public without fearing that they might be held liable if customers
misused them to infringe copyrights. With this assurance, hardware makers built
components with open interfaces, including CD and DVD burners and massive hard
drives, without fearing that someone might put the Plextor on the copyright hook by
using that CD burner for large-scale copyright infringement. They built copying
devices to transfer content. Software makers, too, have safely offered highly config
urable and open source software with relative confidence that their users configura
tions won t land them in hot water. The studios proposed redefinition threatens that
freedom to innovate.
Grokster is thus much bigger than peer-to-peer. An expansion of copyright liability,
with a "predominant use" test, would make it safer to produce limited-purpose, non-
user-modifiable devices and software than open hardware and open source software,
regardless of the intent of the developer.
If secondary liability for those who "contribute" to infringement in some ill-defined
way weren t enough, the entertainment industry is likely to return to Congress with
pleas of renewed urgency to pass the INDUCE Act, which stalled last term. That pro
posed bill would add yet another level of indirect liability: "inducing" infringement of
copyright would extend beyond those who made the tools, to those who explained
how to make them work. Watch out that your documentation isn t too thorough!
Anticircumvention
The next stage of copyright expansion beyond direct infringement is the anticircum-
vention and antitools provisions of the Digital Millenium Copyright Act (DMCA). In
the real world, these provisions do little to stop hard-core piracy, but they present a
serious barrier to open source compatibility.
Section 1201 of the DMCA prohibits "circumvention" of technological protection
measures controlling access to copyrighted works, and it bans manufacture, distribu
tion, and trafficking in devices, products, components, or services that are promoted
for, primarily useful for, or designed for circumvention of technological protection
measures. Now, a copyright holder who employs a technological lock, such as sim
ple encryption of content, gains the ability to control who and what programs or
devices can unlock it, as part of the new right to control "access" to a protected work.
This is an important functional change from the world of printed books or even CDs,
where anyone who purchased or borrowed the physical item had the right to use it
as she chose read the last chapter first or play the CD in the car or the computer.
Someone who wants to develop a new shuffle mode for CD playback, or a new rip
per with better compression for transfer to a portable music player, can do so with
out seeking permission from the recording companies. It s the misuse of those
154 * x Why Open Source Needs Copyright Politics
tools say, to copy CDs and sell the copies without authorization, that can be pur
sued as an infringement of traditional copyright.
Under the new anticircumvention regime, however, those who control copyrights
can take their control much further. Thus, copyright holders say, and courts have
agreed, anyone who develops a decoder for an encrypted format without a license is
producing circumvention tools in violation of the DMCA. So, groups of copyright
holders, who couldn t individually control markets, join together in licensing cartels
backed by the magic of the DMCA, by which they control not only copyrights but
also the surrounding player technologies.
And so it is with digital video discs. Movie studios and consumer electronics and
technology companies developed the content scrambling system, a.k.a. CSS, applied
it to DVDs, and declared it to be a technological protection measure. By forming the
DVD Copy Control Association to license the CSS specification as a trade secret on
restrictive terms, they sealed themselves a nice cartel, simultaneously protecting
themselves against disruptive innovation in video players from outside of the estab
lishment and walling off their copyrighted works against fair use copying.
The CSS encryption was trivially easy to break, once Jon Johansen and some Ger
man programmers set their minds to it. But that s beside the point, since the law pro
tects even weak technological protection measures with the full panoply of anticir
cumvention and antidevice prohibitions. Even weak measures set up the law s sharp
division between licensed access and unlicensed circumvention. Thus, with DeCSS
and its successor code, anyone can play or rip a DVD on any platform, but with
DMCA, no one can lawfully do so in the United States, or even develop code for
DVD playback, without a license from the DVD-CCA.
Kaleidescape is a small company with a rich clientele owners of hundreds of DVDs
willing to pay nearly $30,000 for a DVD jukebox to organize and store them all.
Kaleidescape built this machine a computer filled with massive hard drives onto
which customers could rip their DVD movie collections. For its efforts to help the
movie industry s best customers get more out of their purchases, Kaleidescape earned
itself a lawsuit from the DVD-CCA, claiming Kaleidescape had breached its contract
licensing the not-so-secret DVD trade secrets.
Kaleidescape s system, which allows the creation of persistent digital copies of the
content of DVDs and allows copying of the CSS copy protection data, is not designed
in a manner and does not include features clearly designed to effectively frustrate
efforts to defeat the copy protection functions.... For these reasons, Kaleidescape has
breached the CSS license.
Without that license, even if similar information could be derived from reverse engi
neering and publicly available information, using it to enable DVD "access" and play
back would be labeled circumvention.
Anticircumvention X 155
As the movie studios have done with DVDs, record labels and software companies
have done with multiple incompatible formats for streaming and downloadable
music: Windows Media, Janus, Apple s FairPlay. Many of these have succumbed to
reverse engineering of varying degrees of sophistication, from "burn it to CD and
rerip," to "run it through a simulated sound-card driver," through cryptanalysis
(much of it from Jon Johansen, again).
Yet, like CSS, none of the music protection measures is licensed on terms that per
mit open source development, nor could they be. Open source is incompatible with
both their stated aim, to prevent "piracy" of content, and the unstated underlying
goal of technology control. Since the essence of open source is user modification,
users could easily modify in or out any particular features and the first to go would
likely be the restrictions of digital rights management (DRM) and barriers to interop
erability. Even if open source version 1.0 incorporated all the restrictions of propri
etary clients, numerous versions 1.0.1 would likely disable them. Thus, anticircum-
vention regimes lock open source out of mainstream development of entire classes of
applications to interact with these copyright cartels media.
Of course, it s not just open source developers who need reverse engineering. Con
sider RealNetworks attempt to sell music that would play on the popular iPod. Real
could have transcoded downloads into standard MP3, which play on the iPod, but
Real (or its record-label-relations department) wanted to include DRM on the files.
So, it reverse engineered Apple s FairPlay format, in a move Real called Harmony, to
encode Real files for the iPod. Apple fought back with legal and technical threats.
Along with intimations that it might use the DMCA, Apple issued a statement that
said, "We strongly caution Real and their customers that when we update our iPod
software from time to time it is highly likely that Real s Harmony technology will
cease to work with current and future iPods." Real wasn t threatening to infringe
copyrights, but to give customers a way to interchange their iPods for other devices.
Once again, DRM is market protection, not copy protection.
The Threat to Research
Again in the DMCA, copyright bleeds beyond entertainment media and content.
Here, it also chills research into encryption that may be used to secure copyrighted
works, regardless of whether that research touches entertainment content directly.
When the Secure Digital Music Initiative (SDMI) invited programmers to "attack"
security technologies they were promoting to control digital music, Princeton com
puter science professor Ed Felten and his team stepped up to the challenge. They
broke the security and prepared a scientific paper analyzing the weaknesses of digi
tal audio watermarking. By scrutinizing these implementations, they could help the
public, and particularly those considering watermarks to protect their own materi
als, to evaluate the security of watermark technologies.
156 * C Why Open Source Needs Copyright Politics
But when the Felten paper was accepted for presentation at a computer security con
ference, its authors were threatened with a lawsuit from the Recording Industry Asso
ciation of America (RIAA) and SDMI s technology providers. RIAA and the technol
ogy companies claimed that even the scientific analysis of flaws in security
technology "would subject [the] research team to enforcement actions under the
DMCA and possibly other federal laws." The RIAA suggested that the paper and con
ference presentation fell under the DMCA s antidevice prohibition, which bans offer
ing to the public "any technology, product, service, device, component, or part
thereof," designed or marketed for circumvention or having only limited commer
cially significant other purposes. Facing legal pressure on conference organizers and
researchers, the team withdrew the paper.
While Professor Felten and his team ultimately published a version of the paper,
"Reading Between the Lines: Lessons from the SDMI Challenge," they were forced to
strip out technical detail. With the vague anticircumvention threat hanging, the
authors felt they had to omit code samples that could be construed as aiding circum
vention even though that code would have helped other researchers and develop
ers to understand the watermarks weaknesses better and to learn from SDMI s errors
in building their own security systems.
The work of the Felten team never infringed copyright. The researchers did not copy
a single piece of music without authorization, nor even produce tools that enabled
others to do so directly. And yet, they were caught up by the DMCA s vagaries
because their paper intended to educate other researchers and developers of secu
rity systems might also have provided "part" of a tool for circumventing a copy
right control. Will the same hurdles rise before someone who builds a tool to strip
accidental copy protection from fonts he himself has created; security researchers
who find vulnerabilities in network software they analyze; someone describing hard
ware modifications to make the Xbox a more general-purpose device? So far, the
answer has been "yes" for Tom Murphy, SNOsoft, and Bunnie Hwang.
For those who are attracted to open source development because of its opportunities
to learn from and share with others, this antiresearch aspect of the DMCA should be
particularly troubling: research is being chilled precisely because it teaches too much,
because its teaching might be misused. Of course, closing systems doesn t stop them
from having security flaws, or even prevent those flaws from being discovered, and it
does block some of the most effective information sharing around better security.
Both the teaching that open source developers depend on to improve their programs
and the teaching of open source code itself are at risk.
Further, the DMCA has been used in attempts to block competitive interoperability
of devices including printer toner cartridges and remote control garage door open
ers, as manufacturers add little scraps of code to devices and hope to leverage its
The Threat to Research *> 157
"protection" into market control. Though those arguments have been rejected so far,
it s unlikely we ve seen the last of them.
Technology Mandates
The final layer of copyright s expansion, so far, is to technology mandates, where an
entire technology is redesigned by government fiat in the name of copyright protec
tion. Senator Ernest "Fritz" Rollings proposed one of these in 2002 that would have
required every "digital media device," including the personal computer, to be rede
signed to protect copyrighted content. While the "Fritz chip" never came to be, a
smaller version has been foisted upon us in the form of the Broadcast Flag, an FCC
rule set to take effect July 1, 2005.
With the government eager to get broadcasters off the valuable analog spectrum and
onto digital transmissions, movies studios threatened that they wouldn t allow their
content to be broadcast digitally in the clear, and warned that there would be no transi
tion without their "high-value" content. The FCC didn t want to abandon the notion of
unencrypted over-the-air television broadcasts, but it did want to give the studios their
"protection," so it put the restrictions into the hardware. At the studios recommenda
tion, the FCC adopted a rule that adds a "flag" to these unencrypted broadcasts and
then requires every receiver to watch for the flag and output flagged content only to
"compliant" devices or in low resolution. Only devices that can implement DRM in a
manner "robust against user modification"