Who invented Timesharing?

Les Earnest <les at cs.Stanford .edu>

2016.03.26


This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

The feasibility of interactive computing first came to light as an accidental spinoff of the SAGE air defense system, which was the first real time computer system. The principal tasks of the computers in each SAGE Direction Center were to process radar data as it came in so as to update estimates of the positions and velocities of all aircraft in the sector and then compute guidance commands for airborne manned interceptors and missiles. The computer also had to perform a number of ancillary tasks such as managing communications over all of its data links and responding to operator actions such as button pushes and light gun activations, used to initiate point-and-click operations. All of these processes were put into one big program loop that took about 2.5 seconds per cycle.

That was a rather slow response time by modern standards but it was blazingly fast compared with batch processing systems then in use. Those of us who designed SAGE talked about the idea of making general purpose computer systems that could be used for programming, debugging and computing, but none of us figured out a good way to do it.

McCarthy shows the way. Fortunately a young MIT professor who had gotten to see the prototype SAGE system in action and who wanted to be able to do interactive computing for his research in artificial intelligence figured out a way to do it and wrote a memo that inspired several groups at MIT to build such systems.

John McCarthy, MEMORANDUM TO P. M. MORSE PROPOSING TIME SHARING, Memorandum to P.M. Morse, 1959 Jan. 1.

I gave a talk on this, so you can either read the account below or watch a seven minute video.

L. Earnest, How John McCarthy accidentally started uniting the World, 7 minute video, 2012 Mar. 25

In order to develop an interactive network such as the Internet we first needed interactive computers. In the 1950s the only way to do that was to let people use computers one at a time. However computers of that era typically cost a million dollars each, which made that approach rather impractical.

As a result of Moore’s Law the cost of computers came down enough by the 1980s so that personal computers began being used widely. Thus unless something else happened in the meantime the development of computer networking would likely have started by the end of the 1980s, about twenty years later than it actually happened.

John McCarthy’s memo, cited above, inspired a number of groups in the MIT community. One of the first to embrace the timesharing idea was Lick, who by then was working at Bolt, Baranek and Newman (BBN), a consultancy firm with close ties to MIT.

J.C.R. Licklider, "Man-Computer Symbiosis," IRE Transactions on Human Factors in Electronics, March 1960.

The first demonstration of timesharing feasibility was accomplished by an MIT group led by Prof. Fernando Corbato. They got it going in November 1961 and later made an operational version for a slightly modified IBM 7094 in October 1963 under the name CTSS (Compatible Time Sharing System), which became the basis of MIT’s famous Project Mac. The “compatible” term referred to an old 709 batch processing system that it emulated to facilitate migration to the new world of timesharing.

F. J. Corbató, M. M. Daggett, R. C. Daley, An Experimental Time-Sharing System, IFIPS 1962, Munich.

Early on, Ed Fredkin joined Lick’s group at BBN and John McCarthy was hired as a consultant. At the instigation of Fredkin, they undertook the development of a demonstration timesharing system using the first PDP-1 computer made by DEC and got it going in the summer of 1962.

Another timesharing system development was initiated by MIT Prof. Jack Dennis using a PDP-1 computer that had been donated to MIT by DEC. Beginning in 1964 a timesharing system called APEX was put together on the TX-2 computer at Lincoln Lab under the guidance of Larry Roberts using a small number of consoles with graphics capability.

Still another early timesharing system was put together beginning in 1964 at the System Development Corporation in Santa Monica, California, using the one-of-a-kind Q-32 computer that had been built by IBM for an improved version of SAGE that was not built. The next year it was used in an experimental two-node network tied to MIT’s TX-2 timesharing system.

About the same time a display-based timesharing system called THOR, using a DEC PDP-1 computer and eight CRT terminals made by Philco, was assembled by John McCarthy, who had moved to Stanford University in late 1962, and his students.

J. McCarthy, D. Brian, G. Feldman, J. Allen, THORa display based time sharing system, Proc. Spring Joint Computer Conference, 1967.

The first commercial timesharing system was the DEC PDP-6 which was partly designed by one of McCarthy’s former students, Alan Kotok. Its timesharing system closely followed the design of MIT’s CTSS system and began working in 1965.

Thus John McCarthy’s idea on how to build general purpose timesharing systems was turned into reality by several groups associated with MIT and others. It is possible that if McCarthy had not come up with that idea that someone else would have eventually figured it out but it is not clear how long that would have taken.

If you believe in the old saying that “Necessity is the mother of invention” you should be aware that the gestation period of such mothers sometimes exceeds 1,200 years, as discussed here:

L. Earnest, Why was cycling not included in the ancient Olympics? Cyclops USA, 2004 Aug. 

Second generation timesharing. During the late 1960s a second generation of timesharing systems began to be developed as this idea spread. However from here on I will not try to be comprehensive but will talk about just those that got my attention.

The second generation began at MIT with the development of Multics, a cooperative project between MIT, General Electric (GE) and Bell Telephone Labs that was managed by Profs. Fernando Corbato, Jack Dennis and others. Unfortunately Multics became very elaborate and fell progressively further behind schedule. Bell Labs pulled out of the project in 1969 but it was kept going for years for no particularly good reason.

A more successful system came out of Project Genie at the University of California, Berkeley (UCB). It used a modified version of the SDS-930 computer that came to be called the SDS-940.

DEC created a higher performance second generation timesharing system based on their PDP-10 processor and the TOPS-10 operating system beginning in the late 1960s.

By 1966 IBM management decided that they should get into the timesharing business and announced the IBM 360/67 computer, which was to be delivered initially as a conventional batch processing machine but with a promise to provide a timesharing system called  TSS/360. A number of universities, including Stanford, foolishly bought into that promise and paid for it, as TSS/360 fell progressively further behind schedule and was abandoned in 1967, reportedly because of the "second system syndrome" according to a person who led that effort:

F.P. Brooks, The Mythical Man-Month, Addison-Wesley, Reading MA, 1995.

Thereafter IBM management seemed to pretend that timesharing was actually a bad idea while the rest of the world progressively embraced it. Later on IBM management stubbed their toes even more severely when they entered the personal computer market, as discussed further on.

Third generation timesharing. The next generation was started by some Bell Labs people who had been involved in the Multics project and wanted a much simpler and cleaner system. By keeping their project hidden from management for a time they were able to create a rather elegant system that came to be called Unix. It was initially created in 1969 and by 1973 was recoded in the C programming language. The principal people involved were Ken Thompson, Dennis_RitchieBrian KernighanDouglas McIlroyMichael Lesk and Joe Ossanna. Among its nice features, Unix allows users to link multiple processes, front-to-back, so that a wide range of things can be done in a single run.

A somewhat more advanced version of Unix, called BSD, was developed at U.C. Berkeley, initially by Bill Joy, who had earlier been involved with the SDS-940 project and would later adapt BSD to the Sun Microsystems workstations. This project ran from 1977 to 1995 and was mostly funded by IPTO.

Fourth generation timesharing. The GNU Project, started by Richard Stallman at MIT in 1983, set out to create free software mostly through the efforts of volunteers. Extending that effort, Linus Torvalds, created a Unix-like operating system called Linux beginning in 1991 that is widely used and still moving forward today.

Name changes. While computer networking initially involved only timesharing systems, the later appearance of personal computers and even smaller devices connected to the network changed the way that many people connected to the network but network services continued to rely mainly on timesharing systems, which came to be called “servers.” Recent marketers have tried to pretend that they have invented a new kind of service by referring to “cloud computing” but that is actually plain old timesharing.