In 1980, I quite the doctorate program at Caltech and became a staff member in Ed Stone’s Lab. Rob Pike left to join Bell Telephone Laboratories. A year later Steve Johnson from Bell was visiting the campus, and he stopped by my office, asked me to lunch and then invited me to interview at Bell Labs. One nice thing about the early days of computing was the informality of the field. PhDs in Computer Science were still somewhat rare (and not necessarily desirable), so essentially my résumé was the source code of my VAX lisp interpreter.
In 1981, I started as a research assistant at Bell Telephone Laboratories. Oddly enough, many academic computer scientists eschew programming, viewing it as a form of low manual labor. This viewpoint was much more common at universities than at Bell Labs; but fortunately, there were a few prima donnas, or I wouldn’t have had a job. My largest project was a distributed database system, which generated papers for a couple researchers…my name wasn’t on any of them.


Bell Laboratories, Murray Hill


John Limb


Michael Merritt

My first publication came about while implementing distributed deadlock prevention in our database system. Deadlock is when one program has A and wants B, while another program has B and wants A. They will wait forever, unless one program detects the situation and gives up. I was asked to implement “wound-wait”, which sometimes causes programs to give up when they don’t really need to. I thought about this for a while and came up with a very different solution. I showed it to Michael Merritt, another researcher and good friend, and after some discussion at his blackboard, we found a fault. I came back the next day with an improved version, and we proved it was correct and wrote a paper.

The 1984 PODC conference was an exciting experience. I flew to Vancouver, and realized as I strolled through the airport that no one had told me where the conference was being held. Fortunately, the airport information booth knew which hotel it was in. Most of the presentations were fantastically theoretical and mathematical. My vugraphs were hand drawn with colored pens and contained not a single equation. I remembered a bad talk at Caltech, where Feynman, Zweig and Gell-Mann had badgered the speaker until he stopped and walked off the stage! But everything went fine, I just told people how we solved a problem, and I was comforted to see smiling faces in the front row.

Our paper had gotten into the PODC conference on distributed computing, but unfortunately, my boss’s paper had not. She was very unhappy and told me I was disloyal for not giving the idea to her. Our department head was a no-nonsense Australian engineer named John Limb, and he just chuckled over it. A couple years later, I was promoted to full independent researcher, and John was a strong supporter.

Bell Labs had some great managers like Limb, and before you roll your eyes at that, let me tell a story: A bright but volatile scientist in our group got frustrated and quit his job. A few weeks later, he called his department head to complain about how disappointed he was in the Silicon Valley company he joined. “Well why don’t you just come back”, said his boss. Foreseeing this, he had tossed the letter of resignation into a desk drawer, and no one else at Bell Labs ever knew about it. A few days later, the scientist was in his office again.

Mailer Science

My first taste of corporate culture at AT&T came when John Limb brought me to a meeting about executive use of email. Email had been around for a long time, but up until then it was a computer-nerd thing. For about half an hour, men in suits puffed on pipes, and told amusing anecdotes. Then they turned to Limb, “can you set up email for us?”. Limb turned to me, I said something about UUCP, and they all nodded.
Now came the real problem: “Executives don’t type”. Computers have keyboards, they look like typewriters, only secretaries used typewriters; therefore, executives could not use computers. The logic was inescapable, but after more discussion they had a plan: secretaries would operate the email and give printouts on paper to the executives.

Someone gave us an email address to test, and the next day I sent him a message. No reply. I tried the next day, but still no reply. The next day, Limb came into my office and told me he got a call complaining that some presumptuous technical assistant had been sending email to an important director. Limb chuckled once again, “I guess their email works!”

Electronic mail looks deceptively simple, and hackers who work on the problem consistently underestimate and botch the job. Mailer Science was the jargon at Bell Labs for that special brand of bad programming that goes into email software. Peter Honeyman did some good work on UUCP, and tightened up its security. But the SENDMAIL program from UC Berkeley was the source of countless problems. Today, spam and viruses are possible, in part, because of bad security in Berkeley’s SMTP protocol, still used by UNIX systems.

When Robert Morris Jr. brought down most of the internet, with a fast reproducing worm, it was a misfeature in SENDMAIL that he primarily exploited. And unbeknownst to me, he also exploited a program I wrote. I had recently completed a high speed implementation of the DES encryption algorithm, and I knew a slightly modified form of DES was used by UNIX to verify passwords. Robert and I altered my code and created a program that could check passwords 20 times faster than the system routine. He used this in the worm to guess passwords, by rapidly trying about 30,000 words.

