Talk:Compatible Time-Sharing System/Archive 1

Cambridge Time Sharing System
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)

27K?
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)


 * 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:  . 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)


 * 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)

First operation of CTSS
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)


 * 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)


 * 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)

CTSS People

 * Bob Fabry

THE COMPUTER AND CAREER DECISIONS
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)

CTSS Source code
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

Influence on Unix
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)

UNIX similarities to CTSS
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  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. would copy file1 to file2 and file3 to file4.

Jamplevia (talk) 22:57, 18 December 2022 (UTC)

Why was it not made before
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)

Who created it
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)

response to Who Created It
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&oacute;, Daley, and Daggett wrote the 1962 FJCC paper on this version. 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 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)