Compatible Time-Sharing System

Last updated
Compatible Time-Sharing System (CTSS)
CTSS Scheduler in MAD and FAP.png
Preamble of two versions of the CTSS scheduler, one in MAD and one in FAP
Developer MIT Computation Center, Project MAC
Written in FAP assembly, MAD
Working stateDiscontinued, simulator available
Source model Open source
Initial release1961;63 years ago (1961)
Marketing targetColleges and universities [1]
Available in English
Platforms IBM 7090, IBM 7094
Kernel type Monolithic, protected
Default
user interface
Command-line interface
License [ data missing ]
Succeeded by Multics
Official website www.cozx.com/dpitts/ibm7090.html

The Compatible Time-Sharing System (CTSS) was the first general purpose time-sharing operating system. [2] [3] Compatible Time Sharing referred to time sharing which was compatible with batch processing; it could offer both time sharing and batch processing concurrently.

Contents

CTSS was developed at the MIT Computation Center ("Comp Center"). CTSS was first demonstrated on MIT's modified IBM 709 in November 1961. The hardware was replaced with a modified IBM 7090 in 1962 and later a modified IBM 7094 called the "blue machine" to distinguish it from the Project MAC CTSS IBM 7094. Routine service to MIT Comp Center users began in the summer of 1963 and was operated there until 1968.

A second deployment of CTSS on a separate IBM 7094 that was received in October 1963 (the "red machine") was used early on in Project MAC until 1969 when the red machine was moved to the Information Processing Center [4] and operated until July 20, 1973. CTSS ran on only those two machines; however, there were remote CTSS users outside of MIT including ones in California, South America, the University of Edinburgh and the University of Oxford. [1] [5]

History

John Backus said in the 1954 summer session at MIT that "By time sharing, a big computer could be used as several small ones; there would need to be a reading station for each user". [6] Computers at that time, like IBM 704, were not powerful enough to implement such system, but at the end of 1958, MIT's Computation Center nevertheless added a typewriter input to its 704 with the intent that a programmer or operator could "obtain additional answers from the machine on a time-sharing basis with other programs using the machine simultaneously". [7]

In June 1959, Christopher Strachey published a paper "Time Sharing in Large Fast Computers" at the UNESCO Information Processing Conference in Paris, where he envisaged a programmer debugging a program at a console (like a teletype) connected to the computer, while another program was running in the computer at the same time. [8] [9] Debugging programs was an important problem at that time, because with batch processing, it then often took a day from submitting a changed code, to getting the results. John McCarthy wrote a memo about that at MIT, after which a preliminary study committee and a working committee were established at MIT, to develop time sharing. The committees envisaged many users using the computer at the same time, decided the details of implementing such system at MIT, and started the development of the system.

Experimental Time Sharing System

By July, 1961 [10] a few time sharing commands had become operational on the Computation Center's IBM 709, and in November 1961, Fernando J. Corbató demonstrated at MIT what was called the Experimental Time-Sharing System. On May 3, 1962, F. J. Corbató, M. M. Daggett and R. C. Daley published a paper about that system at the Spring Joint Computer Conference. [11] Robert C. Daley, Peter R. Bos and at least 6 other programmers implemented the operating system, partly based on the Fortran Monitor System.

The system used an IBM 7090, modified by Herbert M. Teager, with added 3 Flexowriters for user consoles, and maybe a timer. Each of the 3 users had two tape units, one for the user's file directory, and one for dumping the core (program in memory). There was also one tape unit for the system commands, there were no disk drives. The memory was 27 k words (36-bit words) for users, and 5 k words for the supervisor (operating system). The input from the consoles was written to the buffers in the supervisor, by interrupts, and when a return character was received, the control was given to the supervisor, which dumped the running code to the tape and decided what to run next. The console commands implemented at the time were login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump and xundump.[ citation needed ]

This became the initial version of the Compatible Time-Sharing System. This was apparently the first ever public demonstration of time-sharing; there are other claims, but they refer to special-purpose systems, or with no known papers published. The "compatibility" of CTSS was with background jobs run on the same computer, which generally used more of the compute resources than the time-sharing functions.

Applications

DOTSYS and BRAILLEMBOSS

