CIO Blast from the Past: 40 years of Multics, 1969-2009

Multics pioneered hierarchical file systems, file access controls, and dynamic linking on demand
Multics lead developer and Turing Award winner, MIT's Professor Fernando J. Corbato [photo by Jason Dorfman, Creative Commons Attribution and ShareAlike licence]

Multics lead developer and Turing Award winner, MIT's Professor Fernando J. Corbato [photo by Jason Dorfman, Creative Commons Attribution and ShareAlike licence]

October 2009 marked an important milestone in the history of computing. It was exactly 40 years since the first Multics computer system was used for information management at the Massachusetts Institute of Technology.

Multics (Multiplexed Information and Computing Service) is regarded as the foundation of modern time-sharing systems. Multics was the catalyst for the development of Unix and has been used as a model of operating system design since its release four decades ago.

See related slideshow: CIO Blast from the Past: 40 years of Multics |

Professor Fernando J Corbato was the leader of the Multics project at MIT and also led the team that developed Compatible Timesharing System (CTSS) in 1961, one of the first timesharing systems and the research precursor to Multics.

I do not think anyone imagined 40 years ago the variety and multitude of changes that have occurred in the computing field today. I won’t try to guess the future, but am grateful that Multics seems to have a legacy of great descendants.

Corbato -- or “Corby” as he is known by his Multics peers -- went on to receive a coveted Turing Award in 1990 for his work on time-sharing computer systems and coined "Corbato's Law" which states the number of lines of code a programmer can write in a fixed period of time is the same regardless of the programming language. Multics was used in production for more than 30 years, but its most enduring legacy is the idea of time-sharing, now a universal concept in computing.

In this edition of CIO Blast from the Past we talk to Fernando Corbato about the early days of Multics, why it was so influential, open source and software development practices, and how cloud computing is a modern incarnation of Multics’ time-sharing philosophy.

CIO’s Blast from the Past series has previously covered 60 years of cryptography and 110 Years of IBM technology.

1. Describe the early days of Multics research and development. What was it like developing a time-sharing system from scratch on mainframe computers?

One of the key reasons for developing Multics was the incredibly difficult programming environment we had in those days. There were only mainframe computers, and programming was typically done with punched cards and batch-processing runs. The prospect of time-sharing was proposed and eloquently advocated by John McCarthy.

At MIT we had already built CTSS (The Compatible Time-Sharing System) as a demonstration system. It was out of this environment that Project Mac was formed at MIT with the vision of exploring and enhancing interactive computing.

Multics was first described in six papers presented at the 1965 Fall Joint Computer Conference and its development is wonderfully chronicled at by Tom Van Vleck.

Developing Multics turned out to be very hard, because after putting in all the hardware changes we needed for time-sharing, we found we had a significantly different machine, the GE 645. This in turn forced us to write a new assembler, and since we planned to program the system in a higher level language, a new compiler too.

We also were handicapped by the geographical dispersion, with our Bell Lab collaborators over 200 miles away in New Jersey and the GE Computer Division in Phoenix nearly 3000 miles away. The key thing that saved us was the availability of CTSS, which allowed remote access via telephone lines from the remote sites.

2. If you were tasked with doing the same again today, what would you have done differently? How do you think your approach would have been different?

We were convinced at the time we needed a higher-level language to program the bulk of the system to amplify the effectiveness of each programmer. I still think that was a wise decision.

In hindsight we might have picked a simpler language than PL/I, since it was a work in progress and no one had ever written a compiler for it when we started. Eventually, however, Bob Freiburghouse and a small team did some heroics and pulled it off several years later.

3. When Multics went live in October 1969 at MIT it quickly became the most widely used time-sharing system. What were some of the practical applications of Multics throughout the 40 years of its education and commercial use?

Multics was designed to be a general-purpose, time-sharing system so the focus was less on the novelty of the applications and more on the ease of developing and building applications and systems.

