Hackers

Home > Other > Hackers > Page 5
Hackers Page 5

by Steven Levy


  Sometimes program bumming became competitive, a macho contest to prove oneself so much in command of the system that one could recognize elegant shortcuts to shave off an instruction or two, or, better yet, rethink the whole problem and devise a new algorithm that would save a whole block of instructions. (An algorithm is a specific procedure which one can apply to solve a complex computer problem; it is sort of a mathematical skeleton key.) This could most emphatically be done by approaching the problem from an offbeat angle that no one had ever thought of before, but that in retrospect made total sense. There was definitely an artistic impulse residing in those who could utilize this genius-from-Mars technique—a black-magic, visionary quality that enabled them to discard the stale outlook of the best minds on earth and come up with a totally unexpected new algorithm.

  This happened with the decimal print routine program. This was a subroutine—a program within a program that you could sometimes integrate into many different programs—to translate binary numbers that the computer gave you into regular decimal numbers. In Saunders’ words, this problem became the “pawn’s ass of programming—if you could write a decimal print routine which worked, you knew enough about the computer to call yourself a programmer of sorts.” And if you wrote a great decimal print routine, you might be able to call yourself a hacker. More than a competition, the ultimate bumming of the decimal print routine became a sort of hacker Holy Grail.

  Various versions of decimal print routines had been around for some months. If you were being deliberately stupid about it, or if you were a genuine moron—an out-and-out “loser”—it might take you a hundred instructions to get the computer to convert machine language to decimal. But any hacker worth his salt could do it in less, and finally, by taking the best of the programs, bumming an instruction here and there, the routine was diminished to about fifty instructions.

  After that, things got serious. People would work for hours, seeking a way to do the same thing in fewer lines of code. It became more than a competition; it was a quest. For all the effort expended, no one seemed to be able to crack the fifty-line barrier. The question arose whether it was even possible to do it in less. Was there a point beyond which a program could not be bummed?

  Among the people puzzling with this dilemma was a fellow named Jensen, a tall, silent hacker from Maine who would sit quietly in the Kluge Room and scribble on printouts with the calm demeanor of a backwoodsman whittling. Jensen was always looking for ways to compress his programs in time and space—his code was a completely bizarre sequence of intermingled Boolean and arithmetic functions, often causing several different computations to occur in different sections of the same eighteen-bit “word.” Amazing things, magical stunts.

  Before Jensen, there had been general agreement that the only logical algorithm for a decimal print routine would have the machine repeatedly subtracting, using a table of the powers of ten to keep the numbers in proper digital columns. Jensen somehow figured that a powers-of-ten table wasn’t necessary; he came up with an algorithm that was capable of converting the digits in a reverse order, but, by some digital sleight of hand, print them out in the proper order. There was a complex mathematical justification to it that was clear to the other hackers only when they saw Jensen’s program posted on a bulletin board, his way of telling them that he had taken the decimal print routine to its limit. Forty-six instructions. People would stare at the code and their jaws would drop. Marge Saunders remembers the hackers being unusually quiet for days afterward.

  “We knew that was the end of it,” Bob Saunders later said. “That was Nirvana.”

  Computers can change your life for the better.

  This belief was subtly manifest. Rarely would a hacker try to impose a view of the myriad advantages of the computer way of knowledge to an outsider. Yet, this premise dominated the everyday behavior of the TX-0 hackers, as well as the generations of hackers that came after them.

  Surely the computer had changed their lives, enriched their lives, given their lives focus, made their lives adventurous. It had made them masters of a certain slice of fate. Peter Samson later said, “We did it twenty-five to thirty percent for the sake of doing it because it was something we could do and do well, and sixty percent for the sake of having something which was in its metaphorical way alive, our offspring, which would do things on its own when we were finished. That’s the great thing about programming, the magical appeal it has . . . Once you fix a behavioral problem [a computer or program] has, it’s fixed forever, and it is exactly an image of what you meant.”

  Like Aladdin’s lamp, you could get it to do your bidding.

  Surely everyone could benefit from experiencing this power. Surely everyone could benefit from a world based on the Hacker Ethic. This was the implicit belief of the hackers, and the hackers irreverently extended the conventional point of view of what computers could and should do—leading the world to a new way of looking and interacting with computers.

  This was not easily done. Even at such an advanced institution as MIT, some professors considered a manic affinity for computers as frivolous, even demented. TMRC hacker Bob Wagner once had to explain to an engineering professor what a computer was. Wagner experienced this clash of computer versus anticomputer even more vividly when he took a Numerical Analysis class in which the professor required each student to do homework using rattling, clunky electromechanical calculators. Kotok was in the same class, and both of them were appalled at the prospect of working with those low-tech machines. “Why should we,” they asked, “when we’ve got this computer?”

  So Wagner began working on a computer program that would emulate the behavior of a calculator. The idea was outrageous. To some, it was a misappropriation of valuable machine time. According to the standard thinking on computers, their time was so precious that one should only attempt things that took maximum advantage of the computer, things that otherwise would take roomfuls of mathematicians days of mindless calculating. Hackers felt otherwise: anything that seemed interesting or fun was fodder for computing—and using interactive computers, with no one looking over your shoulder and demanding clearance for your specific project, you could act on that belief. After two or three months of tangling with intricacies of floating-point arithmetic (necessary to allow the program to know where to place the decimal point) on a machine that had no simple method to perform elementary multiplication, Wagner had written three thousand lines of code that did the job. He had made a ridiculously expensive computer perform the function of a calculator that was one thousandth the price. To honor this irony, he called the program "Expensive Desk Calculator,” and proudly did the homework for his class on it.

  His grade—zero. “You used a computer!” the professor told him. “This can’t be right.”

  Wagner didn’t even bother to explain. How could he convey to his teacher that the computer was making realities out of what were once incredible possibilities? Or that another hacker had even written a program called “Expensive Typewriter” that converted the TX-0 to something you could write text on, could process your writing in strings of characters and print it out on the Flexowriter—could you imagine a professor accepting a classwork report written by the computer? How could that professor—how could, in fact, anyone who hadn’t been immersed in this uncharted man-machine universe—understand how Wagner and his fellow hackers were routinely using the computer to simulate, according to Wagner, “strange situations which one could scarcely envision otherwise”? The professor would learn in time, as would everyone, that the world opened up by the computer was a limitless one.

  If anyone needed further proof, you could cite the project that Kotok was working on in the Computation Center, the chess program that bearded AI professor “Uncle” John McCarthy, as he was becoming known to his hacker students, had begun on the IBM 704. Even though Kotok and the several other hackers helping him on the program had only contempt for the IBM batch-processing mentality that pervaded the machine and the peop
