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.
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.
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 multicians.org 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.