Probably the biggest legacy was Unix. [It was] superbly developed by Ken Thompson who, as one of the Multics developers was influenced by many of the Multics features, especially the hierarchical file system, file access controls and paging.

The biggest lack in Multics was graphical display technology in the terminals since display technology in the 1960's had not matured to the level we see today with personal computers.

Page Break

4. What are some of the features we enjoy in modern computing that were first developed (or conceived) with Multics? Many people know about things like multi-tasking, virtual memory, and component redundancy, but maybe there are some others that you could tell us about?

I would mention hierarchical file systems, file access controls and dynamic linking on demand.

5. More specifically, what in your view was the most profound way Multics influenced the development of Unix? Unix itself went on to influence modern operating systems like Linux and Mac OS X. Was Unix an improvement over Multics in terms of hardware utilization?

Multics was built top-down, that is, we had to lay out the full vision of the system before we started on the software. Unix had the chance to take a new run at the problem and build the system up from the bottom "brick by brick".

Ken Thompson was extremely shrewd in keeping the system lean but not rejecting ideas from Multics just to be different. Both Multics and Unix made effective use of their hardware and were useful.

6. There’s and old saying “those who do not understand Unix are condemned to reinvent it, poorly”. Does that sum up the excellence of the Unix design or the lack of operating system innovation since Unix?

I think the remark is a testimonial to the overall coherence of the Unix design and reflects that Unix was built by a small group.

7. If computing were to “move beyond” Unix-like (and Windows) operating systems where do you think it would go?

Efficiently harnessing parallelism is still a challenging problem that is not well addressed in contemporary systems. A radically different hardware architecture, such as Dataflow as advocated by Jack Dennis or the Monsoon machine of Arvind, certainly changes the landscape of operating systems.

Other issues are the indefinite archiving and retrieving of information, which are still very challenging problems. Also there are vexing matters of trust in the "Wild West" that is the Internet.

8. According to Wikipedia, the U in Unix (originally Unics as a play on Multics) is rumored to stand for uniplexed as opposed to the multiplexed of Multics, underscoring the designers' rejection of Multics' complexity in favor of a more straightforward and workable approach for smaller computers. Is this true? Are there any stories you have relating to the choice of the names Multics and Unix?

Multics was meant to be a serious name that suggested the intent of the system.

We specifically avoided any name that could be viewed as "cute" or be associated with any of the participants: MIT, Bell Labs or GE. Of course systems developed by small groups often had names tweaking older systems.

Our own CTSS (The Compatible Time-Sharing System) was joshed by the developers of ITS (The Incompatible Time-Sharing System) created in the AI Lab of Project Mac on a DEC PDP-6 (and later on a PDP-10). But basically Wikipedia has it right. Unix was a friendly pun on Multics.

Page Break

9. Multics was developed in PL/I which the designers described as "maintainable". Since then we’ve seen the rise of C and C++ for low-level operating system development. What is your assessment of modern software development in C/C++ compared to the Multics and mainframe-era tools?

When we started Multics, machine language programming was the norm for building systems. Our choice of PL/I was probably too ambitious, but we did manage to make it work out.

We of course could not have used C because Ken Thompson had not yet invented it! In fact, Ken who had learned about the language BCPL (installed on CTSS by its inventor, Martin Richards) while working on Multics, was influenced to develop the language B for his own use.

When Bell Labs had to withdraw from the Multics project, Ken began to use B to develop Unix and soon the language evolved to what we now know as C.

But coming back to your question, today's programming environment is often one of modular composition which is one reason that systems, such as Windows, have become incredibly huge. So I do not think the choice of programming language is the only issue.

10. Another thing Multics pioneered was the concept of software being “open” and not tied to any one particular hardware platform. At the time did you envisage the operating system and application software market would blossom the way it did?

In those days, and still today, each system is "glued" to its own hardware architecture. In particular, the requirements for segmentation, paging and memory protection were not available in other hardware platforms. In any case, we viewed the Multics system as an example, not as the system for all time.

