Multics 826 entries
11 Nov 2015

Glossary - T

Glossary of Multics acronyms and terms. Entries by Tom Van Vleck ([THVV]) unless noted.

Index| A| B| C| D| E| F| G| H| I| J| K| L| M| N| O| P| Q| R| S| T| U| V| W| X| Y| Z|
Test and Diagnostic. Until late in the 70s, all T & D on Multics hardware was performed by field engineers running offline tools provided by a different part of the GE (or Honeywell) corporation. See Online T & D.

[BSG] The offline tools run by the field engineers booted from a special tape containing and exploiting its own "tape operating system". As the field engineer at the operator's console would type the cryptic IDs of test programs he wanted run, the T & D TOS would shuffle the tape back and forth and load and run them. As with all properly written Ts&Ds, the core system used a mercilessly limited subset of the huge instruction set of the 6000 processor. More complex capabilities, from "inessential" address modifiers up to the microprogram-like EIS, as well as all of the virtual memory and protection features of Multics, saw no use at all except in the tests designed specifically to evaluate their function. While online T&D is a wonderful thing for optional hardware, offline T&D, written under these critical constraints, is a necessity for a processor at the heart of an online service.

Tague Project
Another attempt to start a company to build Multics hardware independent of Honeywell, based on the 80386, led by Michael Tague, former Opus manager, in 1987. According to Olin Sibert, this project was focused specifically on selling the new system as a secure system. See also Multics Company.

[BSG] Multics uses tape for file backup, for disk snapshots when the system is down, for T&D's, and for occasional file interchanges with other systems. Tape software was not considered very important, it was considered a throwback to an earlier age. There were no "job stacks from tape", "spooling to and from tape", or the like.

[THVV] Initially the system supported 556 and 800 bpi tapes. 6250 bpi and streaming cartridge tape support was added in the 1970s. Multics Standard Tape format as originally defined in MSPM BB.3.01 was very different from other systems' tape formats: for example, error recovery was so good that one could take a drive offline, rewind the tape, mount it on another drive, and change unit assignments so the new drive had the old drive number: and the software would note that the tape had been repositioned and space forward to the correct record number and continue reading! But MST format defined EOF marks every 256 records to speed up positioning to an exact record number, and this made it very difficult to copy an MST on any other system, let alone read it.

The tape drives used on the GE-635 were some of the first self threading drives. As a result they needed an extremely long tape leader before the "reflector spot" and this was a pain for MIT operators when loading the tapes onto the IBM 7094 running CTSS. Lee Varian wrote some tricky code, and we put two load point reflectors on the tapes we shuttled between the 7094 and the 635. The 635 would only sense the farther-in load point; the 7094 would load to the early load point and then Lee's code would space it way out and rewind back to the 635 load point. If we didn't find the right label, his code tried three times and then deliberately broke the tape so the operator would have to put on new load points at the correct places. (You could break a tape on the '94 by putting it into high speed rewind and then doing a reset data channel command, I suppose it's safe to reveal this now.)

[WOS] The mxload package is available to read Multics tapes on Unix and Windows machines.

Table Building Language. A simple language written by Bob Freiburghouse of GE CISL that combines user-defined actions into an abstract machine. Used to build table-driven predictive parsers and code generators in the Multics FORTRAN compiler.

Trusted Computing Base. See Orange Book.

Transmission Control Protocol/Internet Protocol. ARPANet packet protocols introduced in the late 1970s, replacing the older "NCP" protocols.

Tech Square
Technology Square. Office complex behind MIT. 545 Tech Square was the office building that housed Project MAC. 575 Tech Square was the building where CISL and the Cambridge Project were located. Also located in 545 Tech Square was the IBM Cambridge Scientific Center, home of CP/CMS. Story: Tech Square.

Tape Editor and Corrector. An editor first written for the PDP-1 by Dan Murphy, then implemented on other DEC machines, CTSS, Multics, and other systems. TECO for Multics was written by Rick Gumpertz and modified by Mike Grady. Moon, Steele and Stallman's original EMACS on ITS was written as a set of editor macros in TECO.

[BSG] TECO fails at trying to be at once a programming language and the command language for an editor. Thus, as ITS TECO developed into a full-blown language and editor implementation substrate with catch and throw and hash tables and all manner of features including WYSIWYG video display, TECO "programs" became veritable core-dumps of printable and unprintable characters. Multics TECO (in PL/I) implemented but a small subset of this, and never achieved that state of development (or use). The tacit repudiation of TECO for Multics Emacs gave Stallman and the rest of the Emacs community much joy. See also QED.

