- software development in the old days: - rms ported Harvard PDP-11 cross-assembler to MIT ITS system, added macros etc. - another person developed cross-assembler for another system - later they merged the two systems with conditionals for different computers - then Xerox gave MIT laser printer - old printer system would send message to all users in queue saying "go fix printer" when necessary - Xerox printer software proprietary - no source code -> unable to fix - guy at Carnegie-Mellon had copy of source code but said "No, I promised not to give you a copy" - he "betrayed the whole world" by consenting to a non-disclosure agreement - agreed not share with "blank", where blank is filled in later by circumstance - rms: never knowingly signed non-disclosure agreement about any general useful technical info (agreeing not to reveal private info about you shared about your girlfriend OK) - Digital discontinued PDP-10 - all MIT software written in PDP assembler language - would need to sign non-disclosure agreement to continue programming in field, would "spend my career building walls to divide people" - "maybe I could be a waiter...maybe not a waiter at a really good restaurant - no danger of starving" - but would waste skills as OS developer - resolved to develop complete free OS - no dependence on a particular computer architecture - needed to be portable - UNIX (rms never used it, but read about it, decided to emulate) - tradition of recursive acronym for replacement software, e.g. "tint" = tint is not tico, "swi" = swi was ina initially - "gnu" pronounced by native Africans with a click sound (British made it a "g" meaning "we're not saying this right") - "Gnu" as in "Gnu project" pronounced with hard "g" - had to quit job at MIT to avoid possibility of software being proprietary - prof asked rms "do you still want to quit?" "Yes" "do you want to keep your key?" - started using UNIX when started to write replacement OS - first thought to release finished system - GNU Emacs (rms' second implementation of Emacs) finished in 1985 - sold copies for $150 US (8-10 orders/month) - virtues of living cheaply - "not a slave of a desperate need for money" with expensive habits like "stamps, art, and children" - free as in price vs. free as in freedom - free software definition (see GNU website) - modifying executable extremely hard, e.g. using four digits instead of two to represent year - freedom 0 = freedom to execute program - freedom 1, high morale vs. low morale situations - freedom 2 (most important) = freedom to help your neighbour - can give knowledge and info to somebody else without losing it yourself - basic act of friendship - psychosocial harm - goodwill is most important resource of society - polluting that resource when we tell someone "you cannot help your neighbour" - alternatives to goodwill: - central planning - generally considered failure - worship invisible hand - failure for most, prosperity limited to wealthy - need policies encouraging cooperation and goodwill - Russian ways of stopping prohibited copying now being adopted by US - guards on copying equipment/watchdog software - harsh penalties/felony since five yrs ago - squealing on co-workers and friends - collective responsibility/ISP's - propaganda starting in childhood/teacher: "say yes to licensing" - "sharing means you're a pirate" - "nothing but a police state can possibly stamp out freedom 2" - freedom 3 = publish improved version - "Why would anybody work on free software?" - GNU Emacs - people sending in suggestions, bug fixes so fast rms couldn't keep up (MS doesn't have that problem) - open source movement concentrates on freedom 3, assumes all businesses greedy - OSI leaves out most important things GNU project has to say - rivals of GNU in domain of philosophical debate, allies in software development - concept of free software only for certain users - e.g. X-window system released as free software with lax license - computer manufacturers changed code to run X on their hardware, released code under same proprietary license as rest of system - stripped off freedom because they could; a habit - is X free? - depends on where you make measurement - copyleft = copyright flipped over - GPL = implementation of copyleft - use money raised by FSF - "pay me like throwing money away because we can get Stallman to work for nothing" - pay me if you like software I developed or pay FSF - early 90's rms chose powerful architecture for GNU kernel, hard to debug - Linus chose monolithic architecture - everything they (Linux developers) needed was already available to make system w/ Linux kernel - called system Linux, actually filled gap in GNU system with Linux kernel - users think that development started in 1991 with Linus - challenges to freedom - a lot of work to ensure free OS five years from now - full documentation, applications - effort required to hold onto freedom, need to value freedom - if people know system comes out of GNU project, might think about it, decide they agree, defend community when in danger - Needs: 1) hardware specifications kept secret - don't tell you how to use it, need proprietary software to use hardware product - need to write free software to run hardware a) refuse to buy hardware not supported by free software (need to make people aware) b) reverse engineer non-free drivers - need to recruit people to do this - depends on how strongly we value freedom 2) non-free libraries pitfall - Qt - non-free, but free software built on top - GNOME replacement for KDE - harmony - free replacement for Qt, to extricate free software built on top - easy to stay out of trap if you recognize it as an issue 3) patents - patented features/algorithms - Linux/open source movement - no value on freedom, develop free software because of convenience - some companies distribute Linux with non-free software - Red Hat means source Linux (all free) - Linux magazine ads for proprietary software packages - giving up freedom you've just won by choosing Linux - value-added packages = "freedom-subtracted packages" - calling OS GNU-slash-Linux brings peoples' attention to freedom --End of Lecture-- Questions: Q: Any circumstance legit to write/sell proprietary software? A: No. But 90% software industry developing custom software - only becomes proprietary when published. People don't load sloughware into microwave. Q: Freedom 2 as applied to school (can't show code to fellow students) A: Different situation - only applies before assignment graded. Q: Same freedom 2 issue applies to pharmaceuticals, cars, planes? A: Only applies to things you can modify, copy - no such thing as car copier. Computer games entertaining by running, not by looking at source code - well, some might be entertained. Different moral issues for pharmaceuticals, etc. than with software - must deal with separately. Avoid term "intellectual property" - presupposes answer to question "should we call it property" Q: Free Bios? A: Someone working on it..? Q: How will programmers get paid if all software free? A: Getting paid should be secondary question to more important issue - will people have freedom? Then look for ways to get paid. Do we desperately need to pay software developers, i.e. will software not be produced. GNU project disproves this by developing lots of free software on order of the amount of software needed by users. Programmers could develop custom software by day, develop general purpose free software for fun. Or pay people for developing free software. Or sell support, or copies of free software. Q: Examples of software patents blocking free software movement? A: Public key encryption blocked by patents. PGP originally released as free software, made non-free by patent holders. NCR suing Netscape over Mozilla. GIF patent (UNISYS). "Get rid of all GIFs"/ Q: Ethical to redistribute something you're not allowed to redistribute? A: Lesser of two evils is to share with friend! *Before submitting article to journal, include this: "Permission is granted for verbatim copying of this work" - journal cannot have sole rights - "war against journals" Q: What is difference between copying and stealing? A: Difference is clear. Stealing is taking something away. Copying CD OK, stealing not OK. -- break to sell GNU manuals and give away stickers, have GNU manuals signed by Stallman and answer more questions one-on-one - final Q & A for hardcore hackers who stuck around Q: Linking closed source objects into Linux A: "Linus made a big mistake when he allowed this to happen" Q: State of GNU Hurd A: They have a working version but haven't taken full advantage of architecture. No one currently working on it full-time. Q: Different Sun licenses any good? A: Trying to go around GPL - see what people will accept without adopting GPL. Q: 'Look and Feel' lawsuit A: Supreme court decision was 4-4 with 1 undecided. Industry seems to have lost interest. Copyrighting an interface bad idea Q: Some guy thanks rms for Emacs, says he used to spend a lot of time staring at an Emacs screen in the 80's A: Stallman says, "Does that mean you don't anymore? Emacs misses you. Emacs needs you!"