eXperimental Computing Facility

University of California at Berkeley


XCF, the eXperimental Computing Facility at UC Berkeley, is a small undergraduate student organization with members who share a keen interest in a blend of computer science and engineering.

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.

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.

Below are some of the XCF stories and projects (WIP).


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 RadioShack for a Tandy 1000; 80386s were just hitting the streets, but to run a UNIX-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: MILNET had just broken off from ARPANET, and NSFNET was just coming together. Home users, though, were limited to BBSes and the emerging FidoNet. Needless to say, there was no World Wide Web yet, and computer-related knowledge was not so easy to come by.

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 Sun workstations, and Phil Lapsley as the first XCF Director.


One of the early XCFer's contributions to the world was RFC977, the specification for Network News Transfer Protocol (NNTP), which Phil Lapsley co-authored. NNTP remains the workhorse for Usenet (Netnews) to this day.

Morris worm

On the evening of November 2, 1988, a Cornell graduate student Robert Morris released one of the first worms 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.

Phil Lapsley 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. CSRG 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.

By 3AM, CSRG's Keith Bostic began to post details on the patches for sendmail and ways to protect the systems. The first message starts with


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!)

Follow-up messages brought in some corrections and details, including the fingerd patch, and the fourth and final message included the patches for the worm itself:

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.

And while a majority of the impacted systems recovered in a matter of days, the aftermath of the Morris worm included an NSA post-mortem (attended by Lapsley), the creation of CERT/CC, a lengthy GAO report, and a number of articles and book chapters throughout the academic and industry literature in the years afterward.

Additional Documents


As World Wide Web was gaining momentum, in 1990 Pei Wei started working on a new web browser ViolaWWW, to bring the WWW experience he wanted to UNIX X.

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 JavaScript in 1995), document insertion (pre-dating FRAMEs in 1996), stylesheets (pre-dating CSS in 1997/1998). ViolaWWW inspired such technologies as Java Applets and NCSA Mosaic (which was later licenced by Microsoft to create Internet Explorer)

According to Tim Berners-Lee, 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 CERN."

From 1999 until 2012, a sequence of patent lawsuits and appeals had been going on between Eolas and 22 companies (including Microsoft, Yahoo, Google, Oracle, 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.


In 1995, Spencer Kimball and Peter Mattis began working on GIMP (originally General Image Manipulation Program) and GTK (originally GIMP Toolkit). This parallelized collaboration (Spencer mostly on GIMP, Peter mostly on GTK) resulted in public release in 1996, with blessing into the GNU family by Richard Stallman during his visit at UCB in 1998.

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 Adobe Photoshop 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 .xcf.

GTK, now GTK+, is now maintained by the GNOME Project. 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.


RCS (since 1982) and CVS (since 1990) have been de-facto standards of revision control 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 Paul N. Hilfinger, Josh MacDonald began working on Project Revision Control System (PRCS), which was one of the early attempts to make a better project-friendly revision control.

As an offshoot of PRCS work in 1997, Josh began working on delta compression algorithms, creating Xdelta (which he still maintains) and co-authoring RFC3284, the specification for the VCDIFF Generic Differencing and Compression Data Format, in 2002


In 1995, the specification for a lossy audio coding format MPEG-2 Audio Layer III, 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). Fraunhofer released a software MP3 encoder l3enc in July 1994 and a software real-time (so long as you had at least a 486DX2/66) player WinPlay3 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, Nullsoft released Winamp, which rapidly exceeded 3 million downloads. Add to that the emerging of ADSL and DOCSIS — a significant step up for home Internet connectivity — and suddenly a lot of people could encode, transmit, receive, and play nearly-CD-quality MP3s.

In June 1999, Napster peer-to-peer network 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 centralized, 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 Metallica on March 13, 2000.

On March 14, 2000, Nullsoft published a client for the first decentralized peer-to-peer network. The client (and, later, the network) was called Gnutella. The very next day, AOL (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.

Gene Kan and Spencer Kimball 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.

Gene became a strong advocate for Gnutella and peer-to-peer networking in general, went on to fund InfraSearch, Inc, technology from which later became part of JXTA. In July 2000, as Gnutella developer and InfraSearch founder, he testified 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."