Compatible Time-Sharing System
The Compatible Time-Sharing System (usually CTSS, for short) was a ground-breaking operating system, the first time-sharing OS to be used in service.
The 'compatible' refers to the fact that it could simulate the Fortran Monitor System, the batch OS previously run on the IBM 7090 and IBM 7094 mainframe computers on which CTSS ran.
CTSS provided access to users on terminals connected to asynchronous serial lines, both local, and remote (via modems). It had a file system which gave each user a directory in which they could keep their files, but it also allowed sharing of files between users.
It was similar to later time-shared systems, in that typing a command name caused that program to be loaded in from disk and run, but the command interpreter was part of the OS, not a separate user program.
Among the many important applications which were created for CTSS, along with the usual compilers, assembler, etc, were:
- RUNCOM, which allowed sequences of commands kept in a file to be run; this was part of the inspiration for the separate command interpreters, and their command file capabilities, of Multics and UNIX
- TYPSET and RUNOFF, an editor and type-setting program, the inspiration for the later roff of Multics and UNIX
- MAIL, one of the first electronic mail systems
It was also used as the development platform for Multics; a number of tools used in bringing up Multics were written for CTSS, including a cross-compiler, etc.
History
The concept of time-sharing, as a way to improve the productivty of writing programs, had been discussed at MIT for some time, with a 1959 memo from John McCarthy being influential. A 'proof-of-concept' prototype was demonstrated at MIT on a lightly-modified IBM 709 computer in 1960.
Work on what became CTSS itself started in 1961, running on a modified IBM 7090 computer at the MIT Computation Center. The result was first demoed in November, 1961, handling four users, by swapping to magnetic tape.
During 1962 and 1963, the system was improved and extended, and finally entered full service in the summer of 1963. Project MAC purchased their own own 7094, which was delivered in October 1963, and CTSS came up on it in November 1963. The Computation Center machine was upgraded to a 7094 in 1964.
In its final form, CTSS ran on two modified 7094s at MIT; the so-called 'red machine' at Project MAC, and the 'blue machine' at the MIT Computation Center. (The names referred to the color of the side-panels on the machine.) The modifications included:
- a interval timer(to allow compute-bound user processes to be interrupted to allow other users to run;
- memory boundary and relocation registers
- a second 32K main memory bank; the CTSS supervisor was in what was called 'bank A', and user programs were in 'bank B'
- a mode bit in the CPU, to prevent users from executing I/O instructions (which trapped to the CTSS supervisor, for users)
The 'blue' machine at the Computation Center was returned to IBM in late 1968, and was replaced by the other, which soldiered on until it became too expensive and difficult to maintain. It was finally shut down on July 20, 1973.
Further reading
- An Experimental Time-Sharing System - The first paper about CTSS, from May 3, 1962
- The MAC System: A Progress Report MAC-TR-12, Robert M. Fano, October, 1964 - A later version of CTSS
- The IBM 7094 and CTSS - Contains many links to original documents
- Project MAC - Contains a lot of information about CTSS and its origins