summaryrefslogtreecommitdiffstats
path: root/researched-outline.txt
blob: ce6c6704b1f4536f2356b03332646b8e16f407e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
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