nba 600: session 17 free and open source software 25 march 2003 daniel huttenlocher

25
NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

Upload: dorcas-johns

Post on 13-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

NBA 600: Session 17Free and Open Source Software

25 March 2003

Daniel Huttenlocher

Page 2: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

2

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

Page 3: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

3

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

Page 4: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

4

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

Page 5: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

5

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

Page 6: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

6

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

Page 7: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

7

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

Page 8: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

8

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

Page 9: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

9

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

Page 10: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

10

Systems Software Schematic

Operating System Kernel(Resource Allocation)

Device Drivers(Control External Input/Output)

System Libraries or API’s(Common Functions

E.g., Rendering)

Applications(E.g., Word Processor)

Servers(E.g., Web Server)

Page 11: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

11

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

Page 12: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

12

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

Page 13: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

13

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 Unix-

like 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

Page 14: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

14

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

Page 15: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

15

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

Page 16: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

16

Apache Dominant Web Server

Monthly survey by Netcraft– Nearly 36M web servers polled– Apache even higher among “active” servers

Page 17: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

17

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

Page 18: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

18

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 bindSee http://www.dwheeler.com/oss_fs_why.html

Page 19: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

19

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

Page 20: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

20

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)

Page 21: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

21

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

Page 22: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

22

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 least-

hassle route to rapid code improvement and effective debugging

Page 23: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

23

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

Page 24: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

24

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

Page 25: NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher

25

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