Compatible Time-Sharing System Explained
Compatible Time-Sharing System should not be confused with CICS.
The Compatible Time-Sharing System (CTSS) was the first general purpose time-sharing operating system.[1] [2] Compatible Time Sharing referred to time sharing which was compatible with batch processing; it could offer both time sharing and batch processing concurrently.
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[3] 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.[4] [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.
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
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
- The original ELIZA ran on CTSS.
- CTSS was the first computer system to implement password login.[21] [22]
- CTSS had one of the first computerized text editing and formatting utilities, called TYPSET and RUNOFF (the successors of MEMO, MODIFY and DITTO).
- CTSS had one of the first inter-user messaging implementations, pioneering electronic mail.[23]
- CTSS had one of the first instant messaging systems similar to write.[24]
- MIT Computation Center staff member Louis Pouzin created for CTSS a command called RUNCOM, which executed a list of commands contained in a file. RUNCOM also provided for parameter substitution. He later created a design for the Multics shell that was implemented by Glenda Schroeder which in turn inspired Unix shell scripts.[25] [26]
- CTSS had an implementation of the text editor QED, the predecessor of ed, vi, and vim, with regular expressions added by Ken Thompson.
Implementation
Kernel
CTSS used a modified IBM 7090 mainframe computer[27] that had two 32,768 (32K) 36-bit-word banks of core memory instead of the default configuration which provides only one.[28] [29] 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, as in modern operating systems. Causing memory-protection interrupts were used for software interrupts. Processor allocation scheduling with a quantum time unit 200 ms, was controlled by a multilevel feedback queue.[28] It also had some special memory-management hardware,[30] a clock interrupt,[31] and the ability to trap certain instructions.
Supervisor subroutines
- RDFLXA – Read an input line from console
- WRFLX – Write an output line to console
- DEAD – Put the user into dead status, with no program in memory
- DORMNT – Put the user into dormant status, with program in memory
- GETMEM – Get the size of the memory allocation
- SETMEM – Set the size of the memory allocation
- TSSFIL – Get access to the CTSS system files on the disk
- USRFIL – Change back to user's own directory
- GETBRK – Get the instruction location counter at quit
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:
- Printers, punched card readers and punches
- IBM 729 tape drives, an IBM 1301 disk storage, later upgraded to an IBM 1302, with 38 million word capacity
- An IBM 7320 drum memory with 186K words that could load a 32K-word memory bank in one second (later upgraded to 0.25 seconds)
- Two custom high-speed vector graphics displays[32]
- An IBM 7750 transmission control unit capable of supporting up to 112 teleprinter terminals, including IBM 1050 Selectrics and Model 35s. Some of the terminals were located remotely, and the system could be accessed using the public Telex and TWX networks.
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.[33] [34]
Dennis Ritchie wrote in 1977 that UNIX could be seen as a "modern implementation" of CTSS.[35] 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".[36] 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.
See also
Further reading
External links
- Oral history interview with John McCarthy, Charles Babbage Institute, University of Minnesota. Discusses computer developments at MIT including time sharing.
- Oral history interview with Fernando J. Corbató, Charles Babbage Institute, University of Minnesota. Discusses many computer developments at MIT including CTSS.
- Oral history interview with Robert M. Fano, Charles Babbage Institute, University of Minnesota. Discusses computer developments at MIT including CTSS.
- The IBM 7094 and CTSS: personal memoir of Tom Van Vleck, a system programmer on CTSS
- CTSS Source version MIT8C0 in Paul Pierce's collection.
- Dave Pitts' IBM 7094 support - Includes a license-free simulator, cross assembler and linker that can be used to build and run CTSS.
- Richard Cornwell's CTSS sources and binaries, which run on SIMH. Includes license-free tools
- CIO: 40 years of Multics, 1969-2009 : Interview with CTSS and Multics developer Fernando J. Corbato.
- Jerome Saltzer's CTSS bookshelf via CSAIL.
Notes and References
- Web site: An Interview with Brian Kernighan: Breeding Little Languages . Noren . Allen . April 10, 2009 . O'Reilly Community . July 28, 2023 . https://web.archive.org/web/20170630062507/http://broadcast.oreilly.com/2009/04/an-interview-with-brian-kernig.html . June 30, 2017 . I was using CTSS, the first time-sharing system.
- Singh . Jai P. . Morgan . Robert P. . October 1971 . Educational Computer Utilization and Computer Communications . Washington University . St. Louis, MO . National Aeronautics and Space Administration Grant No. Y/NGL-26-008-054 . 13 . 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... . March 19, 2023 . https://web.archive.org/web/20230319003544/https://files.eric.ed.gov/fulltext/ED057575.pdf . live .
- News: New Information Center Will Open at MIT Today . . November 11, 1968.
- Web site: Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview . Walden . David . Van Vleck . Tom . Tom Van Vleck . 2011 . IEEE Computer Society . February 20, 2022 . October 9, 2022 . https://ghostarchive.org/archive/20221009/https://multicians.org/thvv/compatible-time-sharing-system.pdf . live .
- Book: The Compatible Time-Sharing System, A Programmer's Guide . Second . Crisman . Patricia A. . December 31, 1969 . The M.I.T Computation Center . March 10, 2022 . June 25, 2024 . https://web.archive.org/web/20240625150328/http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide_Dec69.pdf . live .
- Book: Backus, John . Digital Computer Advanced Coding Techniques . MIT . 1954 . 162–163. The first known description of computer time-sharing.
- Progress Report Number 4 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England . December 1958.
- Book: F. J. Corbató . M. M. Daggett . R. C. Daley . R. J. Creasy . J. D. Hellwig . R. H. Orenstein . L. K. Korn . The Compatible Time-Sharing System A Programmer's Guide . MIT Press . 1963 . 978-0-262-03008-3 . 2007-02-04 . 2012-05-27 . https://web.archive.org/web/20120527174321/http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide.pdf . live . Describe the system and its commands
- Web site: John McCarthy . Reminiscences on the History of Time Sharing . Stanford University . 1983.
- Progress Report Number 9 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England . July 1961.
- Web site: An Experimental Time-Sharing System . Corbató . Fernando J. . Merwin Daggett . Marjorie . Daley . Robert C. . May 3, 1962 . February 25, 2022 . https://web.archive.org/web/20090906104446/http://larch-www.lcs.mit.edu:8001/~corbato/sjcc62/ . September 6, 2009 . live.
- Mann . Robert W . October 1986 . Selected Perspectives on a Quarter Century of Rehabilitation Engineering . . 23 . 4 . 1–6 . 3820117 . March 13, 2022 . The modular software program for braille translation and automatic management of input and output modes, subsequently called "DOTSYS" was underway... . September 20, 2023 . https://web.archive.org/web/20230920214023/https://books.google.com/books?id=pxte14KRBokC&q=%22subsequently%20called%22 . live .
- Web site: Final Report Development and Demonstration of Communication Systems for the Blind and Deaf/Blind. Braille Communication Terminals and Tactile Paging Systems. . Dalrymple . George F. . February 26, 1973 . The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology . March 13, 2022 . June 25, 2024 . https://web.archive.org/web/20240625150301/https://files.eric.ed.gov/fulltext/ED074663.pdf . live .
- Evaluation and Development of Sensory Aids and Devices. Final Report . . April 3, 1967 . The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology . March 13, 2022 . Demonstration on CTSS of teletypesetter-to-Grade 2 Braille . June 25, 2024 . https://web.archive.org/web/20240625150302/https://files.eric.ed.gov/fulltext/ED015609.pdf . live .
- Final Report to Social Rehabilitation Administration Department of Health, Education and Welfare Washington, D.C. . . April 30, 1969 . The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology . 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..
- Conversion Table, Inches to Millimeters a Braille Computer Generated Mathematical Table . . August 14, 1970 . The Sensory Aids Evaluation and Development Center Massachusetts Institute of Technology . March 13, 2022.
- Project Intrex - A Brief Description . Overhage . Carl F. J. . 1971 . . MIT . March 8, 2022.
- Intrex Buffer-Controller Display System Operation and Software . Kehr . James E. . September 1972 . . MIT . March 8, 2022 . June 25, 2024 . https://web.archive.org/web/20240625150302/https://files.eric.ed.gov/fulltext/ED070506.pdf . live .
- The Intrex Retrieval System Software . Hurlburt . Charles E. . September 15, 1971 . ERIC . MIT . March 8, 2022 . June 25, 2024 . https://web.archive.org/web/20240625150302/https://files.eric.ed.gov/fulltext/ED057829.pdf . live .
- Project Intrex. Semiannual Activity Report, 15 September 1971 - 15 March 1972. . Intrex PR-13 . Overhage . Carl F. J. . March 15, 1972 . ERIC . MIT . March 17, 2022 . Since September 27, 1971, the BRISC has been available at the Engineering Library station on a two-hours a day basis. . June 25, 2024 . https://web.archive.org/web/20240625150303/https://files.eric.ed.gov/fulltext/ED060899.pdf . live .
- Web site: McMillan . Robert . The World's First Computer Password? It Was Useless Too . . 22 March 2019 . 27 January 2012 . 25 June 2024 . https://web.archive.org/web/20240625150807/https://www.wired.com/2012/01/computer-password/ . live .
- Web site: Hunt . Troy . Passwords Evolved: Authentication Guidance for the Modern Era . 22 March 2019 . 26 July 2017.
- [Tom Van Vleck]
- Book: Fetter, Mirko . 2019 . New Concepts for Presence and Availability in Ubiquitous and Mobile Computing . University of Bamberg Press . 38 . 978-3-86309-623-6 . The basic concept of sending instantaneously messages to logged in users came with ... CTSS ... . 2023-03-19 . 2024-06-25 . https://web.archive.org/web/20240625150926/https://books.google.com/books?id=knqIDwAAQBAJ&dq=%22ctss%22+%22write+command%22&pg=PA38#v=onepage&q=%22ctss%22%20%22write%20command%22&f=false . live .
- Web site: The Origin of the Shell . Pouzin . Louis . Louis Pouzin . Multicians . February 17, 2022 . December 21, 2017 . https://web.archive.org/web/20171221142542/http://www.multicians.org/shell.html . live .
- Book: Raymond, Eric S. . Eric S. Raymond . 2003 . The Art of UNIX Programming . Boston . Pearson Education . 234 . 978-0-13-246588-5.
- Web site: Documents describing special hardware for CTSS . 2024-04-21 . 2024-06-25 . https://web.archive.org/web/20240625150843/https://people.csail.mit.edu/saltzer/Multics/CTSS-Documents/RPQs/RPQs.html . live .
- Book: Operating System Concepts . 13: Historical Perspective . 514 . Abraham . Silberschatz . James L. . Peterson . June 1988 . Addison-Wesley . 0-201-18760-4.
- Book: IBM 7090 and 7094 Data Processing Systems Additional Core Storage - RPO E02120 (7090) Dr RPO E15724 (7094) . Special Systems Features Bulletin . IBM . L22-6636-1.
- Book: IBM 7090-7094 Multiprogramming Package RPO E07291 (7090) or RPO 880287 (7094) . Special Systems Features Bulletin . IBM . L22-6641-3.
- Book: Core Storage Clock and Interval Timer - RPO FB9349 . Special Systems Features Bulletin . IBM . L22-6554-1 . 2024-04-21 . 2023-04-08 . https://web.archive.org/web/20230408045855/https://people.csail.mit.edu/saltzer/Multics/CTSS-Documents/RPQs/L22-6554-1.pdf . live .
- Web site: An Integrated Hardware-Software System for Computer Graphics in Time Sharing . D. E. . Thornhill . R. H. . Stoz . T. T. . Ross . J. E. . Ward . 1968 . MIT Project MAC . February 20, 2022 . ESL-R-356 and MAC-TR-56 . 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..
- Book: Hartley, David . The Titan Influence . David Hartley (computer scientist) . Computer Systems . 978-0-387-21821-2 . 103–108 . 2004 . Springer . 10.1.1.14.9546 . Sir Maurice, as he is known today, had been inspired by CTSS to create a time-sharing system.
- Book: Fraser, Sandy . An Historical Connection between Time-Sharing and Virtual Circuits . Alexander G. Fraser . Computer Systems . 978-0-387-21821-2 . 85–88 . 2004 . Springer . 10.1.1.14.9546 . 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.
- Ritchie . Dennis M. . Dennis Ritchie . 1977 . The Unix Time-sharing System: A retrospective . Tenth Hawaii International Conference on the System Sciences . 2022-02-19 . 2022-10-09 . https://ghostarchive.org/archive/20221009/https://www.bell-labs.com/usr/dmr/www/retro.pdf . live .
- Book: Levy, Steven. Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition. 2010. O'Reilly Media. 978-1-4493-8839-3. 1st. Sebastopol, California. 85–102. Winners and Losers.