le around it, they had managed to scrounge some late-night time to use it interactively, and had been engaging in an informal battle with the systems programmers on the 704 to see which group would be known as the biggest consumer of computer time. The lead would bounce back and forth, and the white-shirt-and-black-tie 704 people were impressed enough to actually let Kotok and his group touch the buttons and switches on the 704: rare sensual contact with a vaunted IBM beast.

  Kotok’s role in bringing the chess program to life was indicative of what was to become the hacker role in Artificial Intelligence: a Heavy Head like McCarthy or his colleague Marvin Minsky would begin a project or wonder aloud whether something might be possible, and the hackers, if it interested them, would set about doing it.

  The chess program had been started using FORTRAN, one of the early computer languages. Computer languages look more like English than assembly language, are easier to write with, and do more things with fewer instructions; however, each time an instruction is given in a computer language like FORTRAN, the computer must first translate that command into its own binary language. A program called a “compiler” does this, and the compiler takes up time to do its job, as well as occupying valuable space within the computer. In effect, using a computer language puts you an extra step away from direct contact with the computer, and hackers generally preferred assembly or, as they called it, “machine” language to less elegant, “higher-level” languages like FORTRAN.

  Kotok, though, recognized that because of the huge amounts of numbers that would have to be crunched in a chess program, part of the program would have to be done in FORTRAN, and part in assembly. They hacked it part by part, with “move generators,” basic data structures, and all kinds of innovative algorithms for strategy. After feeding the machine the rules for moving each piece, they gave it some parameters by which to evaluate its position, consider various moves, and make the move that would advance it to the most advantageous situation. Kotok kept at it for years, the program growing as MIT kept upgrading its IBM computers, and one memorable night a few hackers gathered to see the program make some of its first moves in a real game. Its opener was quite respectable, but after eight or so exchanges there was real trouble, with the computer about to be checkmated. Everybody wondered how the computer would react. It took a while (everyone knew that during those pauses the computer was actually “thinking,” if your idea of thinking included mechanically considering various moves, evaluating them, rejecting most, and using a predefined set of parameters to ultimately make a choice). Finally, the computer moved a pawn two squares forward, illegally jumping over another piece. A bug! But a clever one—it got the computer out of check. Maybe the program was figuring out some new algorithm with which to conquer chess.

  At other universities, professors were making public proclamations that computers would never be able to beat a human being in chess. Hackers knew better. They would be the ones who would guide computers to greater heights than anyone expected. And the hackers, by fruitful, meaningful association with the computer, would be foremost among the beneficiaries.

  But they would not be the only beneficiaries. Everyone could gain something by the use of thinking computers in an intellectually automated world. And wouldn’t everyone benefit even more by approaching the world with the same inquisitive intensity, skepticism toward bureaucracy, openness to creativity, unselfishness in sharing accomplishments, urge to make improvements, and desire to build as those who followed the Hacker Ethic? By accepting others on the same unprejudiced basis by which computers accepted anyone who entered code into a Flexowriter? Wouldn’t we benefit if we learned from computers the means of creating a perfect system, and set about emulating that perfection in a human system? If everyone could interact with computers with the same innocent, productive, creative impulse that hackers did, the Hacker Ethic might spread through society like a benevolent ripple, and computers would indeed change the world for the better.

  In the monastic confines of the Massachusetts Institute of Technology, people had the freedom to live out this dream—the hacker dream. No one dared suggest that the dream might spread. Instead, people set about building, right there at MIT, a hacker Xanadu, the likes of which might never be duplicated.

  Chapter 3. Spacewar

  In the summer of 1961, Alan Kotok and the other TMRC hackers learned that a new company was soon to deliver to MIT, absolutely free, the next step in computing, a machine that took the interactive principles of the TX-0 several steps further. A machine that might be even better for hackers than the TX-0 was.

  The PDP-1. It would change computing forever. It would make the still hazy hacker dream come a little closer to reality.

  Alan Kotok had distinguished himself as a true wizard on the TX-0, so much so that he, along with Saunders, Samson, Wagner, and a few others, had been hired by Jack Dennis to be the Systems Programming Group of the TX-0. The pay would be a munificent $1.60 an hour. For a few of the hackers, the job was one more excuse not to go to classes—some hackers, like Samson, would never graduate, and be too busy hacking to really regret the loss. Kotok, though, was able not only to manage his classes, but to establish himself as a “canonical” hacker. Around the TX-0 and TMRC, he was acquiring legendary status. One hacker who was just arriving at MIT that year remembers Kotok giving newcomers a demonstration of how the TX-0 worked: “I got the impression he was hyperthyroid or something,” recalled Bill Gosper, who would become a canonical hacker himself, “because he spoke very slowly and he was chubby and his eyes were half-closed. That was completely and utterly the wrong impression. [Around the TX-0] Kotok had infinite moral authority. He had written the chess program. He understood hardware.” (This last was not an inconsiderable compliment—“understanding hardware” was akin to fathoming the Tao of physical nature.)

  The summer that the word came out about the PDP-1, Kotok was working for Western Electric, kind of a dream job, since of all possible systems the phone system was admired most of all. The Model Railroad Club would often go on tours of phone company exchanges, much in the way that people with an interest in painting might tour a museum. Kotok found it interesting that at the phone company, which had gotten so big in its decades of development, only a few of the engineers had a broad knowledge of the interrelations within that system. Nevertheless, the engineers could readily provide detail on specific functions of the system, like crossbar switching and step-relays; Kotok and the others would hound these experts for information, and the flattered engineers, probably having no idea that these ultra-polite college kids would actually use the information, would readily comply.

  Kotok made it a point to attend those tours, to read all the technical material he could get his hands on, and to see what he could get by dialing different numbers on the complex and little-understood MIT phone system. It was basic exploration, just like exploring the digital back alleys of the TX-0. During that previous winter of 1960–61, the TMRC hackers had engaged in an elaborate “telephone network fingerprinting,” charting all the places you could reach by MIT’s system of tie lines. Though not connected to general telephone lines, the system could take you to Lincoln Lab, and from there to defense contractors all over the country. It was a matter of mapping and testing. You would start with one access code, add different digits to it, see who might answer, ask whoever answered where they were, then add digits to that number to piggyback to the next place. Sometimes you could even reach outside lines in the suburbs, courtesy of the unsuspecting phone company. And, as Kotok would later admit, “If there was some design flaw in the phone system such that one could get calls that weren’t intended to get through, I wasn’t above doing that, but that was their problem, not mine.”

  Still, the motive was exploration, not fraud, and it was considered bad form to profit illegally from these weird connections. Sometimes outsiders could not comprehend this. Samson’s roommates in the Burton Hall dorm, for instance, were nonhackers who thought it was all right to exploit system bug