The first version of the DOTSYS braille translation software ran on CTSS and could output to a BRAILLEMBOSS braille page printer. [12] [13] DOTSYS on CTSS was first demonstrated on August 18, 1966, as part of a feasibility study where teletypesetter tape, in the form of news, was converted to Grade 2 Braille. The following month the feasibility of converting textbook information on teletypesetter tape to error-free Grade 2 Braille was successfully demonstrated. [14] As MIT CTSS was an academic system, a research vehicle and not a system for commercial computing, two years later a version of DOTSYS stripped of CTSS dependencies for software portability was used on an IBM 709 at the American Printing House for the Blind to print the first braille edition of a book produced from teletypesetter input, only a few weeks after the ink-print version. [15] The following year, on CTSS, a demonstration of printing mathematical tables in braille was shown. A short FORTRAN II program was written to produce a conversion table from inches to millimeters in braille via the BRAILLEMBOSS braille page printer. [16]

Intrex

Diagram of the Intrex running on CTSS Intrex on CTSS.png
Diagram of the Intrex running on CTSS

The Intrex Retrieval System ran on CTSS. Intrex was an experimental, pilot-model machine-oriented bibliographic storage and retrieval system with a database that stored a catalog of roughly 15,000 journal articles. It was used to develop and test concepts for library automation. [17] [18] [19] A deployment of three BRISC CRT consoles for testing at the MIT Engineering Library showed that it was preferred over two other systems, ARDS and DATEL. [20]

Features

Implementation

Kernel

CTSS used a modified IBM 7090 mainframe computer that had two 32,768 (32K) 36-bit-word banks of core memory instead of the default configuration which provides only one. [27] One bank was reserved for the time-sharing supervisory program, the other for user programs. CTSS had a protected-mode kernel, the supervisor's functions in the A-core (memory bank A) could be called only by software interrupts, like in the modern operating systems. Causing memory-protection interrupts were used for software interrupts. [8] Processor allocation scheduling with a quantum time unit 200 ms, was controlled by a multilevel feedback queue. [27] It also had some special memory-management hardware, a clock interrupt and the ability to trap certain instructions.

Supervisor subroutines

Programming languages

CTSS at first had only an assembler, FAP, and a compiler, MAD. Also, Fortran II code could be translated into MAD code by using MADTRN. Later half of the system was written in MAD. Later there were other programming languages including COMIT II, LISP 1.5 and a version of ALGOL.

File system

Each user had their own directory, and there were also shared directories for groups of people with the same "problem number". Each file had two names, the second indicating its type as did the extension in later system. At first, each file could have one of four modes: temporary, permanent, read-only class 1, and read-only class 2. Read-only class 1 allowed the user to change the mode of the file. Files could also be symbolically linked between directories. A directory listing by listf:

 10 FILES 20 TRACKS USED DATE  NAME  MODE NO. TRACKS 5/20/63  MAIN MAD P 15 5/17/63  DPFA SYMTB P 1 5/17/63  DPFA BSS P 1 5/17/63  DPFA FAP P 2

Peripherals

Input-output hardware was mostly standard IBM peripherals. These included six data channels connecting to:

Influences

CTSS was described in a paper presented at the 1962 Spring Joint Computer Conference, and greatly influenced the design of other early time-sharing systems.

Maurice Wilkes witnessed CTSS and the design of the Titan Supervisor was inspired by that. [29] [30]

Dennis Ritchie wrote in 1977 that UNIX could be seen as a "modern implementation" of CTSS. [31] Multics, which was also developed by Project MAC, was started in the 1960s as a successor to CTSS – and in turn inspired the development of Unix in 1969. One of the technical terms inherited by these systems from CTSS is daemon .

Incompatible Timesharing System (ITS), another early, revolutionary, and influential MIT time-sharing system, was produced by people who disagreed with the direction taken by CTSS, and later, Multics; the name was a parody of "CTSS", as later the name "Unix" was a parody of "Multics". [32] CTSS and ITS file systems have a number of design elements in common. Both have an M.F.D. (master file directory) and one or more U.F.D. (user file directories). Neither of them have nested directories (sub-directories). Both have file names consisting of two names which are a maximum of six-characters long. Both support linked files. [5]

