Multics > People > Stories
19 Feb 2025

Unix and Multics

Tom Van Vleck

Bell Labs in the 1960s

Bell Telephone Laboratories (BTL) was a famous research institution, well-known for many inventions including the transistor and the laser. BTL folks had developed the BESYS operating system for the IBM 704/709/7090, an alternative to IBM's Fortran Monitor System (FMS), in the 50s and 60s, as described in A History of Computing Research at Bell Laboratories (1937-1975), conducted by W. Stanley Brown on 01 May 2022, Computer History Museum.

By the early 1960s, Bell Labs had several IBM 7094s. 7094 users knew each other and exchanged ideas and met at IBM SHARE conferences. In those days, as Doug McIlroy said, "Everybody in the world who did computing knew each other," so the Bell Labs computing group would have been aware of time-sharing ideas and MIT's CTSS system.

Bell Labs Participation in Multics Development

Edward E. David Jr was the Bell Labs Executive Director for Communications Research in 1964. He decided that Bell Labs should join the Multics project. Doug McIlroy wrote, "Ed David knew the folks at MIT, and he and Licklider ... thought that (BTL working on Multics) would be a good idea."

When BTL joined with MIT Project MAC and General Electric's computer department in 1964 to create the Multics project, BTL contributed some of the finest programmers in the world to the team.

The Oral history interview with Doug McIlroy, part 1, conducted by David C. Brock on 30 September 2009, Computer History Museum provides background about the involvement of Bell Labs in the Multics project.

Several of the BTL leaders contributed to the 1965 FJCC papers that were the foundation of Multics design:

Victor A. VyssotskyIntroduction and Overview of the Multics System
Victor A. VyssotskyStructure of the Multics Supervisor
Peter G. NeumannA General Purpose File System for Secondary Storage
Joseph F. OssannaCommunications and Input/Output Switching in a Multiplex Computing System
Edward E. David JrSome Thoughts About the Social Implications of Accessible Computing

Development Process

The development team worked together despite being located in different states. Bell Labs Multicians were provided with time-sharing terminals -- many BTL folks used Teletype Model 37s -- and phone arrangements were set up to make it easy for them to dial into the Project MAC CTSS. (I was an assistant system administrator for the Project MAC CTSS system, and added login accounts for several batches of BTL people as work on Multics ramped up.)

Every Multics developer got copies of all the development documents such as the MSPM, Checkout Bulletins, and repository documents, and all developers were encouraged to provide input and review on any area.

We used telephone and email communication, and occasional trips for in-person meetings. The main code repository was on the Project MAC CTSS machine until Multics became self-hosting, and then was moved to the Project MAC GE-645.

The Multics team overcame multiple problems: for example, the hardware was delivered later than planned, the first attempt at building a PL/I compiler failed and BTL folks had to create EPL in a hurry, and initial Multics performance needed improvement. The story Low Bottle Pressure is an example of how we dealt with a hardware problem in the 60s.

The story The GE-635s at Project MAC and BTL has more detail about how the team developed Multics using CTSS, the GE-635 and GE-645.

Phase One describes the first time we put the whole Multics system together and demonstrated it working on the Project MAC GE-645 in 1967. It took another year before we could use Multics to develop itself without help from CTSS, and I'm not sure if the BTL GE-645 was ever used for development. Bell Labs left the Multics project in March 1969. MIT started providing Multics service to customers in October 1969, and Project MAC and GE continued to develop Multics.

BTL People Who Worked on Multics

Here are the names I have, about half from personal interaction, supplemented by the 1965 Repository document Multics Personnel and Work Assignments at BTL, B0015, and from document distribution lists. Corrections and additions welcome. Most of the BTL people who worked on Multics were at the Murray Hill facility at 600 Mountain Av. A few were at Whippany or Holmdel.

