CSE 350 Software Design and Engineering University of

  • Slides: 12
Download presentation
CSE 350 Software Design and Engineering University of Pennsylvania http: //www. cis. upenn. edu/~jms

CSE 350 Software Design and Engineering University of Pennsylvania http: //www. cis. upenn. edu/~jms Office: 254 Moore GRW, Phone: 8 -9509 March 5 th, 2002 11/19/98 Columbia University

Administrative l Homework #2 due today l How did people do with it? l

Administrative l Homework #2 due today l How did people do with it? l Homework #3 assigned Thursday (I am still testing a few details, so not today) l Have people been doing the readings? l Topic today: Free Software Foundation

History l RMS - hacker at MIT AI Lab l Really liked atmosphere l

History l RMS - hacker at MIT AI Lab l Really liked atmosphere l Contributed software such as “emacs” – editor macros (for early editor, “teco”) l Several events: Symbolics, AT&T “commercialization of UNIX” l Result-> GNU Manifesto

What is the GNU Manifesto? l Mid-80 s. Circulated on pre-Web USENET and also

What is the GNU Manifesto? l Mid-80 s. Circulated on pre-Web USENET and also available via Internet FTP. l Principled argument for software community versus commercial software l A “call to arms” for those similarly inclined l Crystallize Love vs. Money distinction…

Structure l Foundation (FSF) – a charity to which people donate machines, money, software,

Structure l Foundation (FSF) – a charity to which people donate machines, money, software, time l Some people work for FSF, depending of course on donation level l $$ also from sales of distribution, manuals, etc. l Incentive for machines: early ports

Software engineering l Distributed. Work over network l Some programmers at FSF l Others:

Software engineering l Distributed. Work over network l Some programmers at FSF l Others: meet as needed. l Take advantage of UNIX modularity: except for kernel, largely tools / componentware l RMS projectmeister; periodic releases (I wonder if this is an artifact of physical distributions? )

Intellectual property l A major distinction of FSF software is the so -called “copyleft”

Intellectual property l A major distinction of FSF software is the so -called “copyleft” – the GNU public license (GPL) l Everybody is permitted to redistribute or modify software, but l No distributor allowed to restrict its redistribution l Use GPLed software, must GPL it too. l Very interesting consequences…

Effects of GPL l Using “emacs” doesn’t GPL result l Using “emacs” code base

Effects of GPL l Using “emacs” doesn’t GPL result l Using “emacs” code base does l Since early GPLed software was system software (emacs, gcc, gdb), no big deal l However, many companies which create software for $$ do not want GPLed software used at it “contaminates” their software – restricting their right to sell it l Intellectual property value (e. g. , of startup)?

Successes of project l GNU emacs (I’ve used for ~20 years…) l gcc –

Successes of project l GNU emacs (I’ve used for ~20 years…) l gcc – manufacturers support it – “good enough” l Gdb, flex, bison l Text tools: groff, gpic, geqn, grefer l Community: these tools continue evolving l Linux can be thought of as emerging from project GNU (Linux thinks not, tho…. . ! )

Failures of project l Never got a kernel working (this was called the “HURD”).

Failures of project l Never got a kernel working (this was called the “HURD”). Linux can be viewed as filling this hole, but not engineered by RMS/FSF l I view GPL as a failure. In its own way, it enforces someone’s perspective over how you use the software. BSD license makes no moralistic judgements.

Lessons for S. E. l Distributed programmers can be successful l Voluntary projects can

Lessons for S. E. l Distributed programmers can be successful l Voluntary projects can produce software at least as good as paid programmers l As Raymond notes in C&B, debugging is distributed – “many eyes” hypothesis l Volunteers often extremely dedicated

Summary l Major advance in understanding how to build software: UNIX + hackers +

Summary l Major advance in understanding how to build software: UNIX + hackers + net l Ongoing – it’s not over l Weird political overtones l Volunteers only work on what they’re iinterested in; tend to be “systems” things rather than applications – hence “ease of use” whinge