See also

Related Research Articles

<span class="mw-page-title-main">Multics</span> Time-sharing operating system

Multics is an influential early time-sharing operating system based on the concept of a single-level memory. Nathan Gregory writes that Multics "has influenced all modern operating systems since, from microcomputers to mainframes."

<span class="mw-page-title-main">Mainframe computer</span> Large computer

A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise resource planning, and large-scale transaction processing. A mainframe computer is large but not as large as a supercomputer and has more processing power than some other classes of computers, such as minicomputers, servers, workstations, and personal computers. Most large-scale computer-system architectures were established in the 1960s, but they continue to evolve. Mainframe computers are often used as servers.

<span class="mw-page-title-main">Time-sharing</span> Computing resource shared by concurrent users

In computing, time-sharing is the sharing of a computing resource among many tasks or users. It enables multi-tasking by a single user or enables multiple user sessions.

Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically be run at scheduled times as well as being run contingent on the availability of computer resources.

MAD is a programming language and compiler for the IBM 704 and later the IBM 709, IBM 7090, IBM 7040, UNIVAC 1107, UNIVAC 1108, Philco 210-211, and eventually IBM System/370 mainframe computers. Developed in 1959 at the University of Michigan by Bernard Galler, Bruce Arden and Robert M. Graham, MAD is a variant of the ALGOL language. It was widely used to teach programming at colleges and universities during the 1960s and played a minor role in the development of Compatible Time-Sharing System (CTSS), Multics, and the Michigan Terminal System computer operating systems. The original version of the chatbot ELIZA was written in MAD-SLIP.

<span class="mw-page-title-main">GE 645</span> 1960s Mainframe Computer

The GE 645 mainframe computer was a development of the GE 635 for use in the Multics project. This was the first computer that implemented a configurable hardware protected memory system. It was designed to satisfy the requirements of Project MAC to develop a platform that would host their proposed next generation time-sharing operating system (Multics) and to meet the requirements of a theorized computer utility. The system was the first truly symmetric multiprocessing machine to use virtual memory, it was also among the first machines to implement what is now known as a translation lookaside buffer, the foundational patent for which was granted to John Couleur and Edward Glaser.

<span class="mw-page-title-main">IBM 7090</span> Mainframe computer

The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 series scientific computers. The first 7090 installation was in December 1959. In 1960, a typical system sold for $2.9 million or could be rented for $63,500 a month.

<span class="mw-page-title-main">Conversational Monitor System</span> Operating system

The Conversational Monitor System is a simple interactive single-user operating system. CMS was originally developed as part of IBM's CP/CMS operating system, which went into production use in 1967. CMS is part of IBM's VM family, which runs on IBM mainframe computers. VM was first announced in 1972, and is still in use today as z/VM.

TYPSET is an early document editor that was used with the 1964-released RUNOFF program, one of the earliest text formatting programs to see significant use.

This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems.

<span class="mw-page-title-main">Fernando J. Corbató</span> American computer scientist (1926–2019)

Fernando José "Corby" Corbató was an American computer scientist, notable as a pioneer in the development of time-sharing operating systems.

<span class="mw-page-title-main">VM (operating system)</span> Family of IBM operating systems

VM is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.

<span class="mw-page-title-main">CP/CMS</span> IBM operating system specializing in virtualization

CP/CMS is a discontinued time-sharing operating system of the late 1960s and early 1970s. It is known for its excellent performance and advanced features. Among its three versions, CP-40/CMS was an important 'one-off' research system that established the CP/CMS virtual machine architecture. It was followed by CP-67/CMS, a reimplementation of CP-40/CMS for the IBM System/360-67, and the primary focus of this article. Finally, CP-370/CMS was a reimplementation of CP-67/CMS for the System/370. While it was never released as such, it became the foundation of IBM's VM/370 operating system, announced in 1972.

z/VM

z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development as of 2022. It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67. z/VM runs on IBM's IBM Z family of computers. It can be used to support large numbers (thousands) of Linux virtual machines.

<span class="mw-page-title-main">IBM CP-40</span> IBM experimental operating system

CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP[-67]/CMS – a virtual machine/virtual memory time-sharing operating system for the IBM System/360 Model 67, and the parent of IBM's VM family. CP-40 ran multiple instances of client operating systems – particularly CMS, the Cambridge Monitor System, built as part of the same effort. Like CP-67, CP-40 and the first version of CMS were developed by IBM's Cambridge Scientific Center (CSC) staff, working closely with MIT researchers at Project MAC and Lincoln Laboratory. CP-40/CMS production use began in January 1967. CP-40 ran on a unique, specially modified IBM System/360 Model 40.

This article covers the History of CP/CMS — the historical context in which the IBM time-sharing virtual machine operating system was built.

This article covers the evolution of time-sharing systems, providing links to major early time-sharing operating systems, showing their subsequent evolution.

Tom Van Vleck is an American computer software engineer.

<span class="mw-page-title-main">Message of the day</span> Message shown to computer users on login

Many computer systems display a message of the day or welcome message when a user first connects to them, logs in to them, or starts them. It is a way of sending a common message to all users, and may include information about system changes, system availability, and so on. More recently, systems have displayed personalized messages of the day.

Glenda Schroeder is an American software engineer noted for implementing the first command-line user interface shell and publishing one of the earliest research papers describing electronic mail systems while working as a member of the staff at the MIT Computation Center in 1965.

