Difference between revisions of "Compatible Time-Sharing System"

From Computer History Wiki
Jump to: navigation, search
m (External links: +CTSS: the seminal system that "taught the world how to do time-sharing.")
m (Add some links)
Line 10: Line 10:
  
 
* 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]]
 
* 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
+
* [[TYPSET]] and [[RUNOFF]], a [[text editor]] and [[word processor|type-setting]] program, the latter an inspiration for the later [[roff]] family of Multics and UNIX
 
* MAIL, one of the first [[electronic mail]] systems
 
* MAIL, one of the first [[electronic mail]] systems
  
Line 17: Line 17:
 
==History==
 
==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.
+
The concept of time-sharing, as a way to improve the productivity of writing programs, had been discussed at [[Massachusetts Institute of Technology|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 at the MIT Computation Center in 1961, running at first on the 709; the result was first demoed in November, 1961, handling four [[user]]s, by [[swapping]] to [[magnetic tape]] (with one [[magnetic tape drive|tape drive]] per user). The 709 was upgraded to a IBM 7090 beginning in the spring of 1962, with the changeover complete by the late summer.  
+
Work on what became CTSS itself started at the MIT Computation Center in 1961, running at first on the 709; the result was first demoed in November, 1961, handling four [[user]]s, by [[swapping]] to [[magnetic tape]] (with one [[magnetic tape drive|tape drive]] per user). The 709 was upgraded to a 7090 beginning in the spring of 1962, with the changeover complete by the late summer.  
 
   
 
   
During 1962 and 1963, the system was improved and extended, and finally entered full service in the summer of 1963. [[Project MAC]] acquired their own own 7094, which was delivered in October 1963, and CTSS came up on it several weeks later. The Computation Center machine was upgraded to a 7094 in 1964.
+
During 1962 and 1963, the system was improved and extended, and finally entered full service in the summer of 1963. [[Project MAC]] acquired their own 7094, which was delivered in October 1963, and CTSS came up on it several weeks later. 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:
 
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:
Line 27: Line 27:
 
* a interval timer(to allow compute-bound user [[process]]es to be [[interrupt]]ed to allow other users to run);
 
* a interval timer(to allow compute-bound user [[process]]es to be [[interrupt]]ed to allow other users to run);
 
* memory boundary and relocation registers
 
* 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 second 32K [[word]] [[main memory]] bank; the CTSS supervisor was held 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)
 
* a mode bit in the CPU, to prevent users from executing I/O instructions (which trapped to the CTSS supervisor, for users)
  
Line 41: Line 41:
 
==Influence==
 
==Influence==
  
CTSS was a very influential system; almost every operating system running today is, to some degree, a descendant. This specifically includes [[UNIX]], about which Dennis Ritchie said:
+
CTSS was a very influential system; almost every operating system running today is, to some degree, a descendant. This specifically includes UNIX, about which Dennis Ritchie said:
  
 
: ''In most ways UNIX is a very conservative system. Only a handful of its ideas are genuinely new. In fact, a good case can be made that it is in essence a modern implementation of MIT’s CTSS system. This claim is intended as a compliment to both UNIX and CTSS. Today, more than fifteen years after CTSS was born, few of the interactive systems we know of are superior to it in ease of use; many are inferior in basic design.''
 
: ''In most ways UNIX is a very conservative system. Only a handful of its ideas are genuinely new. In fact, a good case can be made that it is in essence a modern implementation of MIT’s CTSS system. This claim is intended as a compliment to both UNIX and CTSS. Today, more than fifteen years after CTSS was born, few of the interactive systems we know of are superior to it in ease of use; many are inferior in basic design.''
Line 47: Line 47:
 
==See also==
 
==See also==
  
* [[Michigan Algorithm Decoder|MAD]] - used on CTSS
+
* [[Michigan Algorithm Decoder]] - used on CTSS
  
 
==Further reading==
 
==Further reading==
  
 
* [http://larch-www.lcs.mit.edu:8001/~corbato/sjcc62/ An Experimental Time-Sharing System] - The first paper about CTSS, for the [[FJCC]], from May 3, 1962
 
* [http://larch-www.lcs.mit.edu:8001/~corbato/sjcc62/ An Experimental Time-Sharing System] - The first paper about CTSS, for the [[FJCC]], from May 3, 1962
* [http://www.bitsavers.org/pdf/mit/lcs/tr/MIT-LCS-TR-012.pdf The MAC System: A Progress Report] MAC-TR-12, Robert M. Fano, October, 1964 - A later version of CTSS
+
* [http://www.bitsavers.org/pdf/mit/lcs/tr/MIT-LCS-TR-012.pdf The MAC System: A Progress Report] - MAC-TR-12, Robert M. Fano, October, 1964 - A later version of CTSS
* [http://www.bitsavers.org/pdf/mit/lcs/tr/MIT-LCS-TR-016.pdf CTSS TECHNICAL NOTES] MAC-TR-16, Jerry Saltzer, March 15, 1965
+
* [http://www.bitsavers.org/pdf/mit/lcs/tr/MIT-LCS-TR-016.pdf CTSS Technical Notes] - MAC-TR-16, Jerry Saltzer, March 15, 1965
  
 
==External links==
 
==External links==
  
 
* [http://www.bitsavers.org/pdf/mit/ctss/ CTSS] - material at [[Bitsavers]]
 
* [http://www.bitsavers.org/pdf/mit/ctss/ CTSS] - material at [[Bitsavers]]
* [http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide.pdf The Compatible Time-Sharing System: A Programmer's Guide]
+
** [http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide.pdf The Compatible Time-Sharing System: A Programmer's Guide]
* [http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide_Dec69.pdf The Compatible Time-Sharing System: A Programmer's Guide (Second Edition)]
+
** [http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide_Dec69.pdf The Compatible Time-Sharing System: A Programmer's Guide (Second Edition)]
 
* [http://www.piercefuller.com/library/ctss.html CTSS] - downloadable source code and listings
 
* [http://www.piercefuller.com/library/ctss.html CTSS] - downloadable source code and listings
 
* [https://people.csail.mit.edu/saltzer/Multics/CTSS-Documents/CTSS-Documents.html CTSS Documents]
 
* [https://people.csail.mit.edu/saltzer/Multics/CTSS-Documents/CTSS-Documents.html CTSS Documents]

Revision as of 11:42, 16 September 2024

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 operating system 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, a text editor and type-setting program, the latter an inspiration for the later roff family 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 productivity 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 at the MIT Computation Center in 1961, running at first on the 709; the result was first demoed in November, 1961, handling four users, by swapping to magnetic tape (with one tape drive per user). The 709 was upgraded to a 7090 beginning in the spring of 1962, with the changeover complete by the late summer.

During 1962 and 1963, the system was improved and extended, and finally entered full service in the summer of 1963. Project MAC acquired their own 7094, which was delivered in October 1963, and CTSS came up on it several weeks later. 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 word main memory bank; the CTSS supervisor was held 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.

Graphics

Kludge display with PDP-7

CTSS also pioneered hardware and software for computer graphics, created at the MIT Electronics Systems Laboratory. The first ESL display console, also called the Kludge display was directly controlled from the 7094 CPU. Later a PDP-7 was used as a buffer computer, considerably reducing the load on the 7094. A second display console was built, based on a PDP-9. The first console was moved along with the Project MAC CTSS computer to MIT building 39 when the Computation Center machine was retired. The second console stayed with Project MAC.

ESL also designed an inexpensive display terminal called ARDS, Advanced Remote Display Station. It was based on a Tektronix storage tube.

Influence

CTSS was a very influential system; almost every operating system running today is, to some degree, a descendant. This specifically includes UNIX, about which Dennis Ritchie said:

In most ways UNIX is a very conservative system. Only a handful of its ideas are genuinely new. In fact, a good case can be made that it is in essence a modern implementation of MIT’s CTSS system. This claim is intended as a compliment to both UNIX and CTSS. Today, more than fifteen years after CTSS was born, few of the interactive systems we know of are superior to it in ease of use; many are inferior in basic design.

See also

Further reading

External links