Elizabeth Alpert FSIM; Nancy Angotti Documentation; Lewis Berlent disk; Diana Boyd EPL, 6.36, Linker; Ronald Braun printer; W. Stanley Brown debugging, trap handling; Faith Bugely I/O UIM; Rudd Canaday ported CTSS BCPL to Multics; Thomas Crowley Project manager; Edward E. David Jr Executive Director, Trinity member; Douglas E. Eastwood command language, assembler; Dave Farber EPL, TMG, tasking; Stu Feldman I/O switch; Jim Gimpel EPL, performance monitoring and tracing; Barbara P. Goldberg EPL; I. Bennet Goldberg EPL math library; A. Jay Goldstein page scheduler; Nancy L. Graham EPL runtime; Jim Gray I/O driver; Marion C. Gray numerical analysis; Ralph E. Griswold SNOBOL; Patricia A. Hamilton assembler; Richard W. Hamming numerical analysis; Gwen Hansen GIM; John P. Hyde EPL runtime; Evan L. Ivie I/O switch, code conversion; Chester Jones Fault handling, drum DIM; S. W. Jones Device Utility Package; Arthur Kaiman EPL I/O, editor; Brian Kernighan 6.36, support tools; Dolores Leagus EPL; David A. Levinson 6.36, IOS; Gottfried Luderer System; Henry S. Magnuski system; Wanda S. Mammel numerical analysis; Doug McIlroy EPL design and data layouts; Bob Morris EPL design; Peter Neumann managed Bell Labs developers in Murray Hill, Whippany, and Holmdel, Triumvirate member; J. Crawford Noll file system, disk, tape; Thomas J O'Connor documentation; Joe Ossanna I/O system, TTY37 design; Clem Pease TMG, EPL; Penny J. Peticolas supervisor, Post Mortem and Salvage; Dwight Pfenning EPL I/O; Elliott N. Pinson Scheduler; James F. Poage Holmdel Coordinator; Ivan P. Polonsky SNOBOL; L. Braxton Ratcliff BSA, 6.36, Commands; Robert K. Rathbun printer, drum DIM, IMCV, checksum; Dennis M. Ritchie ported CTSS BCPL to Multics; Jean Scholtz EPL runtime; Judy Serido documentation; T. S. Shao numerical analysis; Robert J. Sobecki command language, I/O switch; David L. Stone printer; Berkeley A. Tague CPU design, EPL code; Kenneth L. Thompson QED, I/O switch; David C. Van Hausen card reader; Victor A. Vyssotsky I/O design, Triumvirate member; Molly R. Wagner File system, tape, I/O switch, Howard J. Weiss disk; Ruth A. Weiss runtime; Richard L. Wexelblat EPL, tasking design; Lonnie Whitehead drum DIM, debugging (Whippany); Robert A. Yates SNOBOL.

I first met Ken Thompson (by phone) because he had written a slick editor for CTSS called QED. It was descended from QED on the SDS-940, but was quite different because Ken had added regular expressions to it, and made many other changes. (Ken had published a paper on compiling regular expressions into machine code just before joining the Multics project.)

Summary of a session of an unidentified conference in 1968 or 1969, apparently a panel discussion in which Joe Ossanna described the status of Multics. (Thanks to Jerry Saltzer.)

End of Bell Labs Participation in Multics

The late Prof. Mike Mahoney of Princeton interviewed several Bell Labs Multics participants; their interviews are available in the Charles Babbage Institute collection. One of these is "Unix: an Oral History" by Gordon M. Brown. In this article, he describes the BTL impatience with Multics progress in 1967-69:

Sam Morgan, director of Computing Science Research at Bell Labs during this period, expressed his own concerns that Multics research was going very slowly and wasting effort, saying: "It was becoming clear to people that Multics was an attempt to climb too many trees at once. The development was moving more slowly than had been expected and users were sighing with varying degrees of pungency."

Consequently, Bell Labs pulled out of the project in March of 1969, leaving GE and MIT to salvage what they could of the system. According to Berk Tague, it was [VP for Research] Bill Baker who made the decision to pull the plug, saying "Like Vietnam, he [Bill Baker] declared victory and got out of Multics." McIlroy echoed these thoughts, mentioning that Bell Labs "had a million dollars worth of equipment in the attic that was sitting there being played with by three people. It became clear that we were a drag on the computer center's budget." This sudden loss of the Multics system was to have important consequences on the direction of computing at Bell Labs and on the creation of Unix.

Creation of Unix by Bell Labs People

Although Bell Labs had dropped out of the Multics project in March 1969, Multicians in Cambridge kept in touch with individual folks at BTL, and we had heard that Ken Thompson and Dennis Ritchie were working on an OS project of their own. We even knew that it had a joke name, Unix, coined by Brian Kernighan, that was a reference to Multics. ("One of whatever Multics was many of" or "Multics without balls.")

There had been a highly regarded ACM SIGOPS Symposium on Operating Systems Principles at Gatlinburg, Tennessee in 1967. The fourth SOSP was held in Yorktown Heights, NY in 1973, and Ken and Dennis presented a paper, The UNIX Time-Sharing System, describing UNIX. Several of us Multicians attended the conference, and sat with the Bell Labs ex-Multicians, and applauded the paper, which was and remains one of the best and clearest pieces of writing in the computer field. There were some other great papers at that conference, but as I remember, the Unix paper won the best paper award.

Rudd Canaday wrote interesting blog entries describing his contributions to Unix, especially the file system.

Continuing Association with UNIX team

When I was working for MIT Information Processing Center in the early 1970s, one project I did was to organize an MIT PDP-11 users' group, and encourage them to look into Unix. The idea of a free, non-vendor-supported operating system was new to them. I invited Dennis Ritchie to come up and talk to them.