References

  1. 1 2 3 4 Walden, David; Van Vleck, Tom, eds. (2011). "Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview" (PDF). IEEE Computer Society. Retrieved February 20, 2022.
  2. Noren, Allen (April 10, 2009). "An Interview with Brian Kernighan: Breeding Little Languages". O'Reilly Community. Archived from the original on June 30, 2017. Retrieved July 28, 2023. I was using CTSS, the first time-sharing system
  3. Singh, Jai P.; Morgan, Robert P. (October 1971). Educational Computer Utilization and Computer Communications (PDF) (Report). St. Louis, MO: Washington University. p. 13. National Aeronautics and Space Administration Grant No. Y/NGL-26-008-054. Retrieved March 8, 2022. Much of the early development in the time-sharing field took place on university campuses.8 Notable examples are the CTSS (Compatible Time-Sharing System) at MIT, which was the first general purpose time-sharing system...
  4. "New Information Center Will Open at MIT Today". The New York Times . November 11, 1968.
  5. 1 2 3 Crisman, Patricia A., ed. (December 31, 1969). The Compatible Time-Sharing System, A Programmer's Guide (PDF) (Second ed.). The M.I.T Computation Center. Retrieved March 10, 2022.
  6. Backus, John (1954). Digital Computer Advanced Coding Techniques (PDF). MIT. pp. 16-2–16-3. The first known description of computer time-sharing.
  7. Progress Report Number 4 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England (Report). December 1958.
  8. 1 2 F. J. Corbató; M. M. Daggett; R. C. Daley; R. J. Creasy; J. D. Hellwig; R. H. Orenstein; L. K. Korn (1963). The Compatible Time-Sharing System A Programmer's Guide (PDF). MIT Press. ISBN   978-0-262-03008-3. Describe the system and its commands
  9. John McCarthy (1983). "Reminiscences on the History of Time Sharing". Stanford University.
  10. Progress Report Number 9 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England (Report). July 1961.
  11. Corbató, Fernando J.; Merwin Daggett, Marjorie; Daley, Robert C. (May 3, 1962). "An Experimental Time-Sharing System". Archived from the original on September 6, 2009. Retrieved February 25, 2022.
  12. Mann, Robert W (October 1986). "Selected Perspectives on a Quarter Century of Rehabilitation Engineering". Journal of Rehabilitation Research and Development . 23 (4): 1–6. PMID   3820117 . Retrieved March 13, 2022. The modular software program for braille translation and automatic management of input and output modes, subsequently called "DOTSYS" was underway...
  13. Dalrymple, George F. (February 26, 1973). "Final Report Development and Demonstration of Communication Systems for the Blind and Deaf/Blind. Braille Communication Terminals and Tactile Paging Systems" (PDF). The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology. Retrieved March 13, 2022.
  14. Evaluation and Development of Sensory Aids and Devices. Final Report (PDF) (Report). The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology. April 3, 1967. Retrieved March 13, 2022. Demonstration on CTSS of teletypesetter-to-Grade 2 Braille
  15. Final Report to Social Rehabilitation Administration Department of Health, Education and Welfare Washington, D.C. (PDF) (Report). The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology. April 30, 1969. Retrieved March 13, 2022. These programs, originally written to operate on the CTSS system at M.I.T., were modified for the 709 at the American Printing House for the Blind. This involved rewriting those parts of the programs which were CTSS-dependent.
  16. Conversion Table, Inches to Millimeters a Braille Computer Generated Mathematical Table (PDF) (Report). The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology. August 14, 1970. Retrieved March 13, 2022.
  17. Overhage, Carl F. J. (1971). Project Intrex - A Brief Description (PDF). ERIC (Report). MIT. Retrieved March 8, 2022.
  18. Kehr, James E. (September 1972). Intrex Buffer-Controller Display System Operation and Software (PDF). ERIC (Report). MIT. Retrieved March 8, 2022.
  19. Hurlburt, Charles E. (September 15, 1971). The Intrex Retrieval System Software (PDF). ERIC (Report). MIT. Retrieved March 8, 2022.
  20. Overhage, Carl F. J. (March 15, 1972). Project Intrex. Semiannual Activity Report, 15 September 1971 - 15 March 1972 (PDF). ERIC (Report). MIT. Intrex PR-13. Retrieved March 17, 2022. Since September 27, 1971, the BRISC has been available at the Engineering Library station on a two-hours a day basis.
  21. McMillan, Robert (27 January 2012). "The World's First Computer Password? It Was Useless Too". Wired magazine . Retrieved 22 March 2019.
  22. Hunt, Troy (26 July 2017). "Passwords Evolved: Authentication Guidance for the Modern Era" . Retrieved 22 March 2019.
  23. Tom Van Vleck's memoir of The History of Electronic Mail
  24. Fetter, Mirko (2019). New Concepts for Presence and Availability in Ubiquitous and Mobile Computing. University of Bamberg Press. p. 38. ISBN   978-3-86309-623-6. The basic concept of sending instantaneously messages to logged in users came with ... CTSS ...
  25. Pouzin, Louis. "The Origin of the Shell". Multicians. Retrieved February 17, 2022.
  26. Raymond, Eric S. (2003). The Art of UNIX Programming. Boston: Pearson Education. p. 234. ISBN   978-0-13-246588-5.
  27. 1 2 Silberschatz, Abraham; Peterson, James L. (June 1988). "13: Historical Perspective". Operating System Concepts. Addison-Wesley. p. 514. ISBN   0-201-18760-4.
  28. Thornhill, D. E.; Stoz, R. H.; Ross, T. T.; Ward, J. E. (1968). "An Integrated Hardware-Software System for Computer Graphics in Time Sharing" (PDF). MIT Project MAC. ESL-R-356 and MAC-TR-56. Retrieved February 20, 2022. Console facilities include hardware projection of three-dimensional line drawings, automatic light pen tracking, and a flexible set of knob, switch, and push-button inputs. The console is attached to the Project MAC IBM 7094 Compatible Time-Sharing System either directly or through a PDP-7 Computer.
  29. Hartley, David (2004). "The Titan Influence". Computer Systems. Springer. pp. 103–108. CiteSeerX   10.1.1.14.9546 . ISBN   978-0-387-21821-2. Sir Maurice, as he is known today, had been inspired by CTSS to create a time-sharing system
  30. Fraser, Sandy (2004). "An Historical Connection between Time-Sharing and Virtual Circuits". Computer Systems. Springer. pp. 85–88. CiteSeerX   10.1.1.14.9546 . ISBN   978-0-387-21821-2. Maurice Wilkes discovered CTSS on a visit to MIT in about 1965, and returned to Cambridge to convince the rest of us that time-sharing was the way forward
  31. Ritchie, Dennis M. (1977). The Unix Time-sharing System: A retrospective (PDF). Tenth Hawaii International Conference on the System Sciences.
  32. Levy, Steven (2010). "Winners and Losers". Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition (1st ed.). Sebastopol, California: O'Reilly Media. pp. 85–102. ISBN   978-1-4493-8839-3.

Further reading