CTSS is one of the early operating systems. It was developed at the MIT and was the first time sharing system. CTSS stands for Compatible Time Sharing system.

Why compatible?
CTSS could run the former "operating system" FMS (Fortran Monitoring System) as a user task. This made it possible to run old programs without a change.

What is time sharing?
Time sharing means that a running program can be, interrupted by another program, and restarted at the breaking point later. Previously computers ran in batch mode. Programs were run in order of their arrival or their importance. But once a program was started it had to run till it was finished or if it was stopped it had to be started from the beginning again.

Additionally batch mode was non-interactive. Waiting (maybe for hours) for an input was inacceptable and therefore debugging as it is know today was not posssible. You could not just run your program and see what it does, because if you had an error in it, you maybe had to wait for days for another try (and that maybe just because of a missing comma!). So time sharing, especially with fast context switching, was a great relief.

CTSS's development was started in 1961 at the MIT. It was mainly a demo, lacking many features of a real operating system, showing the great potential of time sharing. Soon it was followed by other time sharing systems, most noticable Multics, a very ambitious project by the MIT, Bell Labs and General Electric, which flopped. One of the developers of Multics, Tom Van Vleck, also was a a member of the CTSS team. The team was lead by Prof. Fernando Corbato.

CTSS ran on a modified IBM 7094. It had a IBM 7750 communications controller for dial-up users, had an additional memory bank (CTSS ran on one, the other was for user programs (which only had restricted instruction access (for example no bank switching))) and two 2301 drums, where not-running user programs were swapped to. Additionally the CPU was modified. To achive the above mentioned restrictions for user programs, the 7094 was made into a two-mode machine, one being the restricted user mode. Further where memory boundary registers added. These made it possible, that a user program only had a restricted access to the user memory. If a small program was loaded and a larger was swapped out, pieces of the larger program stayed in memory and fastened the context switch.

Time sharing nowadays
Time sharing is essential for modern computers, as it is the foundation of every multitasking enviroment. It has become so normal in every day computer usage to use time sharing even on single user computers, that it is for most of us nearly incomprehensible how one can work without time sharing (especially if you have to share a computer).

Operating Systems - Design an Implementation, Andrew S. Tanenbaum & Albert S. Woodhull, Prentice Hall
Grundlagen Betriebssysteme und Rechnernetze, Prof. Dr. Bettina Schnor, University of Potsdam