[BSG] For "text editor", a powerfully enhanced qedx by Jim Falksen of Honeywell Phoenix, mid '70s. Once Multics had acquired product status and a certain amount of momentum, new tools were not assimilated as rapidly and enthusiastically as theretofore. While the weakness and ugliness of qedx, especially its internal "programming language" daily presented obstacles to its many users, any attempt to replace or enhance it rapidly became bogged down in the "general editor issue", the "right way to design an editor", "how to have a Multicious editor", compatibility with multitudinous extant qedx "programs", etc., all problems larger than we could solve, and official progress on the "editor front" seemed impossible. Falksen ignored all this, creating ted, enhancing it, and adding features on request for his grateful and enthusiastic private user community, not at all unlike the development paradigm undertaken at the height of this by Emacs, which broke the "editor" impasse by wholly usurping the terms of discourse in 1978. The ted editor was added to the Multics product line, as an unbundled product, sometime in the 80s.

Telefunken TR440
[PG] Telefunken Computer, for reasons known only to them, purchased a copy of the Multics PL/I compiler from MIT in the spring of 1973. I spent the early part of the summer (June 73) working for Roger Roach to make a version of the PL/I compiler front-end that was targeted at the TR440 machine. I then bootstrapped the front-end, captured the internal (tree) representation, wrote it to tape, and shipped it to Germany. Story: The Telefunken TR440.

PDP-10 operating system developed at BBN in the late 1960s. Dan Murphy has posted the classic 1972 paper on TENEX by Bobrow, Burchfiel, Murphy, and Tomlinson. Ancestor of TOPS-20.

Interactive processes usually have a typewriter terminal (tty) attached to them. This device is where the standard_input and standard_output streams are attached via the TTY DIM. The Answering Service owns all terminals when the system starts up, and attaches a terminal to the user's process at login, on reconnect, or when the dial and slave commands are used. Story: Home Terminals.

terminal operators
CISL staff who typed in the Multics documentation written by the technical writers. They spent a lot of time programming in runoff and later, compose.

terminal type
Name for the kind of terminal device connected to a TTY DIM channel. For a dialup channel, this type is set by experiment when the channel dials up; a user process may then change it after login.

[BSG] Said of a segment. To "make unknown", to remove the binding between a segment number and a file in a process, the opposite and complementary operation of initiate. Sort of like closing a file, but not quite, for no promises of the file being consistent on disk are made: being known, which is orthogonal to being active, is a state of relation between a process and a segment, not a file and the disk. From a data reliability viewpoint, this is a major deficiency of the Multics scheme.

Text formatting language invented by Donald K. Knuth. A version was written for Multics in the late 1980s. John Wilson worked on this at MIT.

Full text indexing software, used at Rennes to implement MEDAGRA. (Manual: DV74)

Condition in which the combined working set of the programs a time-sharing system is attempting to run simultaneously exceeds the physical memory available, so that the system spends most of its time generating and servicing page faults. First named by Peter Denning. Multics designers spent a lot of time trying to prevent and overcome thrashing; for example, see pre-paging.

Time-sharing computer systems provide multiple simultaneous users a program execution environment. General-purpose timesharing systems, like Multics, were contrasted with special-purpose systems that restricted the programs a user could run or the languages a user could program in. Timesharing supervisor programs manage system resources by assigning them to different users at different times, transparently to the user.

TransMoGrifier. Compiler-compiler language created by Bob McClure at Texas Instruments about 1964. Used by Doug McIlroy and Bob Morris to write EPL. Some TMG source is online.

TermiNet 1200. A TN300 that ran at 1200 baud.

TermiNet 300. A GE hardcopy terminal that ran at 300 baud. The printing mechanism had the alphabet on little metal fingers sticking up from a horizontal belt. A hammer for each print position hit the finger against the ribbon when the right character passed the print position. Used tractor fed paper, same size as printer paper.

Multics customer. Two sites in Japan.

Transaction Processing. Feature added in MR7.0. There are several aspects to supporting transactions. One part is the database commit/abort/rollback features provided in FAMIS and Data Management. Another part is the definition and management of transaction requests; Multics processes are too expensive to have one per transaction terminal, so a multithreaded process similar to the answering service's dialup_ is provided to accept and queue transaction requests, dispatch them to servers, and display transaction output. Transaction terminals can be permanently attached to the TP client process, or dialup terminals can be attached to a process using the dial command. (This facility was created by Tom Van Vleck during the Big Snow of 1978, and subsequently redesigned, extended, and enhanced by Melanie Weaver and Monte Davidoff.)

[BSG] Temporary Pointer Register - a tripartite processor register in which the effective address of instruction operands is developed. The three components are segment, ring, and offset (location within that segment) of reference. At the time of a page fault or other mid-instruction exception, the TPR value(s) saved in the processor state identify the address faulted on. Not valid for interrupts, though, which only occur between instructions. See TRR.

Trouble Report. Multics had its own database for tracking and reporting on problems.

