working title: History of Software Freedom: Free Software and Open Source hacker subculture - ~04:00 will discuss first, since: hacker values permeate and give context to the history of sw freedom few, if any, in the audience know what a hacker is Phil Agre, an MIT hacker, on the definition: The word hack doesn't really have 69 different meanings. In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. [Jargon-meaning] nonetheless, many have attempted to define hacking: RFC 1392: hacker A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. The term is often misused in a pejorative context, where "cracker" would be the correct term. See also: cracker. [RFC1392, 21] RMS, a renowned hacker I'll be discussing in detail shortly: It is hard to write a simple definition of something as varied as hacking, but I think what these activities have in common is playfulness, cleverness, and exploration. Thus, hacking means exploring the limits of what is possible, in a spirit of playful cleverness. Activities that display playful cleverness have "hack value". [RMS-hacking] Jargon file offers a good detailed explanation: 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users' Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating hack value. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in ‘a Unix hacker’. (Definitions 1 through 5 are correlated, and people who fit them congregate.) [Jargon-hacker] MIT Tech Model Railroad Club 1950s and 1960s members sought to learn how things worked members disliked authority information wants to be free vocabulary foo, frob, cruft, hack, etc. TODO: continue history, describe hacker ethic examples of hacks MIT campus police car on the Great Dome [IHTFP-CP-Car] nyan cat [IHTFP-Nyan-Cat] RFC 1149 A Standard for the Transmission of IP Datagrams on Avian Carriers CPIP (Carrier Pidgeon IP) Bergen Linux User's Group 2001-04-28: Bergen, Norway — 10.0.3.1 ping statistics — 9 packets transmitted, 4 packets received, 55% packet loss round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms [RFC1149] [Jargon-meaning] [BLUG-CPIP-WG] in the beginning, there was freedom - ~02:00 sharing software is as old as modern computing is just as sharing recipes is as old as cooking is DEC PDP-1 became the favorite machine of the budding hacker culture after its donation to MIT in 1962 [WP-PDP-1] DECUS Digital Equipment Computer Users Society users had to write software for PDP-1 founded in 1961 facilitated free exchange of info and sw between customers and DEC [CHM-DECUS] Spacewar! space shooter with realistic physics that showed power of PDP-1 written by Steve Russel in 1961-1962 a traditional hack goofy and random, with no use other than as a diversion MIT hackers freely shared game [Quinn, 316] [CHM-Spacewar!] [Williams-RMS, 211] TODO: something about sharing software like sugar [Williams-RMS, 5] or what I just added above -- I don't know Unix originally written in 1969 to run on PDP-7 by Ken Thompson, Dennis Ritchie, M. D. McIlroy, and J. F. Ossanna to be "a system around which a fellowship could form" AT&T was required to license non-telephone tech. to anyone who asked under a 1958 consent decree in settlement of an antitrust case AT&T licensed Unix with source code to univs, corps, U.S. gov't Lion's Commentary, 1976, documented Unix source code Unix hackers of the early 1970s enjoyed largely unrestricted access to Unix sys at univs and corps throughout the 1970s, univs worldwide contributed greatly to Unix dev [DMR-Hist] [ESR-TAOUP-2.1] [WP-Unix] proprietarization - ~02:00 IBM unbundling 1969 IBM stopped providing software in source form with hardware instead began selling binary copies of software at a high cost pioneered the "software industry" [WP-IBM] "Open Letter to Hobbyists" written by Bill Gates, General Partner, Micro-Soft published between January and May, 1976 in Homebrew Computer Club Newsletter, Computer Notes, et al accused hobbyists of stealing claimed that sharing software is unfair and prevents writing of good sw [WP-Open-Letter] [DB-Gates] copyright Commission on New Technological Uses of Copyrighted Works (CONTU) established in 1974 to study and make recommends on legislation Copyright Act of 1976 added 17 U.S.C. § 117 Computer Software Copyright Act of 1980 added defn of "computer program" to 17 U.S.C. § 101 explicitly made software copyrightable rewrote 17 U.S.C. § 117 "it is not an infringement for the owner of a copy of a computer program to make or to authorize the making of another copy or adaptation of that computer program provided: (1) that such a new copy or adaptation is created as an essential step in the utilization of the computer program in conjunction with a machine and that it is used in no other manner, or (2) that such new copy or adaptation is for archival purposes only and that all archival copies are destroyed in the event that continued possession of the computer program should cease to be rightful." EULAs contracts circumvent 17 U.S.C. § 117 by arguing that software in question is "licensed not sold" you don't own the CD of MS Windows you buy from a store legality is disputed take away rights: fair use, reverse engineering, disclosure of info. GNU the Trojan Horse printer printer in MIT AI lab jammed frequently RMS, a hacker in the lab, devised a clever workaround modified the driver sw on systems to check for jams and alert users users awaiting jobs congregated around printer usually at least one knew how to fix the jam [Williams-RMS, 3] Xerox Corporation donated a fast new prototype printer jammed frequently RMS thought to apply the same hack searched for the Xerox printer driver, found no source code [Williams-RMS, 2-4] CMU computer scientist RMS heard that a scientist at CMU had a copy of the source code eventually he visited CMU and found the scientist asked for a copy scientist said he'd agreed not to share it, signed an NDA RMS, stuned and angry, immediately and without a word walked out [Williams-RMS, 6-8] to add: 1982 - AI Lab admins bought a new PDP-10 used DEC's nonfree timesharing system instead of ITS GNU name why Unix like? OS is most basic software on a computer system without a free OS, can't even use a computer without prop sw parts of a Unix-like OS importance of software freedom car analogy common question: I'm not a computer programmer, so why should I care? imagine all car hoods were welded shut so no one could see the engine no one can study or modify their engines I'm not an auto mechanic, so why should I care? if car with a welded hood breaks down, only manufacturer could repair it hope manufacturer stays in business many around the world almost didn't in 2008-2009 monopolies in auto repair market if car without welded hood breaks down, anyone with skills can repair it auto repair is a free market many professional and amateur mechanics when your car breaks down, you can: fix it yourself, find a friend to fix it for you, or hire a mechanic to fix it for you when a free program breaks, anyone can fix it and they can share their fix with the world "code is law" developer decides what program can and cannot do without freedom to study and modify program, users are helpless restrictions include anti-features and limitations of freedom 0 trial versions program can deny access to certain features program can stop working after some period of time - "time bomb" screen shots in MS Windows Media Player copyright law allows screen shots in many situations program does not allow screen shots in any situations printing DRM-enabled PDF files in Adobe Reader program refuses to print certain files for you backdoors and tracking NSAKEY in MS Windows accidentally revealed by MSFT shows that NSA might have access to every Windows system Amazon.com Inc. deleted books from Kindle libraries including, ironically, "1984" by George Orwell multiple times, despite promises otherwise like bookstore breaking into house and taking books from shelf mobile phone location tracking files found in Apple iOS and Android tracks everywhere you go with the device is copied to desktop or laptop PC can therefore be accessed by anyone with access to the PC: family, friends, crackers, PIs, law enforcement the tracking in Android at least could be removed because much of Android is free software in fact, Replicant doesn't track its users reliability and security proprietary software can be audited only by its developers relies on a practice called "security through obscurity" hide the code, hide the holes thoroughly disproven by studies crackers find holes anyway users are helpless until developers fix the holes, if they ever do free software can be audited (and even fixed) by anyone users can protect themselves and help protect each other ex: HTTP Range header bug bug in HTTP, affected all Web servers solutions discussed on Apache list Debian maintainers (Apache users) added patch to package Debian released a complete fix 9 days before Apache did ex: implantable medical devices software is not reviewed by FDA; FDA trusts devs to report on safety software has bugs, most of which could easily be found many people have died due to such errors software is unsecure; IMDs with wireless radios can be cracked a person could kill an IMD user with a small, cheap device people are dying because companies refuse to publish source code ex: Air France Flight 447 2009-06-01 all 228 people on board were killed under investigation apparent cause: software responding poorly to conflicting measurements ex: Toyota brakes ex? Diebold voting machines "Proprietary software is an unsafe building material" [Moglen] commercial free software many believe that money can't be made in open source and free software that free means noncommercial logical fallacy, false exclusionary disjunct free software can be used commercially, and successful business models exist if a license allows only noncommercial dealing, it would be non-free [FSD] generalized the ways people make money with fs into 3 broad categories 1. development resembles pre-1970s economic models around software programmers paid for time spent on work not for copies of work (or rather contracts allowing use thereof) [Codebreakers] four examples: a. Linux over 70% of work done on Linux is done by paid programmers [Linux-Kernel-Development, 12-13] 6000? 7000? programmers work on Linux clarify? cite? at least 659 companies have supported Linux development [Linux-Kernel-Development, 10] compare to the Microsoft Windows NT kernel one company? plus contractors? 1,000 MSFT employees worked on Windows Vista as a whole estimate ~20 employees worked on NT kernel between 5.x and 6.x years? b. Qt flexible cross-platform application framework popular in desktop, server, and embedded environments [Qt] most developers employed by Qt Development Frameworks subsidiary of Nokia Corporation since 2008 [Qt-Development-Frameworks] free software, GNU LGPL 2.1 [Qt Licensing] now maintained as an independent project [citation needed] c. GNAT a compiler for the Ada programming lang, now part of GCC originally developed by NYU under $3-million contract awarded by USAF in 1992 under requirements of contract, (C) transferred to FSF sw released with terms of GNU GPL [GNAT] d. GNU FSF hired programmers to work on parts of GNU GNU Bash popular and user-friendly command shell now used in systems like GNU/Linux and Apple Mac OS X GLIBC ISO C library GNU tar archiving program [Freedom-and-Cooperation] all are fs, all are nowadays often distributed at no charge why do companies pay for development of sw for which few people pay? many companies sell support many companies sell hw with which fs is run servers, wireless network adapters, digital cameras, mobile phones, televisions, cars, commercial airplanes, etc. many companies see fs as a way to save time+money and not have to reinvent wheels probably part of AMD's motivation to support coreboot free boot firmware faster and more flexible than proprietary BIOSes 2. support proprietary software only (C) holder can understand and support it support is a monopoly found a bug in MS Windows? only recourse: pay $49 to send MS an e-mail or $59 to call MS free software everyone is allowed to understand and support it support is a free market competition in free software support companies and individuals must please clients clients are free to go elsewhere for support examples: RMS made custom changes to his programs made more money than he ever did before Cygnus Solutions founded 1989 maintained many parts of GNU development toolchain offered commercial support for GNU software very successful, had an 18-month waiting list merged with Red Hat, Inc. between 1999 and 2000 Red Hat sells support for GNU/Linux revenue expected to reach $1 billion Canonical, Ltd. founded in 2004 maintains and supports numerous free software projects including the Ubuntu GNU/Linux operating system Nokia Corporation used to provide official support for Qt framework but earlier this year, sold support business to Digia Plc. Digia one of 27 "Qt Partners": companies that work w/ Nokia to provide comm. support for Qt AdaCore company run by original developers of GNAT officially supporting GNAT since 1994 consultants supporting Debian GNU OSes 672 companies and 109 individuals in 64 countries thousands of companies and individuals support free software not a select handful of monopolists like MSFT and Adobe 3. distribution many people sell free software that is, they charge a fee for distribution even of other people's work software copyright licenses must allow this practice in order to be considered free and open-source often a cost in making and distributing copies of software e.g. cost of burning and shipping discs people may just want to earn some money for performing a moral act (sharing freedom) might contribute some of the profits back to the developers in the 1980s, RMS charged a fee for copies of Emacs he shipped on tape made about $1300/mo just distributing copies of one free program Jargon-meaning http://www.catb.org/jargon/html/meaning-of-hack.html RFC1392 http://www.rfc-editor.org/rfc/rfc1392.txt RMS-hacking http://www.stallman.org/articles/on-hacking.html Jargon-hacker http://www.catb.org/jargon/html/H/hacker.html RFC1149 http://tools.ietf.org/html/rfc1149 IHTFP-CP-Car http://hacks.mit.edu/Hacks/by_year/1994/cp_car/ IHTFP-No-Tresspassing http://hacks.mit.edu/Hacks/by_year/2004/no_tresspassing/ IHTFP-Firetruck http://hacks.mit.edu/Hacks/by_year/2006/firetruck/ IHTFP-Nyan-Cat http://hacks.mit.edu/Hacks/by_year/2011/nyan_cat/ BLUG-CPIP-WG http://www.blug.linux.no/rfc1149/ WP-PDP-1 http://en.wikipedia.org/wiki/PDP-1 CHM-DECUS http://pdp-1.computerhistory.org/pdp-1/index.php?f=theme&s=4&ss=7 Quinn Quinn, Michael J. _Ethics for the Information Age_. Fourth Edition. Addison-Wesley, 2011. 316. CHM-Spacewar! http://pdp-1.computerhistory.org/pdp-1/index.php?f=theme&s=4&ss=3 DMR-Hist http://cm.bell-labs.com/cm/cs/who/dmr/hist.html ESR-TAOUP-2.1 http://www.faqs.org/docs/artu/ch02s01.html WP-Unix http://en.wikipedia.org/wiki/Unix WP-IBM http://en.wikipedia.org/wiki/History_of_IBM #1969:_Antitrust.2C_the_Unbundling_of_software_and_services WP-Open-Letter http://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists DB-Gates http://www.digibarn.com/collections/newsletters/homebrew/V2_01/ homebrew_V2_01_p2.jpg Williams-RMS Moglen http://www.softwarefreedom.org/events/2010/sscl/moglen- software_in_everything-transcript.html http://www.gnu.org/gnu/about-gnu.html http://www.gnu.org/gnu/gnu-history.html http://www.gnu.org/gnu/thegnuproject.html http://www.gnu.org/gnu/initial-announcement.html http://www.gnu.org/gnu/manifesto.html