-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
397 lines (349 loc) · 24.7 KB
/
index.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>XCF</title>
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<link
rel="stylesheet"
href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<link rel="stylesheet" href="css/common.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body data-spy="scroll" data-target="#toc">
<div class="jumbotron text-center">
<h1 data-toc-skip>eXperimental Computing Facility</h1>
<h2 data-toc-skip>University of California at Berkeley</h2>
</div>
<div class="container">
<div class="row">
<div class="col-md-9">
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
</div>
<div class="col-md-10">
<h1>About</h1>
<p>XCF, the eXperimental Computing Facility at UC Berkeley, was a small undergraduate
student organization with members who shared a keen interest in a blend of
computer science and engineering.</p>
<p>Founded in 1986, XCF started its life as a way to allow a few hackers to
develop useful software and offer computing assistance on campus. Throughout
its life, XCF had special ties to CS and EECS departments, taking on
some of the software development they (and the campus) needed, and providing
assistance in those relatively early days of UNIX and Internet.</p>
<p>Internally, XCF membership was strongly tied to software development
projects, both for on-campus use and for the general public. XCFers
drove each other to become better computer scientists and software engineers
through work on these projects. Despite a relatively modest size of the
organization, many of the XCF hacks and projects had a significant impact on
the computing world as we know it today.</p>
<p>Below are some of the XCF stories and projects (WIP).</p>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">1986</h1>
</div>
<div class="col-md-10">
<h2>Formation</h2>
<p>For the benefit of the younger generation reading this, allow us to start by
painting the picture of computing world in the USA in mid-1980s.
Personal computers were making an entrance — you could pop by a
<a href="https://en.wikipedia.org/wiki/RadioShack">RadioShack</a> for a
<a href="https://en.wikipedia.org/wiki/Tandy_1000">Tandy 1000</a>;
<a href="https://en.wikipedia.org/wiki/80386">80386</a>s were just hitting the
streets, but to run a <a href="https://en.wikipedia.org/wiki/UNIX">UNIX</a>-like OS,
you would need a workstation (easily worth more than a new car, while slower than a
smartwatch). The Internet as we know it now did not exist:
<a href="https://en.wikipedia.org/wiki/MILNET">MILNET</a> had just broken off
from <a href="https://en.wikipedia.org/wiki/ARPANET">ARPANET</a>, and
<a href="https://en.wikipedia.org/wiki/NSFNET">NSFNET</a> was just coming
together. Home users, though, were limited to
<a href="https://en.wikipedia.org/wiki/Bulletin_board_system">BBSes</a> and the
emerging <a href="https://en.wikipedia.org/wiki/FidoNet">FidoNet</a>.
Needless to say, there was no
<a href="https://en.wikipedia.org/wiki/WWW">World Wide Web</a> yet, and
computer-related knowledge was not so easy to come by.</p>
<p>Meanwhile at UC Berkeley, the access to computing resources for the
undergraduates was becoming scarce, and the remaining option was about
to be shut down. This situation prompted a decury of hackers to propose a
student-run facility for developing software and offering assistance, and
thus the eXperimental Computing Facility was born with an office, a handful of
<a href="https://en.wikipedia.org/wiki/Sun_Microsystems">Sun</a> workstations, and
<a href="https://en.wikipedia.org/wiki/Phil_Lapsley">Phil Lapsley</a>
as the first XCF Director.</p>
<h2>NNTP</h2>
<p>One of the early XCFer's contributions to the world was
<a href="https://tools.ietf.org/html/rfc977">RFC977</a>, the specification for
<a href="https://en.wikipedia.org/wiki/Nntp">Network News Transfer Protocol</a> (NNTP),
which Phil Lapsley co-authored. NNTP remains the workhorse for
<a href="https://en.wikipedia.org/wiki/Usenet">Usenet</a> (Netnews) to this day.</p>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">1988</h1>
</div>
<div class="col-md-10">
<h2>Morris worm</h2>
<p>On the evening of November 2, 1988, a Cornell graduate student
<a href="https://en.wikipedia.org/wiki/Robert_Tappan_Morris">Robert Morris</a>
released <a href="https://en.wikipedia.org/wiki/Morris_worm">one of the first worms</a>
from a system at MIT. The Internet (at the time estimated at about 60,000 systems)
had become massively infected in a matter of hours, with compromised systems becoming
entirely overwhelmed and unusable due to a flaw in the worm's design.</p>
<div class="col-md-7 pull-right">
<a href="archives/scans/forefront0.jpg"><img src="archives/scans/forefront0-crop.jpg" class="img-responsive img-thumbnail center-block" /></a>
</div>
<p><a href="https://en.wikipedia.org/wiki/Phil_Lapsley">Phil Lapsley</a> and Kurt Pires
(the second XCF Director) had already developed mechanisms to detect break-ins, so
as they returned to the XCF office after dinner around 7PM PST, it did not take long
for the attack to be discovered.
<a href="https://en.wikipedia.org/wiki/Computer_Systems_Research_Group">CSRG</a>
and XCF continued to decompile the worm and work on workarounds and patches through
the night. By 8:30PM Peter Yee (another XCFer) posted some details
in a message beginning with "We are currently under attack from an Internet VIRUS.
It has hit UC Berkeley, UC San Diego, Lawrence Livermore, Stanford, and NASA Ames."
— the origin of the quote in LIFE magazine.
</p>
<p>By 3AM, CSRG's <a href="https://en.wikipedia.org/wiki/Keith_Bostic">Keith Bostic</a>
began to post details on the patches for sendmail and ways to protect the systems.
The first <a href="archives/files/bostic1.txt">message</a> starts with</p>
<pre>Description:
There's a virus running around; the salient facts. A bug in
sendmail has been used to introduce a virus into a lot of
Internet UNIX systems. It has not been observed to damage the
host system, however, it's incredibly virulent, attempting to
introduce itself to every system it can find. It appears to
use rsh, broken passwords, and sendmail to introduce itself
into the target systems. It affects only VAXen and Suns, as
far as we know.
There are three changes that we believe will immunize your
system. They are attached.
Thanks to the Experimental Computing Facility, Center for
Disease Control for their assistance. (It's pretty late,
and they certainly deserved some thanks, somewhere!)</pre>
<p>Follow-up messages brought in some corrections and details, including the fingerd patch,
and the fourth and final <a href="archives/files/bostic4.txt">message</a> included the patches
for the worm itself:</p>
<pre>In the Berkeley tradition of fixing other people's software,
and in the general interests of software portability and
matainability, we have provided three fixes for those
individuals wishing to continue to run the worm on their
systems. To apply theses fixes, discompile the worm
and then use patch.</pre>
<div class="col-md-7 pull-right">
<a href="archives/scans/chronicle.jpg"><img src="archives/scans/chronicle-crop.jpg" class="img-responsive img-thumbnail center-block" /></a>
</div>
<p class="clearfix">And while a majority of the impacted systems recovered in a matter of days,
the aftermath of the Morris worm included an
<a href="https://en.wikipedia.org/wiki/National_Computer_Security_Center">NSA</a>
post-mortem (attended by Lapsley), the creation of
<a href="https://en.wikipedia.org/wiki/CERT_Coordination_Center">CERT/CC</a>,
a lengthy
<a href="https://en.wikipedia.org/wiki/Government_Accountability_Office">GAO</a>
<a href="archives/files/GAO-report.txt">report</a>, and a number of articles and book chapters
throughout the academic and industry literature in the years afterward.</p>
<h3>Additional Documents</h3>
<ul>
<li>Forefront, a Berkeley Engineering publication (<a href="archives/scans/forefront0.jpg">page 1</a>, <a href="archives/scans/forefront1.jpg">page 2</a>)</li>
<li><a href="archives/scans/chronicle.jpg">San Francisco Chronicle</a></li>
<li><a href="archives/scans/erim.jpg">Letter</a> from Environmental Research Institute of Michigan</li>
<li><a href="archives/scans/llnl.jpg">Letter</a> from Lawrence Livermore National Laboratory</li>
<li><a href="archives/scans/up.jpg">Letter</a> from University of the Philippines</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">1990</h1>
</div>
<div class="col-md-10">
<h2>ViolaWWW</h2>
<p>As World Wide Web was gaining momentum, in 1990
<a href="https://en.wikipedia.org/wiki/Pei-Yuan_Wei">Pei Wei</a> started working on
a new web browser <a href="https://en.wikipedia.org/wiki/ViolaWWW">ViolaWWW</a>, to
bring the WWW experience he wanted to UNIX
<a href="https://en.wikipedia.org/wiki/X_Window_System">X</a>.</p>
<p>ViolaWWW had introduced a number of features, which were precursors for many
commonly-used web technologies of today. Among those were embedded scripting
(pre-dating <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a> in 1995),
document insertion
(pre-dating <a href="https://en.wikipedia.org/wiki/Framing_(World_Wide_Web)">FRAME</a>s in 1996),
stylesheets
(pre-dating <a href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS</a> in 1997/1998).
ViolaWWW inspired such technologies as Java Applets and
<a href="https://en.wikipedia.org/wiki/Mosaic_(web_browser)">NCSA Mosaic</a>
(which was later licenced by Microsoft to create
<a href="https://en.wikipedia.org/wiki/Internet_Explorer">Internet Explorer</a>)</p>
<p>According to <a href="https://en.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a>,
the inventor of WWW, at some point ViolaWWW "was the best way to browse the web,
was the engine driving the installation of new servers, and the recommended browser at
<a href="https://en.wikipedia.org/wiki/CERN">CERN</a>."</p>
<p>From 1999 until 2012, a sequence of patent lawsuits and appeals had been going on
between <a href="https://en.wikipedia.org/wiki/Eolas_Technologies">Eolas</a> and
22 companies (including
<a href="https://en.wikipedia.org/wiki/Microsoft">Microsoft</a>,
<a href="https://en.wikipedia.org/wiki/Yahoo">Yahoo</a>,
<a href="https://en.wikipedia.org/wiki/Google">Google</a>,
<a href="https://en.wikipedia.org/wiki/Oracle_Corporation">Oracle</a>, etc)
where Michael David Doyle (the person behind Eolas) claimed that he and his UCSF team
were first to invent plugin support in a web browser. ViolaWWW, however, had this
functionality a year earlier, and was, therefore, prior art. Despite an initial
$565 million judgment against Microsoft, in 2012/2013 Eolas patents were invalidated.</p>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">1995</h1>
</div>
<div class="col-md-10">
<h2>GIMP/GTK</h2>
<p>In 1995,
<a href="https://en.wikipedia.org/wiki/Spencer_Kimball_(computer_programmer)">Spencer Kimball</a> and
<a href="https://en.wikipedia.org/wiki/Peter_Mattis">Peter Mattis</a> began working on
<a href="https://en.wikipedia.org/wiki/GIMP">GIMP</a> (originally <i>General Image
Manipulation Program</i>) and
<a href="https://en.wikipedia.org/wiki/GTK%2B">GTK</a> (originally <i>GIMP Toolkit</i>).
This parallelized collaboration (Spencer mostly on GIMP, Peter mostly on GTK) resulted
in public release in 1996, with blessing into the
<a href="https://en.wikipedia.org/wiki/GNU">GNU</a> family by
<a href="https://en.wikipedia.org/wiki/Richard_Stallman">Richard Stallman</a> during
his visit at UCB in 1998.</p>
<p>GIMP, now maintained by the The GIMP Development Team, has grown to become the de-facto
standard of image manipulation on GNU-based systems and the primary Free alternative to
<a href="https://en.wikipedia.org/wiki/Photoshop">Adobe Photoshop</a> on non-GNU systems.
GIMP continues to evolve and provide a professional feature set to graphics professionals.
Reflecting its XCF origin, files saved in GIMP's native format are given
the extension <a href="https://en.wikipedia.org/wiki/XCF_(file_format)">.xcf</a>.</p>
<p>GTK, now GTK+, is now maintained by
<a href="https://en.wikipedia.org/wiki/The_GNOME_Project">the GNOME Project</a>. It has
gone beyond GIMP and has become one of the most prolific cross-platform widget toolkits
with bindings for over thirty programming languages, use by countless applications, as well
as over a dozen desktop environments, including GNOME itself.</p>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">1996</h1>
</div>
<div class="col-md-10">
<h2>PRCS/Xdelta</h2>
<p><a href="https://en.wikipedia.org/wiki/Revision_Control_System">RCS</a> (since 1982) and
<a href="https://en.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a> (since 1990)
have been de-facto standards of
<a href="https://en.wikipedia.org/wiki/Revision_control">revision control</a> for quite
some time, and, while still used today, were becoming a somewhat
limiting legacy. In 1996, based on ideas from the XCF faculty adviser
<a href="https://www2.eecs.berkeley.edu/Faculty/Homepages/hilfinger.html">Paul N. Hilfinger</a>,
Josh MacDonald began working on
<a href="http://prcs.sourceforge.net/">Project Revision Control System</a> (PRCS), which was
one of the early attempts to make a better project-friendly revision control.</p>
<p>As an offshoot of PRCS work in 1997, Josh began working on delta compression algorithms, creating
<a href="http://xdelta.org/">Xdelta</a> (which he still maintains) and co-authoring
<a href="https://tools.ietf.org/html/rfc3284">RFC3284</a>, the specification for
the VCDIFF Generic Differencing and Compression Data Format, in 2002</p>
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
<h1 class="date">2000</h1>
</div>
<div class="col-md-10">
<h2>Gnutella</h2>
<p>In 1995, the specification for a lossy audio coding format
<a href="https://en.wikipedia.org/wiki/MP3">MPEG-2 Audio Layer III</a>,
more commonly referred to as MP3, was published, paving the way
for storing music on the hard drives of the time (2 GB HDD was
top-of-the-line).
<a href="https://en.wikipedia.org/wiki/Fraunhofer_Society">Fraunhofer</a> released
a software MP3 encoder
<a href="https://en.wikipedia.org/wiki/L3enc">l3enc</a> in July 1994
and a software real-time (so long as you had at least a
<a href="https://en.wikipedia.org/wiki/Intel_80486DX2">486DX2/66</a>) player
<a href="https://en.wikipedia.org/wiki/WinPlay3">WinPlay3</a> in September 1995.
The shareware version of l3enc limited encoding to 112 kbps, but a hacked
version with full 320 kbps support spread around soon enough. Meanwhile, in April 1997,
<a href="https://en.wikipedia.org/wiki/Nullsoft">Nullsoft</a> released
<a href="https://en.wikipedia.org/wiki/Winamp">Winamp</a>, which rapidly exceeded
3 million downloads. Add to that the emerging of
<a href="https://en.wikipedia.org/wiki/Adsl">ADSL</a> and
<a href="https://en.wikipedia.org/wiki/DOCSIS">DOCSIS</a> — a significant
step up for home Internet connectivity — and suddenly a lot of people could
encode, transmit, receive, and play nearly-CD-quality MP3s.</p>
<p>In June 1999, <a href="https://en.wikipedia.org/wiki/Napster">Napster</a>
<a href="https://en.wikipedia.org/wiki/Peer-to-peer_network">peer-to-peer network</a>
became operational, bringing MP3 sharing to a whole new level. At some point various
colleges and universities began to block Napster traffic due to sheer bandwidth
consumption it caused, particularly from the dorms. But Napster's downfall came
not from these blocks, but from the copyright infringement lawsuits and the fact that
their service was <i>centralized</i>, and when, eventually, the company could not
comply with the District Court's ruling, the service had to be shut down. The first
lawsuit in this chain was filed by
<a href="https://en.wikipedia.org/wiki/Metallica">Metallica</a> on March 13, 2000.</p>
<p>On March 14, 2000, Nullsoft published a client for the first <i>decentralized</i>
peer-to-peer network. The client (and, later, the network) was called
<a href="https://en.wikipedia.org/wiki/Gnutella">Gnutella</a>.
The very next day, <a href="https://en.wikipedia.org/wiki/AOL">AOL</a>
(which bought Nullsoft nine months earlier) pulled the client off the Nullsoft's
servers and stopped any further work on it. But one day was enough.</p>
<p><a href="https://en.wikipedia.org/wiki/Gene_Kan">Gene Kan</a> and
<a href="https://en.wikipedia.org/wiki/Spencer_Kimball_(computer_programmer)">Spencer Kimball</a>
launched the first Gnutella portal to bring together folks working on reverse-engineering
Gnutella protocol and building open-source alternatives to Nullsoft's client, and led
the way by releasing a GTK Gnutella client Gnubile — version 0.20 becoming available
on April 13.</p>
<p>Gene became a strong advocate for Gnutella and peer-to-peer networking in general,
went on to fund
<a href="https://en.wikipedia.org/wiki/Distributed_search_engine#InfraSearch">InfraSearch, Inc</a>,
technology from which later became part of
<a href="https://en.wikipedia.org/wiki/Jxta">JXTA</a>.
In July 2000, as Gnutella developer and InfraSearch founder, he
<a href="archives/files/7112000_gk.html">testified</a>
at the Senate Judiciary Committee hearing on "Intellectual Property in the Digital Age", finishing with
"We’re on the precipice of a slippery slope. The toothpaste is already out of the tube. It can be exploited nicely, or be turned into a huge mess."
</div>
</div>
<div class="row">
<div class="col-md-2 hidden-sm hidden-xs">
</div>
<div class="col-md-10">
<h1>Historic snapshots</h1>
<ul class="snapshots">
<li><a href="archives/1996-12-18.html">1996-12-18</a></li>
<li><a href="archives/1997-07-11.html">1997-07-11</a></li>
<li><a href="archives/1998-12-12.html">1998-12-12</a></li>
<li><a href="archives/2003-02-11.html">2003-02-11</a></li>
<li><a href="archives/2010-10-27.html">2010-10-27</a></li>
</ul>
</div>
</div>
</div>
<div class="col-md-3 hidden-sm hidden-xs">
<nav id="toc" data-spy="affix" data-offset-top="0" data-toggle="toc"></nav>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous">
</script>
<script
src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js">
</script>
<script>
$('#toc').affix({
offset: {
top: $('#toc').offset().top
}
});
</script>
</body>
</html>