traffic control
Supervisor subsystem that performed the functions of controlling process /processor binding and scheduling (see scheduler), i.e., the allocation and management of processor resources. Also included under this rubric are interprocess communication. Multics traffic control is based upon Jerry Saltzer's Ph.D. thesis.

Trap attribute. The initial Multics file system design had five access control bits: TREWA (Trap, Read, Execute, Write, Append). If the effective access for a user contained the Trap bit on a segment reference, the plan was to execute a "trap procedure" that could return new values for REWA. This feature was never implemented, because we couldn't find a clean way to define the execution environment of the trap procedure.

Later design discussions proposed using the Trap attribute to implement a feature something like Unix setuid, switching the active userid when a procedure with the Trap attribute was called. This design was never finished.

1960s management group consisting of the leaders of MIT (Robert M. Fano), GE (John Weil, then Eugene White, then C. Walker Dix), and BTL (Edward E. David Jr.).

Next-level 1960s management group, reporting to the Trinity, of the programming managers of MIT (F. J. Corbató), GE (A. L. Dean Jr.), and BTL (Peter G. Neumann). Reporting to the Triumvirate were two Project Consultants (Edward L. Glaser and Jerome H. Saltzer), the Project Administrator (George D. Bennett), the Development Director (Robert C. Daley), and the Integration Director (Izhar Shy).

[BSG] Temporary Ring Register - the ring component of the 6180 CPU's TPR (Temporary pointer register). The notion of the ring of reference is a subtle and ingenious one, innovated on Multics through the thesis of Michael D. Schroeder. It is defined as the lowest level of privilege involved in the computation of an address up to this point. Starting equal to the ring of execution (see PRR), the TRR is raised (made "less privileged") as indirect words are indirected through - both the ring number stored in the indirect words and the write bracket (the highest ring that could have put that number or pointer there) of the segment containing the indirect word are factored in. The right to access data at every single processor cycle is computed by comparing not the PRR, but the TRR with the ring brackets of the segment being referenced. This is done automatically, and does not require "adjust requestor privilege level" (based on the same concept) as on the Intel architectures which pay tribute to it. Through this mechanism, the supervisor is able to reference user-supplied arguments (passed by pointer, as PL/I requires) without fear of security breach.

Cambridge Project feature?

IBM's time-sharing system for the System/360 model 67. Developed about the same time as Multics. There was friendly rivalry and mutual respect between the two development groups.

Time-sharing system related to GCOS timesharing, run on the RADC 645 in 1970 before Multics was delivered to them.

Teletype. Generic term for any asynchronous terminal device. Terminal device channels have names like "tty123", a convention later adopted by Unix.

Device Interface Module for terminals. Hardcore software that handles communications, managing the FNP. Pronounced "titty-dim."

[MTB-607] The ring-zero TTY DIM provides an interface between outer-ring processes and the multiplexer hierarchy. It also provides, on request, most of the standard Multics terminal functionality. Canonicalization, erase and kill processing, escape processing, translation and conversion on both input and output, and echo negotiation are all done here. Originally written to perform in a simple line-at-a-time environment, it has been enhanced piecemeal to support more sophisticated terminal functions, such as the window/video system and emacs. It consists of about 7000 lines of PL/I and a small amount of ALM.

[THVV] Story: Multics Communications and Networking.

Teletype Model 35. 110 baud uppercase-only terminal. Multics supported these devices, but it wasn't pretty. If you logged in using the (uppercase) LOGIN command, the answering service assumed that you had an uppercase device and set the terminal modes so that you entered capital letters by preceding them with backslash. You could choose an output mode with backslashes (^edited) or without (edited). Generally used roll-fed paper with friction feed. A movie clip from 1964 of MIT Prof. Robert M. Fano demonstrating CTSS on a Model 35 Teletype is available on YouTube.

Teletype Model 37. The M37 TTY was the first terminal used on Multics, because it had upper and lower case and spoke ASCII, same as the software, and because it was faster than other terminals at 150 baud. The Model 37's printing mechanism had a moving carriage, with a single print hammer and dies for each character on a little matrix that jumped about in front of the hammer. The M37 used tractor-fed narrow paper and was quieter than the Model 35, because of sound deadening material inside the case. There were three drawbacks to the M37: the keyboard touch, which was extremely stiff; the output, which was rarely letter quality, varying in both darkness of impression and horizontal alignment; and the printing mechanism, which covered what you were typing until you rested for about a second. Make that five drawbacks: the carriage was only 80 characters wide, and the fonts were not replaceable. IBM 2741s and later clones became the most commonly used terminals on Multics in the late 60s, winning on all five counts. See message coordinator.

Editing program for CTSS written by Jerry Saltzer. This program handled "line marked" files in the 12-bit character set, and allowed upper and lower case editing, very similar to the EDL and EDA programs for six-bit and ASCII files respectively. Files edited by TYPSET were then formatted by CTSS RUNOFF. See Development Documentation.