Chapter 7. BSD and the CSRG
Professor Robert Fabry was on the program at the SOSP where Ken and Dennis delivered the first paper on Unix. He was full of enthusiasm when he returned to Berkeley. When he got back to Cory Hall, his first chore was to attempt to assemble a joint purchase (by Computer Science, Math and Statistics) of a PDP-11/45.
He then ordered a tape from Thompson and, in January 1974, Keith Standiford (a graduate student) installed Unix. As Kirk McKusick tells the tale, Ken had been involved in all the early installations -- but not this one, "though his expertise was soon needed to determine the cause of several strange system crashes." Thompson would phone Keith in the machine room, the phone would be inserted in the 300 baud acoustic modem, and Ken would "remotely debug crash dumps from New Jersey."
The next problem arose because Math and Statistics wanted to run DEC's RSTS. 1 So slices of each day were allocated: eight hours for Unix, followed by 16 hours for RSTS. One of the undergraduates introduced to Unix at that time was Eric Allman.2
"I was taking an introductory OS course," he told me, "and they had been using something called the Toy Operating System on the [CDC Cyber] 6400. But they wanted to get off it and on to Unix on the 11/40,3 where we could only work eight hours a day, and a different eight hours each day. I recall having difficulties. I was reading the manual, and I remember not understanding why you would ever want the echo command. Totally bizarre. Now, of course, I know. Of course, 4th Edition was pretty flaky. It was a system that only a researcher could love. It was slow. It didn't have a lot of tools. Then I got hired by the Ingres project."
The Ingres project of Professors Michael Stonebraker and Eugene Wong was one of the first projects moved to Unix. As they were dissatisfied with the way time had been allocated, they bought their own PDP-11/40 in spring 1974. But there still wasn't enough student time available on the 11/45. In June 1974, Stonebraker and Fabry set out to get two instructional 11/45s for Computer Science. The money was obtained early in 1975, just about the time DEC announced the 11/70, which seemed more suitable (it was announced in March). So they pooled the money. The 11/70 arrived in fall 1975, just when Ken Thompson arrived for his one-year sabbatical as visiting professor. Thompson, Bob Kridle and Jeff Schriebman brought up V6 on the newly-installed 11/70. The "50 bugs" tape (see Chapter 3) was a side-effect.
That same autumn, two new graduate students arrived on the Berkeley campus: Chuck Haley and Bill Joy. They were fascinated by V6 on the 11/70 and began working on the Pascal system that Ken had hacked together. In fact, Haley and Joy improved the Pascal system to the point that it became the system of choice for the students. And when the Model 33 Teletype terminals were replaced by ADM-3 screen terminals, they felt that ed just wasn't good enough. So they developed ex from Coulouris' em (see Chapter 4).
Meanwhile, in a different part of the universe, Kirk McKusick, at that time a "JCL hacker at Cornell, was exposed to Unix by a friend who was studying at the University of Delaware.
"He showed me how you could play games on it," McKusick told me, "so I really didn't have any exposure to Unix till I got out to Berkeley in 1976. I came out in the spring because I was looking at graduate programs to go to, and they were on spring break, so there weren't a lot of people around. But I came across Bill Joy in the computer room where he was busily hacking away and he said 'Hi, I'm Bill Joy. This is what we're working on here - a Pascal system that runs under Unix.' And I said, 'What can you do with Unix?' So he said, 'You can edit files and compile files and you can play chess. Let me log you in.' So I proceeded to play chess the rest of the afternoon. And I decided that I liked Berkeley and that's where I'd go."
When Thompson returned to BTL at the end of the summer of 1976, Joy and Haley turned their interests toward the kernel. But word of the Pascal compiler got around. And at the beginning of 1978, Joy began producing the Berkeley Software Distribution (BSD). He offered a copy to Tom Ferrin (at UCSF) in a letter dated 9 March 1978. The "license" was on one side of a sheet of paper. Tom signed it on 13 March. The tape (in "standard tp format, 800 bpi...") consisted of:
a) Unix Pascal system
Bill Joy, acting as "distribution secretary," sent out about 30 "free" copies of BSD in early 1978. By mid-year enough had been done (the Pascal system had been made more robust, the system could be run on the 11/34,4 and vi and termcap5 had been written), that a "Second Berkeley Software Distribution" was put on tape.
Bill answered the phone, put together the distributions, and incorporated user feedback into the system. He also mailed out nearly 75 copies of 2BSD. 3BSD appeared in December 1979.
Kirk McKusick has told the tale of the CSRG.
In the fall of 1979, Bob Fabry responded to DARPA's interest in moving towards Unix by writing a proposal suggesting that Berkeley develop an enhanced version of 3BSD for the use of the DARPA community. Fabry took a copy of his proposal to a meeting of DARPA image processing and VLSI contractors, plus representatives from Bolt Beranek and Newman, the developers of the ARPAnet. There was some reservation whether Berkeley could produce a working system; however, the release of 3BSD in December 1979 assuaged most of the doubts.
With the increasingly good reputation of the 3BSD release to validate his claims, Bob Fabry was able to get an 18-month contract with DARPA beginning in April 1980. This contract was to add features needed by the DARPA contractors. Under the auspices of this contract, Bob Fabry set up an organization which was christened the Computer Systems Research Group, or CSRG for short. He immediately hired Laura Tong to handle the project administration. Fabry turned his attention to finding a project leader to manage the software development. Fabry assumed that since Joy had just passed his Ph.D. qualifying examination, he would rather concentrate on completing his degree than take the software development position. But Joy had other plans. One night in early March he phoned Fabry at home to express interest in taking charge of the further development of Unix. Though surprised by the offer, Fabry took little time to agree.
The project started promptly. Tong set up a distribution system that could handle a higher volume of orders than Joy's previous distributions. Fabry managed to coordinate with Bob Guffy at AT&T and lawyers at the University of California to formally release Unix under terms agreeable to all. Joy incorporated a variety of changes and 4BSD was released in October 1980. 6
(The last CSRG system was 4.4BSD-Lite, Release 2, June 1995. Soon thereafter, the CSRG was disbanded. Another era was over.)
1Resource Sharing Time Sharing Extended, a multi-user OS for the PDP-11 series, generally programmed in "Basic Plus."
2 Inventor of sendmail.
3 The 11/40 was a higher performance version of the 11/20, introduced in January 1973. The 11/45 was a faster, microcoded 11/20, introduced in June 1972.
4 The 11/34 was a cast-reduced version of the 11/35.
5 vi was the result of the arrival of the ADM 3a terminals; termcap was born when Joy decided to consolidate screen management, using an interpreter to redraw the screen.
6 from Marshall Kirk McKusick, "20 Years of Berkeley UNIX," in Open Sources (O'Reilly, 1999).