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,
THOR—a 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_Ritchie, Brian Kernighan, Douglas McIlroy, Michael
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.