Hackers, Heroes of the Computer Revolution, by Steven Levy
S >>
Steven Levy >> Hackers, Heroes of the Computer Revolution, by Steven Levy
This latter term may have been suggested by ancient MIT lingo--
the word "hack" had long been used to describe the elaborate
college pranks that MIT students would regularly devise, such as
covering the dome that overlooked the campus with reflecting
foil. But as the TMRC people used the word, there was serious
respect implied. While someone might call a clever connection
between relays a "mere hack," it would be understood that, to
qualify as a hack, the feat must be imbued with innovation,
style, and technical virtuosity. Even though one might
self-deprecatingly say he was "hacking away at The System" (much
as an axe-wielder hacks at logs), the artistry with which one
hacked was recognized to be considerable.
The most productive people working on Signals and Power called
themselves "hackers" with great pride. Within the confines of
the clubroom in Building 20, and of the "Tool Room" (where some
study and many techno bull sessions took place), they had
unilaterally endowed themselves with the heroic attributes of
Icelandic legend. This is how Peter Samson saw himself and his
friends in a Sandburg-esque poem in the club newsletter:
Switch Thrower for the World,
Fuze Tester, Maker of Routes,
Player with the Railroads and the System's Advance Chopper;
Grungy, hairy, sprawling,
Machine of the Point-Function Line-o-lite:
They tell me you are wicked and I believe them; for I have seen
your painted light bulbs under the lucite luring
the system coolies . . .
Under the tower, dust all over the place, hacking with bifur-
cated springs . . .
Hacking even as an ignorant freshman acts who has never lost
occupancy and has dropped out
Hacking the M-Boards, for under its locks are the switches, and
under its control the advance around the layout,
Hacking!
Hacking the grungy, hairy, sprawling hacks of youth; uncabled,
frying diodes, proud to be Switch-thrower, Fuze-
tester, Maker of Routes, Player with Railroads,
and Advance Chopper to the System.
Whenever they could, Samson and the others would slip off to the
EAM room with their plug boards, trying to use the machine to
keep track of the switches underneath the layout. Just as
important, they were seeing what the electromechanical counter
could do, taking it to its limit.
That spring of 1959, a new course was offered at MIT. It was the
first course in programming a computer that freshmen could take.
The teacher was a distant man with a wild shock of hair and an
equally unruly beard--John McCarthy. A master mathematician,
McCarthy was a classically absent-minded professor; stories
abounded about his habit of suddenly answering a question hours,
sometimes even days after it was first posed to him. He would
approach you in the hallway, and with no salutation would begin
speaking in his robotically precise diction, as if the pause in
conversation had been only a fraction of a second, and not a
week. Most likely, his belated response would be brilliant.
McCarthy was one of a very few people working in an entirely new
form of scientific inquiry with computers. The volatile and
controversial nature of his field of study was obvious from the
very arrogance of the name that McCarthy had bestowed upon it:
Artificial Intelligence. This man actually thought that
computers could be SMART. Even at such a science-intensive place
as MIT, most people considered the thought ridiculous: they
considered computers to be useful, if somewhat absurdly
expensive, tools for number-crunching huge calculations and for
devising missile defense systems (as MIT's largest computer, the
Whirlwind, had done for the early-warning SAGE system), but
scoffed at the thought that computers themselves could actually
be a scientific field of study, Computer Science did not
officially exist at MIT in the late fifties, and McCarthy and his
fellow computer specialists worked in the Electrical Engineering
Department, which offered the course, No. 641, that Kotok,
Samson, and a few other TRMC members took that spring.
McCarthy had started a mammoth program on the IBM 704--the
Hulking Giant--that would give it the extraordinary ability to
play chess. To critics of the budding field of Artificial
Intelligence, this was just one example of the boneheaded
optimism of people like John McCarthy. But McCarthy had a
certain vision of what computers could do, and playing chess was
only the beginning.
All fascinating stuff, but not the vision that was driving Kotok
and Samson and the others. They wanted to learn how to WORK the
damn machines, and while this new programming language called
LISP that McCarthy was talking about in 641 was interesting, it
was not nearly as interesting as the act of programming, or that
fantastic moment when you got your printout back from the
Priesthood--word from the source itself!--and could then spend
hours poring over the results of the program, what had gone wrong
with it, how it could be improved. The TMRC hackers were
devising ways to get into closer contact with the IBM 704, which
soon was upgraded to a newer model called the 709. By hanging
out at the computation center in the wee hours of the morning,
and by getting to know the Priesthood, and by bowing and scraping
the requisite number of times, people like Kotok were eventually
allowed to push a few buttons on the machine, and watch the
lights as it worked.
There were secrets to those IBM machines that had been
painstakingly learned by some of the older people at MIT with
access to the 704 and friends among the Priesthood. Amazingly, a
few of these programmers, grad students working with McCarthy,
had even written a program that utilized one of the rows of tiny
lights: the lights would be lit in such an order that it looked
like a little ball was being passed from right to left: if an
operator hit a switch at just the right time, the motion of the
lights could be reversed--Computer Ping-Pong! This obviously was
the kind of thing that you'd show off to impress your peers, who
would then take a look at the actual program you had written and
see how it was done.
To top the program, someone else might try to do the same thing
with fewer instructions--a worthy endeavor, since there was so
little room in the small "memory" of the computers of those days
that not many instructions could fit into them, John McCarthy had
once noticed how his graduate students who loitered around the
704 would work over their computer programs to get the most out
of the fewest instructions, and get the program compressed so
that fewer cards would need to be fed to the machine. Shaving
off an instruction or two was almost an obsession with them.
McCarthy compared these students to ski bums. They got the same
kind of primal thrill from "maximizing code" as fanatic skiers
got from swooshing frantically down a hill. So the practice of
taking a computer program and trying to cut off instructions
without affecting the outcome came to be called "program
bumming," and you would often hear people mumbling things like
"Maybe I can bum a few instructions out and get the octal
correction card loader down to three cards instead of four."
McCarthy in 1959 was turning his interest from chess to a new way
of talking to the computer, the whole new "language" called LISP.
Alan Kotok and his friends were more than eager to take over the
chess project. Working on the batch-processed IBM, they embarked
on the gargantuan project of teaching the 704, and later the 709,
and even after that its replacement the 7090, how to play the
game of kings. Eventually Kotok's group became the largest users
of computer time in the entire MIT computation center.
Still, working with the IBM machine was frustrating. There was
nothing worse than the long wait between the time you handed in
your cards and the time your results were handed back to you. If
you had misplaced as much as one letter in one instruction, the
program would crash, and you would have to start the whole
process over again. It went hand in hand with the stifling
proliferation of goddamn RULES that permeated the atmosphere of
the computation center. Most of the rules were designed to keep
crazy young computer fans like Samson and Kotok and Saunders
physically distant from the machine itself. The most rigid rule
of all was that no one should be able to actually touch or tamper
with the machine itself. This, of course, was what those Signals
and Power people were dying to do more than anything else in the
world, and the restrictions drove them mad.
One priest--a low-level sub-priest, really--on the late-night
shift was particularly nasty in enforcing this rule, so Samson
devised a suitable revenge. While poking around at Eli's
electronic junk shop one day, he chanced upon an electrical board
precisely like the kind of board holding the clunky vacuum tubes
which resided inside the IBM. One night, sometime before 4 A.M.,
this particular sub-priest stepped out for a minute; when he
returned, Samson told him that the machine wasn't working, but
they'd found the trouble--and held up the totally smashed module
from the old 704 he'd gotten at Eli's.
The sub-priest could hardly get the words out. "W-where did you
get that?"
Samson, who had wide green eyes that could easily look maniacal,
slowly pointed to an open place on the machine rack where, of
course, no board had ever been, but the space still looked sadly
bare. The sub-priest gasped. He made faces that indicated his
bowels were about to give out. He whimpered exhortations to the
deity. Visions, no doubt, of a million-dollar deduction from his
paycheck began flashing before him. Only after his supervisor, a
high priest with some understanding of the mentality of these
young wiseguys from the Model Railroad Club, came and explained
the situation did he calm down.
He was not the last administrator to feel the wrath of a hacker
thwarted in the quest for access.
* * *
One day a former TMRC member who was now on the MIT faculty paid
a visit to the clubroom. His name was Jack Dennis. When he had
been an undergraduate in the early 1950s, he had worked furiously
underneath the layout. Dennis lately had been working a computer
which MIT had just received from Lincoln Lab, a military
development laboratory affiliated with the Institute. The
computer was called the TX-0, and it was one of the first
transistor-run computers in the world. Lincoln Lab had used it
specifically to test a giant computer called the TX-2, which had
a memory so complex that only with this specially built little
brother could its ills be capably diagnosed. Now that its
original job was over, the three-million-dollar TX-0 had been
shipped over to the Institute on "long-term loan," and apparently
no one at Lincoln Lab had marked a calendar with a return date.
Dennis asked the S&P people at TMRC whether they would like to
see it.
Hey you nuns! Would you like to meet the Pope?
The TX-0 was in Building 26, in the second-floor Radio Laboratory
of Electronics (RLE), directly above the first-floor Computation
Center which housed the hulking IBM 704. The RLE lab resembled
the control room of an antique spaceship. The TX-0, or Tixo, as
it was sometimes called, was for its time a midget machine, since
it was one of the first computers to use finger-size transistors
instead of hand-size vacuum tubes. Still, it took up much of the
room, along with its fifteen tons of supporting air-conditioning
equipment. The TX-O's workings were mounted on several tall,
thin chassis, like rugged metal bookshelves, with tangled wires
and neat little rows of tiny, bottle-like containers in which the
transistors were inserted. Another rack had a solid metal front
speckled with grim-looking gauges. Facing the racks was an
L-shaped console, the control panel of this H. G. Wells
spaceship, with a blue countertop for your elbows and papers. On
the short arm of the L stood a Flexowriter, which resembled a
typewriter converted for tank warfare, its bottom anchored in a
military gray housing. Above the top were the control panels,
boxlike protrusions painted an institutional yellow. On the
sides of the boxes which faced the user were a few gauges,
several lines of quarter-inch blinking lights, a matrix of steel
toggle switches the size of large grains of rice, and, best of
all, an actual cathode ray tube display, round and smoke-gray.
The TMRC people were awed. THIS MACHINE DID NOT USE CARDS. The
user would first punch in a program onto a long, thin paper tape
with a Flexowriter (there were a few extra Flexowriters in an
adjoining room), then sit at the console, feed in the program by
running the tape through a reader, and be able to sit there while
the program ran. If something went wrong with the program, you
knew immediately, and you could diagnose the problem by using
some of the switches, or checking out which of the lights were
blinking or lit. The computer even had an audio output: while
the program ran, a speaker underneath the console would make a
sort of music, like a poorly tuned electric organ whose notes
would vibrate with a fuzzy, ethereal din. The chords on this
"organ" would change, depending on what data the machine was
reading at any given microsecond; after you were familiar with
the tones, you could actually HEAR what part of your program the
computer was working on. You would have to discern this, though,
over the clacking of the Flexowriter, which could make you think
you were in the middle of a machine-gun battle. Even more
amazing was that, because of these "interactive" capabilities,
and also because users seemed to be allowed blocks of time to use
the TX-0 all by themselves, you could even modify a program WHILE
SITTING AT THE COMPUTER. A miracle!
There was no way in hell that Kotok, Saunders, Samson, and the
others were going to be kept away from that machine.
Fortunately, there didn't seem to be the kind of bureaucracy
surrounding the TX-0 that there was around the IBM 704. No cadre
of officious priests. The technician in charge was a canny
white-haired Scotsman named John McKenzie. While he made sure
that graduate students and those working on funded projects--
Officially Sanctioned Users--maintained access to the machine,
McKenzie tolerated the crew of TMRC madmen who began to hang out
in the RLE lab, where the TX-0 stood.
Samson, Kotok, Saunders, and a freshman named Bob Wagner soon
figured out that the best time of all to hang out in Building 26
was at night, when no person in his right mind would have signed
up for an hour-long session on the piece of paper posted every
Friday beside the air conditioner in the RLE lab. The TX-0 as a
rule was kept running twenty-four hours a day--computers back
then were too expensive for their time to be wasted by leaving
them idle through the night, and besides, it was a hairy
procedure to get the thing up and running once it was turned off.
So the TMRC hackers, who soon were referring to themselves as
TX-0 hackers, changed their life-style to accommodate the
computer. They laid claim to what blocks of time they could, and
would "vulture time" with nocturnal visits to the lab on the off
chance that someone who was scheduled for a 3 A.M. session might
not show up.
"Oh!" Samson would say delightedly, a minute or so after someone
failed to show up at the time designated in the logbook. "Make
sure it doesn't go to waste!"
It never seemed to, because the hackers were there almost all the
time. If they weren't in the RLE lab waiting for an opening to
occur, they were in the classroom next to the TMRC clubroom, the
Tool Room, playing a "hangman"-style word game that Samson had
devised called "Come Next Door," waiting for a call from someone
who was near the TX-0, monitoring it to see if someone had not
shown up for a session. The hackers recruited a network of
informers to give advance notice of potential openings at the
computer--if a research project was not ready with its program in
time, or a professor was sick, the word would be passed to TMRC
and the hackers would appear at the TX-0, breathless and ready to
jam into the space behind the console.
Though Jack Dennis was theoretically in charge of the operation,
Dennis was teaching courses at the time, and preferred to spend
the rest of his time actually writing code for the machine.
Dennis played the role of benevolent godfather to the hackers:
he would give them a brief hands-on introduction to the machine,
point them in certain directions, be amused at their wild
programming ventures. He had little taste for administration,
though, and was just as happy to let John McKenzie run things.
McKenzie early on recognized that the interactive nature of the
TX-0 was inspiring a new form of computer programming, and the
hackers were its pioneers. So he did not lay down too many
edicts.
The atmosphere was loose enough in 1959 to accommodate the
strays--science-mad people whose curiosity burned like a hunger,
who like Peter Samson would be exploring the uncharted maze of
laboratories at MIT. The noise of the air-conditioning, the
audio output, and the drill-hammer Flexowriter would lure these
wanderers, who'd poke their heads into the lab like kittens
peering into baskets of yarn.
One of those wanderers was an outsider named Peter Deutsch. Even
before discovering the TX-0, Deutsch had developed a fascination
for computers. It began one day when he picked up a manual that
someone had discarded, a manual for an obscure form of computer
language for doing calculations. Something about the orderliness
of the computer instructions appealed to him: he would later
describe the feeling as the same kind of eerily transcendent
recognition that an artist experiences when he discovers the
medium that is absolutely right for him. THIS IS WHERE I BELONG.
Deutsch tried writing a small program, and, signing up for time
under the name of one of the priests, ran it on a computer.
Within weeks, he had attained a striking proficiency in
programming. He was only twelve years old.
He was a shy kid, strong in math and unsure of most everything
else. He was uncomfortably overweight, deficient in sports, but
an intellectual star performer. His father was a professor at
MIT, and Peter used that as his entree to explore the labs.
It was inevitable that he would be drawn to the TX-0. He first
wandered into the small "Kluge Room" (a "kluge" is a piece of
inelegantly constructed equipment that seems to defy logic by
working properly), where three off-line Flexowriters were
available for punching programs onto paper tape which would later
be fed into the TX-0. Someone was busy punching in a tape.
Peter watched for a while, then began bombarding the poor soul
with questions about that weird-looking little computer in the
next room. Then Peter went up to the TX-0 itself, examined it
closely, noting how it differed from other computers: it was
smaller, had a CRT display, and other neat toys. He decided
right then to act as if he had a perfect right to be there. He
got hold of a manual and soon was startling people by spouting
actual make-sense computer talk, and eventually was allowed to
sign up for night and weekend sessions, and to write his own
programs.
McKenzie worried that someone might accuse him of running some
sort of summer camp, with this short-pants little kid, barely
tall enough to stick his head over the TX-O's console, staring at
the code that an Officially Sanctioned User, perhaps some
self-important graduate student, would be hammering into the
Flexowriter, and saying in his squeaky, preadolescent voice
something like "Your problem is that this credit is wrong over
here . . . you need this other instruction over there," and the
self-important grad student would go crazy--WHO IS THIS LITTLE
WORM?--and start screaming at him to go out and play somewhere.
Invariably, though, Peter Deutsch's comments would turn out to be
correct. Deutsch would also brazenly announce that he was going
to write better programs than the ones currently available, and
he would go and do it.
Samson, Kotok, and the other hackers accepted Peter Deutsch: by
virtue of his computer knowledge he was worthy of equal
treatment. Deutsch was not such a favorite with the Officially
Sanctioned Users, especially when he sat behind them ready to
spring into action when they made a mistake on the Flexowriter.
These Officially Sanctioned Users appeared at the TX-0 with the
regularity of commuters. The programs they ran were statistical
analyses, cross correlations, simulations of an interior of the
nucleus of a cell. Applications. That was fine for Users, but
it was sort of a waste in the minds of the hackers. What hackers
had in mind was getting behind the console of the TX-0 much in
the same way as getting in behind the throttle of a plane, Or, as
Peter Samson, a classical music fan, put it, computing with the
TX-0 was like playing a musical instrument: an absurdly
expensive musical instrument upon which you could improvise,
compose, and, like the beatniks in Harvard Square a mile away,
wail like a banshee with total creative abandon.
One thing that enabled them to do this was the programming system
devised by Jack Dennis and another professor, Tom Stockman. When
the TX-0 arrived at MIT, it had been stripped down since its days
at Lincoln Lab: the memory had been reduced considerably, to
4,096 "words" of eighteen bits each. (A "bit" is a BInary digiT,
either a one or zero. These binary numbers are the only thing
computers understand. A series of binary numbers is called a
"word.") And the TX-0 had almost no software. So Jack Dennis,
even before he introduced the TMRC people to the TX-0, had been
writing "systems programs"--the software to help users utilize
the machine.
The first thing Dennis worked on was an assembler. This was
something that translated assembly language--which used three-
letter symbolic abbreviations that represented instructions to
the machine--into machine language, which consisted of the binary
numbers 0 and 1. The TX-0 had a rather limited assembly
language: since its design allowed only two bits of each
eighteen-bit word to be used for instructions to the computer,
only four instructions could be used (each possible two-bit
variation--00, 0 1, 10, and 11--represented an instruction).
Everything the computer did could be broken down to the execution
of one of those four instructions: it took one instruction to
add two numbers, but a series of perhaps twenty instructions to
multiply two numbers. Staring at a long list of computer
commands written as binary numbers--for example, 10011001100001--
could make you into a babbling mental case in a matter of
minutes. But the same command in assembly language might look
like this: ADD Y. After loading the computer with the assembler
that Dennis wrote, you could write programs in this simpler
symbolic form, and wait smugly while the computer did the
translation into binary for you, Then you'd feed that binary
"object" code back into the computer. The value of this was
incalculable: it enabled programmers to write in something that
LOOKED like code, rather than an endless, dizzying series of ones
and zeros.
The other program that Dennis worked on with Stockman was
something even newer--a debugger. The TX-0 came with a debugging
program called UT-3, which enabled you to talk to the computer
while it was running by typing commands directly into the
Flexowriter, But it had terrible problems-for one thing, it only
accepted typed-in code that used the octal numeric system.
"Octal" is a base-eight number system (as opposed to binary,
which is base two, and Arabic--ours-which is base ten), and it is
a difficult system to use. So Dennis and Stockman decided to
write something better than UT-3 which would enable users to use
the symbolic, easier-to-work-with assembly language. This came
to be called FLIT, and it allowed users to actually find program
bugs during a session, fix them, and keep the program running.
(Dennis would explain that "FLIT" stood for FLexowriter
Interrogation Tape, but clearly the name's real origin was the
insect spray with that brand name.) FLIT was a quantum leap
forward, since it liberated programmers to actually do original
composing on the machine--just like musicians composing on their
musical instruments. With the use of the debugger, which took up
one third of the 4,096 words of the TX-O's memory, hackers were
free to create a new, more daring style of programming.
And what did these hacker programs DO? Well, sometimes, it
didn't matter much at all what they did. Peter Samson hacked the
night away on a program that would instantly convert Arabic
numbers to Roman numerals, and Jack Dennis, after admiring the
skill with which Samson had accomplished this feat, said, "My
God, why would anyone want to do such a thing?" But Dennis knew
why. There was ample justification in the feeling of power and
accomplishment Samson got when he fed in the paper tape,
monitored the lights and switches, and saw what were once plain
old blackboard Arabic numbers coming back as the numerals the
Romans had hacked with.