s without the holy justification of system exploration. After they pressured Samson for days, he finally gave in and handed them a 20-digit number that he said would access an exotic location. “You can dial this from the hall phone,” he told them, “but I don’t want to be around.” As they anxiously began dialing, Samson went to a downstairs phone, which rang just as he reached it. “This is the Pentagon,” he boomed in his most official voice. “What is your security clearance, please?” From the phone upstairs, Samson heard terrified gasps, and the click of a phone being hung up.

  Network fingerprinting was obviously a pursuit limited to hackers, whose desire to know the system overruled any fear of getting nailed.

  But as much as phone company esoterica fascinated Kotok, the prospect of the PDP-1 took precedence. Perhaps he sensed that nothing, even phone hacking, would be the same afterward. The people who designed and marketed this new machine were not your ordinary computer company button-downs. The company was a brand-new firm called Digital Equipment Corporation (DEC), and some of the TX-0 users knew that DEC’s first products were special interfaces made specifically for that TX-0. It was exciting enough that some of DEC’s founders had a view of computing that differed from the gray-flannel, batch-processed IBM mentality; it was positively breathtaking that the DEC people seemed to have looked at the freewheeling, interactive, improvisational, hands-on-über-alles style of the TX-0 community, and designed a computer that would reinforce that kind of behavior. The PDP-1 (the initials were short for Programmed Data Processor, a term considered less threatening than “computer,” which had all kinds of hulking-giant connotations) would become known as the first minicomputer, designed not for huge number-crunching tasks, but for scientific inquiry, mathematical formulation . . . and hacking. It would be so compact that the whole setup was no larger than three refrigerators—it wouldn’t require as much air conditioning, and you could even turn it on without a whole crew of sub-priests being needed to sequence several power supplies in the right order or start the time-base generator, among other exacting tasks. The retail price of the computer was an astoundingly low $120,000—cheap enough so people might stop complaining about how precious every second of computer time was. But the machine, which was the second PDP-1 manufactured (the first one was sold to the nearby scientific firm of Bolt Beranek and Newman, or BBN), cost MIT nothing: it was donated by DEC to the RLE lab.

 

‹ Prev