11. According to MIT, its last Multics service was shutdown in 1988 -- what was it like seeing it turned off? What was it doing and what was it replaced with?

Of course it was sad seeing Multics turned off at MIT, but the economics of distributed computing had changed. In particular the hardware base was not being modernized. At MIT Multics was used as a general-purpose computer by a wide variety of researchers.

By 1988, the Internet and local area networks were in full flower, so that many locally managed machines were already in place and widely used.

12. The last Multics system ever was shut down in 2000, which meant it lasted through 35 years of practical service. What’s your assessment of the longevity of Multics and do you think modern operating systems can last so long?

The real legacy of Multics was the education and inculcation of system engineering principles in over 1400 people directly associated with operating, maintaining, extending and managing the system during its lifetime. Because we made documentation and publications a mainstay of the project, countless others have also been influenced.

13. Could Multics have been “modernized” to keep it going even longer the same way modern operating systems are continuously ported to new architectures and adding new features?

Given a continual stream of new hardware, I believe Multics could have been migrated. But you are asking an economic question. Without a large user base and a promising business plan, it is unlikely that any company would make such an investment in today's competitive world.

In any case, today most modern hardware changes are just "tweaks" of the previous design, so that moving the operating system is much simpler.

Page Break

14. The source code of Multics MR 12.5 (November 1992) has been provided to MIT. What is it used for now and is it still relevant to people looking at operating system design?

The person to answer this question would be Roger Roach who managed and maintained the MIT version of Multics for many years and was instrumental in making the system listings public.

The general goal was to allow open inspection of all the machinery that was the system to any interested person. In a similar vein, Tom Van Vleck has taken a very inclusive historian's view of the project in his monumental compendium which is the Web site:

15. More generally, what do you think of the modern open source movement for operating system (and generally software) development? Have things changed much in the past 45 years of software research and development? Of course, nowadays we have the Internet which makes collaboration easier, but has the underlying concept changed much?

Open software, in contrast to proprietary software, is good since it minimizes mysteries. But as the tools and environments have improved and expanded over the last several decades, so have the sizes of software projects vastly mushroomed.

Some of this increase in size is just the inevitable accretion of new features offered to users, but I suspect some of it is bloat caused by too many modules overwhelming the programming team.

16. Another emerging trend in computing is the concept of grid or "cloud computing". Again, this is not new, but it has risen to prominence in recent years as suppliers offer computing capacity and applications "on demand". This is like time-sharing of computer resources for the public and a way of "continuous operation analogous to that of the electric power and telephone companies", which was a Multics design goal. What are your thoughts on public cloud computing and whether the model is a good one as more people adopt it?

Cloud computing sounds like a resurrection of time-sharing, but with important differences. A key issue is the integrity and physical location of the stored data. Also who keeps the data and how much can you trust them are fundamental questions that seem to be unaddressed. The descriptions I have seen of cloud computing gloss over these questions.

17. Where to now for Multics? What would you like to see happen with it over the next 40 years? The Web site seems to be keeping an active interest in all things Multics.

The future of Multics lies in its legacy, namely, the generation of people who directly learned from developing and using it. In addition the experience of designing and building Multics documented by its papers, manuals and books, serve as a significant case study for the future, for many of the lessons learned, apply to building any ambitious system.

The recent publication of the book "Principles of Computer System Design" by Frans Kaashoek and Jerry Saltzer (Morgan Kaufman, 2009) is an excellent example.

Saltzer began MIT's course 6.033, on the engineering of computer systems, in 1968. Kaashoek, who joined Saltzer when he came to MIT, continues to develop this fundamental course. 6.033 is also part of the OpenCourseWare content that MIT offers online which, includes chapters of the new book. Pretty exciting stuff!

I do not think anyone imagined 40 years ago the variety and multitude of changes that have occurred in the computing field today. I won’t try to guess the future, but am grateful that Multics seems to have a legacy of great descendants.