Dennis and I went to lunch afterward, and I remarked to Dennis that easily half the code I was writing in Multics was error recovery code. He said, "We left all that stuff out. If there's an error, we have this routine called panic(), and when it is called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"

In 1978, Honeywell chose me to give a speech at a conference in Paris, celebrating the 20th anniversary of INRIA. My talk was titled "An Example of Industry-University Cooperation: Multics." The conference was in the Paris UNESCO building, attended by lots of French scientists. There were little earphones for simultaneous translation at every seat. John Shoch from Xerox PARC spoke before me, and talked about some of the neat things they were doing at Xerox with Unix systems.

After I gave my speech, there were questions from the audience. Someone asked a question in French, which was translated to me as, roughly, "You say that Multics has only 25 sites. There are already 1500 Unix sites. How does that make you feel?"

I said, "I feel proud. It was a privilege to work with Ken Thompson and Dennis Ritchie on Multics, and I am glad to see Unix having the success it deserves." I said more, about the difference in goals of the systems, and about how much easier it was to do things the second time.

Afterward the local Multicians told me my questioner was one of an anti-Multics faction in Bull. It occurs to me now that he was probably more likely pro-Unix than anti-Multics, but in those days there was a lot of fear and with-us-or-against-us thinking, and Multics was fighting for its life as usual. I don't think my answer satisfied either faction.

Similarities

When I finally got a chance to use Unix in 1987, on an Apollo workstation at Tandem, I felt instantly at home. The ls command, control arguments, shell scripts... lots of things felt so similar to Multics that I could go right to work, consulting man pages occasionally to find out what the Unix name of something was.

There were technical borrowings in both directions. (This was before look-and-feel lawsuits and similar foolishness.) Unix has many features that Multics and CTSS had first, and many are obvious translations of Multics features.

UnixMulticsCTSS
lslist (ls)LISTF
linklink (ln)LINK
cpcopy (cp)
pwdprint_wdir (pwd)
cdchange_wdir (cwd)
mailmailMAIL
ifif
loginlogin (l)LOGIN
logoutlogoutLOGOUT
whowhoWHO
manhelp
shellexec_comRUNCOM
roffrunoffRUNOFF

The first time I remember the name "shell" for the function of finding and running a command was in Multics Design Notebook documents by Louis Pouzin of MIT Comp Center. See The SHELL: A Global Tool for Calling and Chaining Procedures in the System and RUNCOM: A Macro-Procedure Processor for the 636 System in the Multics design notebook. (Louis had written a predecessor program called RUNCOM for CTSS. The Multics equivalent is exec_com.) These memos contained the idea of having the command processing shell be an unprivileged user program that parsed a command line, located a program to run, and executed it with arguments. Later documents in the Multics System Programmer's Manual by Doug Eastwood of BTL described the proposed shell. There, commands that return a value into the command line were called "evaluated commands". Later, evaluated commands were renamed "active functions," the name used in Calvin Mooers' TRAC language.

The Unix roff, troff, and nroff commands are direct descendants of Jerry Saltzer's CTSS RUNOFF command, used for Multics documentation. Bob Morris and Doug McIlroy ported that program from MAD to CTSS BCPL and then got the BCPL runoff up on Multics when the IBM 7094 was going away; that code was the ancestor of the machine language roff that Ken and Dennis wrote for the fledgling Unix.

There was some influence in the other direction in the 70s and 80s. For example, Multics "master directories" work very much like Unix mount points.

For more information, see

I have read A Quarter Century of Unix by Peter Salus; he is reasonably accurate about the history that I know personally (I sent him a few corrections).

Update: Unix at 50

The 50th anniversary of the creation of Unix has led to multiple articles. One is Richard Jensen's "Unix at 50: How the OS that powered smartphones started from failure". (His article is based in part on interviews that the late Prof. Mike Mahoney conducted with Unix creators before he died in 2008.)

Such articles often say "Multics failed; the Bell Labs computer guys then invented their own system, Unix, and Unix succeeded." That's tidy, but not the whole story. In March 1969, Bill Baker pulled the plug on Bell Labs participation in the Multics project, not on Multics. Multics development continued, vastly improved the operating system, and led to the sale of a lot of high-end systems until Bull terminated development 16 years later. Multics didn't fail: it accomplished almost all of its stated goals. Unix succeeded too, solving a different problem.

03/21/93, updated 01/25/95, 02/05/95, 01/23/15, 04/29/16, 12/07/16, 12/13/16, 09/03/19, 02/10/25

Many thanks to Jerry Saltzer, Paul McJones, and Doug McIlroy for suggested improvements.