In the early 1980s, there were numerous computer networks, usually centered around particular brands of computers. BITNET was operated by IBM, the ARPANET was mostly made up of DEC PDP computers running the commercial TOPS operating system, MECC and PLATO were examples of huge networks run by Control Data. The UUCP program in UNIX allowed computers to network (sort of) over ordinary phone lines, mainly to exchange email. A system of “netnews” forums was also using the same transport system as email. I remember reading all of netnews every day, but few years later netnews (USENET) traffic was thousands of times larger. This email network was strongly supported by UC Berkeley, Bell Labs and DEC, and our lab’s machine “allegra” was a key hub.

An Ever Widening Tangle of Cables

Several technologies played a critical role in creating the internet. One was support for the TCP/IP internet communication protocol on UNIX, the most popular OS by then. This was done first at the Wollongong company, and a couple years later in Berkeley UNIX. Another was Metcalfe’s invention of Ethernet, which made it easy and cheap to plug minicomputers together. Finally, CISCO built IP routers, which allowed companies and universities to gang together their ethernets, into organization-wide networks.


Leonard Bosack: CISCO routers


Bob Metcalfe: Ethernet


Vint Cerf: TCP/IP

From what I witnessed, the internet grew organically, bottom up, by this process of hooking machines together, with ethernet and commercial routers. National and international connections were made by leasing T1 or T3 lines from the phone company, and as demand for long-distance bandwidth grew, the modern system of backbones and hubs evolved. Email connectivity had preceeded internet connectivity, playing an important role in establishing a UNIX user community.

Our lab was an early adopter of UNIX internet techniques, using Berkeley UNIX (before “sockets”), Wollongong TCP/IP, and ethernet. John Detraville, Bill Schell and I were the primary hackers who put that together, installing servers and pulling yellow ethernet cable down the hallways (well, until the Union told us we had to let them do it). When things stopped working, we learned to use a reflectometer to locate bad connections somewhere above the ceiling tiles or under the floors. John had a very accurate vision of where computers were heading. Thanks to him, we were very early to replace VAXs and terminals with SUN workstations, buying from Cadlinc at first and then SUN Microsystem. This was a general trend everywhere, a second revolution in the hardware industry, with microprocessor-based workstations supplanting the minicomputer.

We took some flak within Bell Labs for operating an internet. AT&T’s engineers were brilliant, but they viewed the internet as amateurish and inconsequential. Frankly, AT&T’s networking technology was way more sophisticated, based on lossless packet transmission through token rings and photonic switches. But Bell Labs dropped the ball when it came to providing a glue to interconnect computers practically. TCP/IP might not have been the ideal solution, but it worked. The big competator was OSI, designed by standards committees and professors, it became so elaborate and overdesigned that no one ever got it to work efficiently. OSI was a multi-billion-dollar misstep for Europe, and only Finland was wise enough to build a national network based on TCP/IP.

We also took flak for running Berkeley UNIX in our lab (1138). By now, AT&T was selling a version of UNIX called System V, and they were unhappy that nobody in Bell Laboratories would run it. The folks who invented UNIX, in our sister lab (1127) were unhappy that we were not running their UNIX Version 8. But we wanted to track what the “real world” was doing. From this time on, the evolution of UNIX was largely dominated by SUN Microsystems, where most of the key developers of Berkeley UNIX went.

Histories of the internet tend to privilage the role of academics and “hackers”, while not giving much credit to the engineers and corporations who solved important hard technical problems. As the internet grew in scale, CISCO and other companies had to invent replacements for the simple ARPANET routing algorithms. The original TCP/IP is just one of hundreds of transfer protocols today, like PPP, Microsoft Point-to-Point Compression (MPPC), and others, needed to pass data efficiently over phone lines, television cables and high-speed trunks. It’s romantic to think that young “hackers” really did everything, and for various reasons industry pundits have written books about that. Probably no one will ever write a book about all the hard work and all the millions of large and small inventions that professionals have made.

In the mid 1980s, UNIX and the C programming language spread rapidly, consuming the academic and hacker cultures centered around DEC and IBM operating systems and the LISP language. The MIT AI Lab was particularly marginalized by the success of UNIX, and frustrations there smoldered for years to come. An anti-unix movement called GNU began, but all it produced were duplicates of the UNIX commands (bison for yacc, gcc for pcc, groff for troff). An operating system kernel was promised but never completed. GNU’s founder Richard Stallman visited the hated Bell Labs, and many of us were disturbed by his behavior and personality. I thought he was a megalomaniac. When Rob Pike made a reciprocal visit to MIT, his talk was disrupted by heckling from Stallman and his followers.

Advertisements