Talk:Compatible Time-Sharing System

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Page name[edit]

I thought about moving this to "Compaitble Time-Sharing System", and turning this into a disambig page, but I don't have the energy; the Cray system is so rare, and the MIT system so historic, I'm not sure it's the right move anyway. Noel 19:16, 3 Sep 2003 (UTC)

The system is best known by its abbreviation. I think having a disambiguation page where 99% of all people will go one way is pretty lame, so I think the current setup is the right way to go.
By the way, what was CTSS compatible with? I never could figure that out. [Ans: FMS; see article.]
CTSS was compatible in that it allowed both batch and interactive processing at the same time. Simsong (talk) 15:22, 3 September 2017 (UTC)[reply]
It also was compatible in that mostly-unmodified FMS jobs could be run on interactive CTSS sessions. Jamplevia (talk) 21:32, 18 February 2022 (UTC)[reply]
MIT started with FMS and modified and extended it. See Corbato, May 1983. -- Jamplevia (talk) 11:58, 11 April 2022 (UTC)[reply]

CTSS Source code[edit]

Paul Pierce's CTSS source archive is at

 https://www.piercefuller.com/library/ctss.html

There you can find a 5MB ZIP of the CTSS listing tape, with everything. Supervisor, commands, salvager, etc. This is a wonderful resource. You'll have to know a little FAP and MAD to understand it. There are even a few programs in AED-0, an Algol variant.

Rob Storey has been posting in alt.folklore.computers about the 7094 emulator he's writing. It has progressed to the point where it can run IBSYS and FORTRAN IV. Some folks suggested that he try CTSS next. Sounds like a great project.

from alt.folklore.computers

Cambridge Time Sharing System[edit]

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)[reply]

27K?[edit]

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)[reply]

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: <ref>CTSS commands could use all 32K. A citation is sought to document this; please see the discussion page.</ref>. 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 {{fact}} 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)[reply]
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)[reply]

Influence on Unix[edit]

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) [1][2][reply]

References

  1. ^ Ritchie, Dennis M. (1977). The Unix Time-sharing System: A retrospective (PDF). Tenth Hawaii International Conference on the System Sciences. a good case can be made that UNIX is in essence a modern implementation of MIT's CTSS system
  2. ^ Seibel, Peter (2009). Coders at work : reflections on the craft of programming. New York: Apress. p. 463. ISBN 9781430219491. The things that I [Ken Thompson] liked [about Multics] enough to actually take were the hierarchical file system and the shell

UNIX similarities to CTSS[edit]

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.

@Jamplevia:, 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)[reply]

First operation of CTSS[edit]

I would guess that CTSS was not operational until 1963, not 1961 as stated. CTSS ran on modified 7094. http://www.multicians.org/thvv/7094.html The first delivery of a 7094 was in 1962. https://en.wikipedia.org/wiki/IBM_7090 The first (and only?) edition of the manual for the IBM 7750 (part of CTSS) was published in 1962. http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/datacomm/7750/D22-6627_7750_GeneralInfo_1962.pdf

NormHardy (talk) 00:29, 24 April 2016 (UTC)[reply]

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. The 7750 was necessary for the 16 Model 28 teletypes and Selectric typewriters. Before that they used the system only with 3 Flexowriters with 7607 channel installed by the group of Teager, this did not use 7750 at all. But it is evident that until at least May 3 1962, the system couldn't be operational as a real time-sharing system, because IBM 709 also lacked timer. So the best they could do was likely to dump the core program to tape at any time by a command from a console, and then restore it and continue executing it from where it stopped before dumping. The user on the console could then run another program, and the supervisor could restore some dumped program, when the program finishes. Which means that programs couldn't run simultaneously (multiprogramming).
It is also interesting that the listf command, and all the working with the files, was there already when they only had tape drives with IBM 709. The listf then was not said to list the contents of the directory, but of the "private tape" of the user. Not sure what commands were for the first time there for the interactive operating system, at least input and edit were, which though simulated making the programs with the punched cards.Eiusmod (talk) 13:47, 27 May 2016 (UTC)[reply]
No, i looked into the FORTRAN Monitor System, there is no concept of files at all. So all this working with files, this was new to an interactive operating system, of which CTSS likely was the first. In spite that it was first implemented for using tapes, it was likely done so with a view that it will be used for disk drives. Which were not even new things at the time, the first were made in 1956.Eiusmod (talk) 17:06, 27 May 2016 (UTC)[reply]

Why was it not made before[edit]

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)[reply]

Who created it[edit]

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)[reply]

response to Who Created It[edit]

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. [1] 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: [2] 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.

References

  1. ^ An Experimental Time-Sharing System
  2. ^ The Compatible Time-Sharing System: A Programmer's Guide

Thvv (talk) 20:52, 23 September 2019 (UTC)[reply]

Time-stealing[edit]

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)[reply]

Influence on ITS[edit]

File system[edit]

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[edit]

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)[reply]

Online Documenatation[edit]

INFO On-line Documentation of the Compatible Time-sharing System By Joel M. Winett · 1965 An on-line system for storing and retrieving information about the programs associated with the Compatible Time-Sharing System (CTSS) has been developed to be included as a CTSS command. same document available as MIT-ESD TDR-65-68 and MIT-LL TR-387

"A model of this information [on-line documentation] system has been implemented as a CTSS command program with the command name INFO. The system may be initiated as a console command or may be "chained to" from another program. If, when the INFO system is called, the NAME of a program is give as a command parameter, the documentation on that program will be printed, after which the system will call CHNCOM."

Jamplevia (talk) 15:11, 23 February 2022 (UTC)[reply]

Thanks, this is very interesting. The more well known hypertext INFO (on which GNU info was modeled) was preceded by a much simpler plain text INFO that could select between various types of information: INFO, ORDER, RECENT, or ERROR. No ITS hacker I asked remembered anything about this. Does it ring any bells with regards to the CTSS INFO? Lars Brinkhoff (talk) 17:35, 12 March 2022 (UTC)[reply]
@Larsbrinkhoff I found a PDF of Winett's INFO thesis.
On-line Documentation of the Compatible Time-sharing System Jamplevia (talk) 23:03, 12 March 2022 (UTC)[reply]
Thanks! I read it, and found one trivial similarity: CTSS INFO has D for "description", and ITS' old INFO has Altmode D. Lars Brinkhoff (talk) 07:33, 14 March 2022 (UTC)[reply]

The Textile Information Retrieval Program (TIRP)[edit]

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)[reply]

THE COMPUTER AND CAREER DECISIONS[edit]

THE COMPUTER AND CAREER DECISIONS 1966

Program: TYPSET AND RUNOFF, an edit by-context program and a right-justifying-type-out program.[edit]

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.[edit]

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.[edit]

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[edit]

Bibliography: CTSS User's Manual, Sec. AH. 2.18. Command FORMAC.

Jamplevia (talk) 20:51, 8 March 2022 (UTC)[reply]

Mary Elizabeth Stevens[edit]

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) Open access icon

Jamplevia (talk) 02:48, 9 March 2022 (UTC)[reply]

CTSS People[edit]

Reconstructed CTSS[edit]

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)[reply]

Languages[edit]

PL/1[edit]

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[edit]

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)[reply]

NONLIN, UTOPIA, PREDLIN, PREDOD, EXTRAP, SIGTST and PREDCT[edit]

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)[reply]

1967 MIT President's report[edit]

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)[reply]

1968 MIT President's report[edit]

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)[reply]