Talk:Compatible Time-Sharing System

message: I removed the reference to an IBM "Cambridge Time Sharing System". I don't think there was such a thing. This may have been a conflation of "Cambridge Monitor System" and "TSS" which of course had nothing to do with each other. I also changed the reference from Project MAC to the Comp Center. Trevor Hanson 03:33, 9 December 2006 (UTC)
thread_title:  Cambridge Time Sharing System 

message: The statement that users could only use 27K and the "monitor" took 5K is incorrect.  It may have been true for FMS but it does not apply to CTSS commands, which could use all 32K.  (Just because it is written in a book doesn't make it true.  I was there, I remember.)  What is the protocol for fixing errors like this so that some weenie doesn't unfix it? Thvv 02:47, 6 March 2007 (UTC)
replies: text: The key first step is what you did: Discuss it here, and include whatever specifics you can track down. Then fix the article as well as possible. If possible, try to find some kind of documentary evidence, e.g. an old reference manual, and cite it in the text, or at least (if it's something that might be disputed) include a footnote. Your note might be something like this: CTSS commands could use all 32K. A citation is sought to document this; please see the discussion page.. Provide your best available information. With luck, somebody else will be able to provide a source. As you know, the intent of Wikipedia to include verifiable information; firsthand knowledge, even if accurate and interesting, does not strictly speaking belong here (otherwise there is no way to weed out false or misremembered firsthand claims). On the other hand, and particularly with technical subjects, most Wikians would prefer to get the facts straight first, and then assemble the citations to back them up. By all means, don't leave known falsehoods in place. At the very least discuss them, and challenge them with a  tag. If a citation is wrong, and we know this does happen, then challenge the source on the discussion page. Even the weenies here are generally well-intentioned, and don't want falsehoods to persist. I hope this is helpful input. Trevor Hanson 19:03, 6 March 2007 (UTC)
replies: text: In accordance with this "F. J. Corbató, M. M. Daggett, R. C. Daley, An Experimental Time-Sharing System (IFIPS 1962)" at least until May 3 1962, they still used the system on IBM 709, which had only one bank (core) of memory 32K words, and then it had only a minimal supervisor in 5K of that memory, and 27K was used by the users. At least after upgrading to IBM 7094 in 1963, they had two banks of memory (called A-core and B-core), both 32K words. The entire A-core was used by the monitor, and the entire B-core was used by users.Eiusmod (talk) 13:21, 27 May 2016 (UTC)
thread_title: 27K? 

message: Dennis Richie, in his paper The UNIX Time-sharing System - A Retrospective (published in the first BSTJ 'Unix' volume) says that "a good case can be made that [Unix] 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." Ironically, people often speak of Unix as 'a descendant of Multics', and there are some aspects of Unix that are clearly copied from Multics (e.g. the hierarchical file system), but I see the truth to DMR's observation (fundamentally, it is more like CTSS than Multics - no single-level-memory, no dynamic linking, etc, etc - all key concepts in Multics). This seems like something worth adding to the article, but I'm too lazy - I leave it for someone else! Noel (talk) 04:25, 6 February 2012 (UTC)
replies: text: , there's another possible connection to ITS: lifting switch 0 will make ITS go to the (monitor) DDT.
UNIX and CTSS both have core dump spelled "CORDMP" in six letters on CTSS. The CTSS CORDMP was invoked under software control as in a subroutine (function) call.
CTSS has UNLINK TSSDC. which is linked to DELETE (but UNLINK might only erase links, not other types of files?).  UNIX has unlink, a system call which is used by rm to remove files.
Programs on CTSS could be sent quit and interrupt signals generated by pressing keys on the terminal.
The term canonical as in canonical terminal input mode (process erase and kill characters typed on a terminal) is used by both CTSS and UNIX. On UNIX the opposite of canonical mode is raw mode.
Erasing (killing) a line of input typed into a terminal on both CTSS and (vintage) UNIX (by default) is accomplished by typing the @ character. Likewise # erases a single character on both.
UNIX and CTSS both have swapping.
The CTSS manuals have sections, AD for files formats, AG for subroutines, AH for commands and so on. UNIX has sections, 1 for commands, 2 for system calls, 3 for library functions and so on.
IBM FORTRAN II Assembly Program (FAP) is basically the CTSS native language.  IBM FAP has a pseudo operation instruction (pseudo op), BCI, (binary coded information) which is used for generating (inserting) BCD data words (strings). CTSS has certain extensions to FAP which include modifications to the BCI FAP pseudo operation instruction. One of those extensions is that the string can be enclosed in delimiters which in the documentation (always) and the code (mostly always) the slash character, /.  UNIX uses slashes around strings in documentation and code, for example the ed, and sed are usually invoked with slashes while grep is documented as g/re/p. Delimited (quoted) strings on both CTSS and UNIX could use more than just slash, they could use any character other than blank (space) that is not in the string being quoted by the delimiter, i. e. use /foo/ or "foo" etc.
CTSS has a RUNCOM command while UNIX has had a number of scripts with rc in their name, e.g. /etc/rc and there seems to be some consensus already about those being related, see the RUNCOM WP article.
The "version 0" Unics (later UNIX) had an ed command that, when started, printed out EDIT just like the CTSS ED. The ed editor is normally much more terse, e.g. error messages consist of a single question mark. This message was removed in later versions of ed.
The "version 0" Unics (later UNIX) fsck command was named salv like the CTSS salv.
The "version 0" Unics (later UNIX) cp command took pairs of file names in a list. It copied the first file's contents of each pair to the second file in the pair. cp file1 file2 file3 file4 would copy file1 to file2 and file3 to file4.
Jamplevia (talk) 22:57, 18 December 2022 (UTC)
thread_title: Influence on Unix

message: UNIX block devices have a strategy. CTSS disk, drum and tape drivers have strategy modules. 
UNIX and CTSS both have PANIC.  The CTSS PANIC was manually-invoked by toggling console switch positions.
: , there's another possible connection to ITS: lifting switch 0 will make ITS go to the (monitor) DDT.
UNIX and CTSS both have core dump spelled "CORDMP" in six letters on CTSS. The CTSS CORDMP was invoked under software control as in a subroutine (function) call.
CTSS has UNLINK TSSDC. which is linked to DELETE (but UNLINK might only erase links, not other types of files?).  UNIX has unlink, a system call which is used by rm to remove files.
Programs on CTSS could be sent quit and interrupt signals generated by pressing keys on the terminal.
The term canonical as in canonical terminal input mode (process erase and kill characters typed on a terminal) is used by both CTSS and UNIX. On UNIX the opposite of canonical mode is raw mode.
Erasing (killing) a line of input typed into a terminal on both CTSS and (vintage) UNIX (by default) is accomplished by typing the @ character. Likewise # erases a single character on both.
UNIX and CTSS both have swapping.
The CTSS manuals have sections, AD for files formats, AG for subroutines, AH for commands and so on. UNIX has sections, 1 for commands, 2 for system calls, 3 for library functions and so on.
IBM FORTRAN II Assembly Program (FAP) is basically the CTSS native language.  IBM FAP has a pseudo operation instruction (pseudo op), BCI, (binary coded information) which is used for generating (inserting) BCD data words (strings). CTSS has certain extensions to FAP which include modifications to the BCI FAP pseudo operation instruction. One of those extensions is that the string can be enclosed in delimiters which in the documentation (always) and the code (mostly always) the slash character, /.  UNIX uses slashes around strings in documentation and code, for example the ed, and sed are usually invoked with slashes while grep is documented as g/re/p. Delimited (quoted) strings on both CTSS and UNIX could use more than just slash, they could use any character other than blank (space) that is not in the string being quoted by the delimiter, i. e. use /foo/ or "foo" etc.
CTSS has a RUNCOM command while UNIX has had a number of scripts with rc in their name, e.g. /etc/rc and there seems to be some consensus already about those being related, see the RUNCOM WP article.
The "version 0" Unics (later UNIX) had an ed command that, when started, printed out EDIT just like the CTSS ED. The ed editor is normally much more terse, e.g. error messages consist of a single question mark. This message was removed in later versions of ed.
The "version 0" Unics (later UNIX) fsck command was named salv like the CTSS salv.
The "version 0" Unics (later UNIX) cp command took pairs of file names in a list. It copied the first file's contents of each pair to the second file in the pair. cp file1 file2 file3 file4 would copy file1 to file2 and file3 to file4.
Jamplevia (talk) 22:57, 18 December 2022 (UTC)
thread_title: UNIX similarities to CTSS

message: Maybe the only reason was the availability of IBM 709 (introduced in 1958). Because IBM 709 had interrupts (which UNIVAC had already in 1956), but it also had a large enough memory. As it was said, the supervisor (operating system) did need 5 k words, but IBM 704 didn't have 5 k words.Eiusmod (talk) 22:21, 24 June 2016 (UTC)
thread_title:  Why was it not made before 

message: I read the source code listings of the CTSS supervisor. It appears that most of its code was written by Robert Daley and Peter R. Bos. Other authors were R. Creasy, S. Dunten, T. Hastings, N. I. Morris, J. Podolsky and J. W. Poduska. But almost nothing is known about these people, and there are no Wikipedia articles about them. This is not right, they were the creators of the kernel of the first modern operating system, of what is today understood by the operating system kernel. Unix, Linux, Windows, MS-DOS, CP/M, all are based on it. They were scientists and inventors.Eiusmod (talk) 11:09, 14 July 2016 (UTC)
thread_title:  Who created it 

message: There were several epochs of creating CTSS, with different people involved.
The initial prototype, using the 709, was demo'd in late 1961, swapping to tape.
Corbató, Daley, and Daggett wrote the 1962 FJCC paper on this version. An Experimental Time-Sharing System
As Norm says above, it used the Teager 3 Flexowriter channel.
This version ran the monitor in the bottom 5K and had 27K for a single user program.
As the paper says, the 709 version was converted to the 7090 in 1962. 
Creasy, Hellwig, Orenstein and Korn were the major additions to the team, credited in
the 1963 Candy Stripe manual: The Compatible Time-Sharing System: A Programmer's Guide
The History section describes how the 7090 version
was upgraded with an additional memory bank and protection RPQ, the 7750, and the hard disk.
This version was what became "operational" in 1963 and was used for the Project MAC
summer study in 1963.  More people were added to the development group during this phase.
The next phase of development consolidated the operational CTSS to make it useful as a service.
Many of the original Comp Center programmers either went to Project MAC with Corby to work on Multics,
or went on to other employment. New programmers joined the CTSS team during this time as well,
some at Project MAC and some at the Comp Center, which got its own 7094 and began running CTSS in 1965.
In the late 60s, Multics was undergoing rapid development but was not available for 
regular timesharing users; some CTSS users who wanted new features volunteered to contribute them
to the Comp Center.  When these folks made major changes to a CTSS module, they put their names
in the banner, which is why it appears that so many were written by Peter Bos, Dave Anderson, 
Jim Bixby, and J. Podolsky.
Thvv (talk) 20:52, 23 September 2019 (UTC)
thread_title:  response to Who Created It 

message: Reminiscences on the History of Time Sharing, John McCarthy, 1983 -- [demo was performed c. 1957 - 1959] This demonstration was called time-stealing, and was regarded as a mere prelude to proper time-sharing. It involved a fixed program in the bottom of memory that collected characters from the Flexowriter in a buffer while an ordinary batch job was running. It was only after each job was run that a job that would deal with the characters typed in would be read in from the drum. This job would do what it could until more input was wanted and would then let the operating system go back to the batch stream. This worked for the demonstration, because at certain hours, the M.I.T. Computation Center operated at certain hours a batch stream with a time limit of one minute on any job.
This was on an IBM 704 without the "IBM real time package" which would have provided true interrupts.
Research in Computer Utilization Dean N. Arden 1958, discusses details.
The second sentence the in History section needs to be improved with this information. The existing sentence (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... ) is confusing to me like it says something can't be done nevertheless it was done.  Jamplevia (talk) 01:19, 23 February 2022 (UTC)
thread_title:  Time-stealing 

message: === File system ===
Many of the design features of the CTSS file system were later used in the design of the ITS file system, e.g. M.F.D. (FILE) master file directory, U.F.D. (FILE) user file directory, file name conventions consisting of two mono-case, six-letter-maximum-length, separated-by-blanks (spaces) format, e.g. HELLO  MAD. The concept of symbolic links was also first in CTSS and then in ITS.
===Commands===
ITS commands that were designed after CTSS commands include LISTF.
The CTSS ADMIN command has a sub-command, SPY. ITS has OS for "output spy".
Jamplevia (talk) 23:05, 5 April 2022 (UTC)
thread_title: Influence on ITS

message: ITS commands that were designed after CTSS commands include LISTF.
The CTSS ADMIN command has a sub-command, SPY. ITS has OS for "output spy".
Jamplevia (talk) 23:05, 5 April 2022 (UTC)
thread_title: Commands

message: A STUDY OF TEXTILE INFORMATION SYSTEMS 1970
skip
For those who may not be informed of the reason for this last conclusion, it is explained here. The M.I.T. Textile Information Retrieval Program (TIRP) operates within the context of a Compatible Time Sharing System (CTSS) resident in an I.B.M. 7094 computer. There is no equivalent computer in the Research Triangle area, those available being of the I.B.M. 360 series. The latter do not have the CTSS function and TIRP, as written, is therefore not compatible to them. At the time when this particular matter was under examination a rough estimate of the cost of rewriting the program to make it compatible was around $50,000. This estimate, however, was rather casual and would certainly be open to revision.
skip
Prior to each session with the console, attendance at each being from two to about six people, a short discussion was held in which the basic operational characteristics and command structure were discussed. These discussions included description of the connection between the console and the computer and some elementary aspects of the time-sharing environment of CTSS and how TIRP operated within this environment.
-- Jamplevia (talk) 18:00, 8 March 2022 (UTC)
thread_title:  The Textile Information Retrieval Program (TIRP) 

message: THE COMPUTER AND CAREER DECISIONS 1966
===Program: TYPSET AND RUNOFF, an edit by-context program and a right-justifying-type-out program.===
Abstract: From The CTSS User's Manual. The command TYPSET is used to create and edit 12-bit BCD line-marked files. This command permits editing and revising by context, rather than by line number. The command RUNOFF will print out (in a format subject to control words placed in the file via TYPSET) a 12-bit BCD file in manuscript format. RUNOFF contains features which were not previously available, including type-justification.
===Program: DSR, An Experimental On-Line Data Storage and Retrieval System.===
Abstract: From Lincoln Laboratory's report on DSR. This report describes an experimental system designed to test and demonstrate on-line storage and, retrieval of formatted data based on complete internal descriptions of files. The use of internal descriptions allows each user to define, modify, and cross-associate data files to suit his particular needs. The experimental program was implemented by remote use of the Compatible Time-Sharing System (CTSS) facilities of Project MAC at the Massachusetts Institute of Technology.
===Program: TRAC, Text Reckoning and Compiling.===
TRAC also resembles very closely Strachey's General Purpose Macro generator (GPM), the theoretical model of all present macro languages. 
Bibliography: The CTSS User's Manual. Command GPM.
===Program: AN ALGEBRAIC DESK CALCULATOR===
Bibliography: CTSS User's Manual, Sec. AH. 2.18. Command FORMAC.
Jamplevia (talk) 20:51, 8 March 2022 (UTC)
thread_title:  THE COMPUTER AND CAREER DECISIONS 

message: Bibliography: CTSS User's Manual, Sec. AH. 2.18. Command FORMAC.
Jamplevia (talk) 20:51, 8 March 2022 (UTC)
thread_title: Program: AN ALGEBRAIC DESK CALCULATOR

message: Research and Development in the Computer and Information Sciences. Volume 2, Processing, Storage, and Output Requirements in Information Processing Systems: A Selective Literature Review 1970
"The CTSS environment consists of approximately 250 users whose individual load on the system varies from nearly zero up to the equivalent of several hours of IBM 7094 time per month." 
Stevens cites An Analysis of Time-shared Computer Systems By Allan Lee Scherr, Ph. D. Dissertation, Rept. No. MAC-TR-18, 178 p. (M.I.T., Cambridge, Mass., June 1965) 
Jamplevia (talk) 02:48, 9 March 2022 (UTC)
thread_title:  Mary Elizabeth Stevens 

message: A collection of tapes of listings of CTSS source code have survived.  Two people have independently extracted source code from those listing and organized the extracted files in different ways.  There are sections of the listings which neither of them has extracted.  One of them is a security program which enabled administrators to trace an active CTSS user back to the location of their terminal.
Jamplevia (talk) 13:35, 15 March 2022 (UTC)
thread_title:  Reconstructed CTSS 

message: === PL/1 ===
DMR on alt.folklore.computers Mar 25, 1999 One could write and compile Multics PL/1 programs on CTSS and prepare a magtape to be could be carried across the room to the GE machine. (If I recall correctly, the CTSS command was approximately "636tape", where the 636 was an incorrect guess as to the numerology of machine naming.)
=== AED-0 ===
AED-0 is ALGOL Extended for Design. A general purpose programming system including a compiler, source language debugging facilities, and a library of subroutines. The compiler is especially suited to system programming, but includes algebraic statements, recursive functions, and mixed algebraic expressions for general purpose programming as well. The compiler language is an extended form of ALGOL-60, minus multi-dimensional arrays.
AED-0 was used to write DYNAMO.  Jamplevia (talk) 23:39, 25 March 2022 (UTC)
thread_title:  Languages 

message: AED-0 is ALGOL Extended for Design. A general purpose programming system including a compiler, source language debugging facilities, and a library of subroutines. The compiler is especially suited to system programming, but includes algebraic statements, recursive functions, and mixed algebraic expressions for general purpose programming as well. The compiler language is an extended form of ALGOL-60, minus multi-dimensional arrays.
AED-0 was used to write DYNAMO.  Jamplevia (talk) 23:39, 25 March 2022 (UTC)
thread_title:  AED-0 

message: Optimal Prediction of Stationary Time and Series Application in a Stock Market Decision Rule] thesis, Stuart Allen Rooney, 1965. Contains listings in MAD for those programs. -- Jamplevia (talk) 21:49, 9 April 2022 (UTC)
thread_title:  NONLIN, UTOPIA, PREDLIN, PREDOD, EXTRAP, SIGTST and PREDCT 

message: Report of the President 1967 Massachusetts Institute of Technology Bulletin Volume 103, Number 3, December, 1967
Highlights:
* Both of the IBM 7094 computers in current operation on our campus under the Compatible Time-Sharing Systems (CTSS) are overloaded.
* They are, nevertheless, the most sophisticated time-sharing computer systems in existence anywhere.
* We note that our faculty has experienced first hand, as no other faculty ever has, the potential offered by a time-shared computer capability. It wants more.
* A great many improvements and additions to CTSS have been implemented since that time - both hardware and software. In particular, many user-developed programs and subsystems of general interest have been published in the form of system commands for general use. Thus, the system's capabilities have grown considerably as a direct outgrowth of its use on the part of the community. The software facilities offered by the system to the community of users amount to approximately one million words of code, roughly equivalent to a 2,000 page book.
* The only major system improvement implemented last year was the automatic monitoring and control of performance. It involves a complex of programs which monitor various overload conditions and take appropriate actions for relieving them, such as dynamically reducing the maximum number of simultaneous users. See QLOAD MAD, it's a listing from a tape with several programs on it.
* Project INTREX (Information Transfer Experiments)
-- Jamplevia (talk) 19:38, 12 April 2022 (UTC)
thread_title:  1967 MIT President's report 

message: Report of the President 1968 Massachusetts Institute of Technology Bulletin Volume 104, Number 3, December, 1968
Highlights:
* Use of a PDP-7 connected to CTSS for display processing.
* Advanced Remote Display Station (ARDS) connected to CTSS.
* Use of CTSS in West Berlin in 1964 via transatlantic connection. M.I.T.-T.U.B. (Technical University of Berlin) Symposium on Computers in Universities which will take place during the last two weeks of July, 1968. A plan was in place for T.U.B. to receive the first ARDS in time for the symposium.
* Project MAC starts charging money for CTSS resources (ten separate components of service) on the red machine January 2, 1968. MIT had already been charging money for CTSS time on the blue machine.
* MIT Computation Center was redesignated as the Information Processing Center.
* A batch-only IBM System/360 installation that includes a Model 65 and a Model 40 operating in an Attached Support Processor (ASP) configuration is deployed.
* More about Project INTREX (INformation TRansfer Experiments)
* Additional software including DISCOURSE (Architecture and City Planning), ADMINS (Political Science), DYNAMO (Management), AED (Electronic Systems Laboratory) and ICES (Civil Engineering).
* The Sussenguth chemical structure-matching algorithm was used for counting the relevant subgroups in the molecule. In tests on 43 compounds, the execution time on an IBM 7094 computer to search the compound structure for 56 common subgroups ranged from 1.07 to 10.33 seconds, depending on the complexity of the molecule.
* Programming Linguistics, 6.231 ... The special computer language PAL (Pedagogical Algorithmic Language) has been implemented on the 7094 CTSS (Compatible Time-Sharing Systems) system, and is being used as a basic part of the subject.
* ELIZA in retrospect.
-- Jamplevia (talk) 23:28, 12 April 2022 (UTC)
thread_title:  1968 MIT President's report