Some Lessons from Successes and Failures of Electronic Trading
Download
Report
Transcript Some Lessons from Successes and Failures of Electronic Trading
NBA 600: Session 17
Free and Open Source Software
25 March 2003
Daniel Huttenlocher
Today’s Class
Announcements
– Short paper #4 on digital goods
– Return group case projects Thursday
Open source and free software
–
–
–
–
Some terminology and history
Overview of systems software architecture
Broad use of open source software
Differences between open and proprietary or
closed source development
– Differences within open source projects
2
Terminology: Free Software
Free software (FS) is a term introduced by
Richard Stallman
– Free as in freedom or liberty not as in no cost
– Formed Free Software Foundation (FSF) in 1985
Protect rights to do following with software
–
–
–
–
Run
Study
Redistribute
Improve
Through FSF’s general public license (GPL)
– Often referred to as GNU public license
3
What is GPL?
GPL is a license that limits the right to use
a piece of software
– The code is copyrighted and then the rights
are governed by that license
• As provided in copyright law, holder can control
how copies are made
Permits copies and derivative works to
made and distributed freely provided
– The GPL governs all such copies and works
– The source is always available at cost of
distribution
– Other terms intended to preserve free nature
4
Effect of GPL
GPL is often called a “viral” license
– Applies to all copies and derivative works
• Can only include GPL’ed code in a product if the
product is governed by GPL
– A limited form of GPL applies to code libraries
• A library is code that performs some basic
function that might be employed in many
different software products
E.g., ability to send data over the Internet
• LGPL applies only to the library and not products
using that library
GPL and related licenses are also referred
to as copyleft
5
Terminology: Open Source
Open source software (OSS) is a term
championed by Eric Raymond
– Open Source Initiative (OSI) formed in 1998
Similar goals to FSF, to protect
–
–
–
–
Free redistribution
Distribution of source code
Creation of derivative works
Integrity of reputation
Through many different approved licenses
– Specific licenses for large open source projects
– Includes GPL
6
FS “vs” OSS
For all practical purposes FS and OSS are
used interchangeably
– Although proponents of each may argue
passionately about fine points
• E.g., Stallman argues freedom more important
than openness of the source code
OSS incorporates many OSI-approved
licenses which are consistent with its goals
– Thus a more general term
FS and OSS are both reactions against
commercial software
– With its generally restrictive licensing terms
7
Shareware/Freeware
Most shareware or freeware available on
the net is not OSS/FS
– Only the binary (executable) code is available
– Continued usage of the software is supposed
to be paid for
– The author(s) retain standard proprietary
rights over derivative works
• Same as any software company
This does not make shareware/freeware
“bad” it is just very much like any other
commercial software
8
Overview of Systems Software
Understanding FS/OSS movement requires
some knowledge of software
– Most systems have evolved similar architectures
• Separate software components that together
provide functions users see
• Sometimes boundaries visible to users
E.g., Windows operating system separate from
Office tools
• Often component boundaries not visible
Difference between operating system kernel and
support such as device drivers
– Component boundaries not fixed
• E.g., Web browser separate or not
9
Systems Software Schematic
Applications
(E.g., Word Processor)
Servers
(E.g., Web Server)
System Libraries or API’s
(Common Functions
E.g., Rendering)
Operating System Kernel
(Resource Allocation)
Device Drivers
(Control External Input/Output)
10
Some History of FS/OSS: BSD
Berkeley Unix – complete system
– Berkeley Software Distribution (BSD) starting in
the late 1970’s
– Distributed in source form
– Research community – universities and DARPA
– License evolved over time; commercial at times
• Current BSD license is OSI approved
BSD included other widely-used programs
– E.g., Sendmail remains the main program for
delivering email on the Internet
• Governed by BSD license
11
FS/OSS History: GNU and FSF
GNU project – “GNU is not Unix”
– Goal of completely new Unix-like system,
started in 1984 by Stallman
• Reaction against commercial control of other Unix
versions (ATT, BSD)
– Largely developed applications and API’s
• Text editor, C/C++ compiler, etc.
• Widely used by Unix software developers but
short of goal
Free Software Foundation (FSF)
– Outgrowth of GNU project in 1985
• Developed and promoted GPL
12
FS/OSS History: Linux and Apache
Early 1990’s Linus Torvalds created the
Linux kernel
– Distributed widely under the GPL
– A truly independent implementation of Unixlike system as in GNU project goals
• Together with GNU tools a complete system for
software developers and other “experts”
Mid 1990’s Brian Behlendorf led creation
of Apache Web server
– Distributed under Apache software license
• Protects Apache name
• OSI approved
13
What is Linux?
Linux distributions comprise a fully usable
system
– Includes not only the Linux kernel but many
other components
– GNU tools, including text editor, compiler, etc.
– X Windows system
• Desktop environment such as GNOME
The Linux kernel is about 3% of the
source code in a Linux distribution
– Critical resource allocation functions
– More accurate term would be GNU/Linux
14
FS/OSS “vs” Proprietary Software
Some proponents of the FS/OSS
movement argue proprietary software bad
– On moral or other grounds
Some large software companies have tried
to discredit FS/OSS
– E.g., Microsoft in late 1990’s, though now
appear to take seriously as valid competitor
FS/OSS software products are widely used
– In mission critical commercial settings
FS/OSS presents very different models for
software development and distribution
15
Apache Dominant Web Server
Monthly survey by Netcraft
– Nearly 36M web servers polled
– Apache even higher among “active” servers
16
Linux is #2 Server OS
Netcraft web server survey in 2001
– About 50% Windows, 30% Linux
• Solaris Unix about 7%
• BSD Unix about 6%
– Includes sites such as Google and CNN
Surveys of OS sales put Linux around
25%
– For server class machines
– For desktops negligible
– But hard to compare Windows and Linux sales
• Windows often pre-installed
• One Linux distribution often copied
17
Internet Runs on OSS/FS
Sendmail is the main mail delivery server
– Distributed under BSD license (OSI approved)
– A 2001 survey found 42% of Internet email
servers running sendmail
• Microsoft exchange next with 18%
Bind is the main Internet domain name
server
– Resolves names such as www.cornell.edu to IP
addresses
– A survey in 2000 found 95% of domain name
servers running bind
See http://www.dwheeler.com/oss_fs_why.html
18
OSS/FS Projects
FS/OSS licensing is just one aspect
Reliable, widely used software requires
more than just a licensing scheme
– Plenty of FS/OSS projects have failed or have
had limited impact
• Including large ones such as Mozilla
Internet had big impact on how FS/OSS
teams work
– Enabling qualitatively larger more dynamic
groups and more feedback from users
• Torvalds led way with Linux kernel development
19
Cathedral and the Bazaar
Eric Raymond’s book on Open Source
– Involved with GNU project since mid 1980’s
OSS/FS had been successful with smaller
or less complex software
– Tools such as those produced by GNU
– C++ compiler while large was very well
understood technology
– Although emacs text editor was large and
complex Stallman had written initial version
Complex software seemed to require more
– Crafting a “Cathedral” using commercial
development or individual super-star(s)
20
Linux Kernel Project
Torvalds’ development of the Linux kernel
involved many people
– Made active use of the Internet
• To coordinate contributions of many developers
• To interact with large number of users
• Often these were the same people
– Torvalds’ “principles”
• Release early, release often
• Delegate anything you can
• Solicit input from anyone
– Resembled a cacophonous bazaar
• Yet resulted in stable, quality complex software
21
Observations About Open Source
Based on the Linux project and his own
experiences Raymond concluded
– Every good work of (open source) software
starts by scratching a developer's personal itch
– Plan to throw one away; you will, anyhow.
(Fred Brooks, The Mythical Man-Month)
– When you lose interest in a program, your last
duty is handing it off to a competent successor
– Release early, release often, listen to users
– Treating users as co-developers is your leasthassle route to rapid code improvement and
effective debugging
22
Applicability of Open Source
The developers need to find the problem
being solved exciting and personally useful
– Tends to work better for
• Systems rather than applications software
• Widely used software (impact on the world)
– Less appropriate to applications, particularly
esoteric non-systems ones
Suggests potential of competition from
OSS for vendors of systems software
– Web servers already true – Apache
– OS becoming true – Linux
– Databases? – MySQL not major threat yet
23
Involve Many People
Get as many users as possible, early on
– This works for proprietary development also,
but requires mindset change from “cathedral”
Get as many developers as possible in
your user base
– They will be curious about things that don’t
work for them and suggest fixes or extensions
• Requires source to be readily available
Recognize that code usually needs to be
rewritten until it is easily understood
– Like other creative works, revision and
sometimes outright replacement
24
Sustainability Crucial
Many successful open source projects
have “key personalities”
– Stallman for GNU, Torvalds for Linux,
Behlendorf for Apache
If OSS is to be viable alternative to
commercial software need longevity
– Users need to know that they don’t depend on
one person for continued success
– Different models
• Apache Software Foundation
• Commercial commitment to Linux
25