Multics 843 entries
20 Apr 2024

Glossary - E

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|
Extended BCD Interchange Code. The 8-bit character set made popular by the IBM/360. Multics used ASCII for all its internal data, but read and wrote EBCDIC data to punch cards, tape, and some external devices such as IBM 2780s. Mapping between EBCDIC and ASCII was mostly straightforward, except for a few characters: for example, EBCDIC lacked caret, so its "hooked overline" character was substituted.

Command that prints its arguments on user_output. The first command executed by Multics at the Phase One milestone in December 1967.

Terminal mode implemented by the ring-0 TTY DIM that caused characters sent to the system to be sent back to the terminal for printing. If OFF, then either the terminal did "local echo" or characters typed did not print, e.g. for password input.

echo negotiation
[BSG] Scheme (1979) for conditional character echoing by MCS, echoing "printable" characters until the receipt of a "break character" as defined by software and synchronizing that usably with Multics software, devised for Emacs by Bernie Greenberg to ameliorate the CPU load impact of Emacs. Having since spread to the rest of the Emacs world and since denounced as "not the way to go" (as opposed to just having enough CPU resources) by Craig Finseth ("The Craft of Text Editing"), this scheme did wonders towards its goal at the time. See section VI of "Multics Emacs: The History, Design and Implementation".

[THVV] Implementation details are in MTB-418 The Echo Negotiation Papers (1979-07-11).

[BSG] Not to be overlooked is the repetitive string "DLW" in all the AI ITS pathnames; the late, beloved Dan Weinreb, then 20 years old, was my fan and advocate in the AI world.

(1) CTSS editor written by Jerry Saltzer. See edm.

(2) Exploratory Data Analysis (Exploration de Donées Agréatives). A data analysis subsystem written by ??. Based on John Tukey's book of the same name. Could do graphic plotting via the Tektronix Plot 10 library.

The EDA software was ported to Multics at the University of Grenoble Computing Center, CICG by Bernard Bretagnolle and Bernard Rapacchi. Primary users were from the Banque de donées socio-politques (BDSP) at Grenoble.

Multics command for editing ASCII character stream files.

[JHS] I did TYPSET for 12-bit line marked files on CTSS. Bob Daley liked it, revised it to work with 6-bit line marked files, and named the result EDL. EDA is a later revision to work with ASCII stream files, run on CTSS; at the time that CTSS was the staging area for Multics development. Similarly, roff was a rewrite of [my CTSS command] RUNOFF in BCPL to handle ASCII, again originally done on CTSS by Doug McIlroy. EDA was ported to Multics as edm, by Steve Webber. ROFF was ported to Multics roff, by Art Evans (?).

[THVV, BSG] Extended Instruction Set. A suite of instructions added to the 645 set when the 6180 was introduced. The Decimal Unit (DU) of the 6180 CPU provided these business-oriented instructions, which operate on multiple words or streams of various-sized bytes, and provide functions such as decimal addition and movement of character strings, rather like the IBM 1401. Requiring several words each and their own data-descriptor architecture, EIS contributed significantly to the cost, size, and complexity of the (non-microprogrammed) CPU. Although ideally suited to PL/I string manipulation, EIS's need for restartability around page faults was a constant source of bugs and failures. Of the 100 or so boards in a 6180 CPU, over 30 were EIS.

[THVV] EIS added so many instructions to the CPU that another bit was required for the opcode. Some EIS instructions are "multiword" and are followed by two or three "descriptor" words (confusing, not the same as a B5000 address descriptor or a 645 entry in the descriptor segment). Descriptors contain an address, pointer-register flag, and indirect modifier.

EIS instructions operate on 4- 6- or 9-bit alphanumeric strings, 4- or 9-bit numeric strings, or bit strings. The EIS processor has its own set of address registers. 20 opcodes deal with loading, storing, and modifying the address registers and the "pointers and lengths." 7 opcodes with comparison, scanning, and translating (PL/I index() in one instruction). 4 for moving. 3 for numeric move, compare, and edit. 5 for bit strings. 2 for binary to decimal and back. 8 for decimal arithmetic, with 2- and 3-operand forms. And the move with edit instructions uses "micro operation codes" to direct the edit: there are 17 of these.

[Ron Harvey] The EIS opcodes and micro ops are listed in this file .

Elf Aquitaine
Multics site: Centre de Recherche Elf Aquitaine (French oil company) (Pau, France). 1983-1985. Also known as SNEAP, Societe National Elf Aquitaine (Production).

[Jim Browning] It was used as a front-end for a Cray and as a development platform for some AI work being done by the company (they needed something to run LISP). Jean Paul Creste and D. Lebarbier were Bull SiteSA's assigned to the project. We also developed a videotex interface to the system so that you could access the system from a Minitel terminal. When they moved to the new research facility in Pau they replaced the Multics machine with a HP-UX box (much cheaper).

[BSG] Eligible for multiprogramming. The various scheduling algorithms over the course of time controlled which processes become "eligible" based upon their time since last interaction, approximate working sets, membership in load control groups, and the like. In order to make a process eligible, the first page of its PDS and of its descriptor segment has to be wired: making them so is called loading the process, and they are unwired when it loses eligibility (unloading). Since this potentially requires I/O, the decision to make a process eligible has finite cost and delay. When a processor seeks candidate processes to run, as in real life, only those eligible and loaded qualify. The idle processes are always thus. See scheduler and traffic control.

[BSG] From, "Editing MACroS", a video editor derived from David Moon, Guy Steele and Richard Stallman's editor in TECO macros of the same name. Bernie Greenberg began Emacs in MacLisp in 1978. Multics Emacs represented Multics' first venture into the modern UI world of managed screens, WYSIWYG editing, and character-at-time I/O and its first major offering not in PL/I, and constituted one of the first wholly unforeseen internal developments in the life of the product. Its use of Lisp as implementation and extension language was the ultimate inspiration for the use of Lisp by GNU Emacs. MCS enhancements and a video system followed in its tracks. Multics Emacs was always spelled "Emacs", not "EMACS", on MULTICS. See "Multics Emacs: The History, Design and Implementation".

Executive Multics Change Review Board. Six-member MCR dispute resolution board. See MAB-048-02.

Answering service command to log in an anonymous user without asking for a password. The enterp command asks for a password; all anonymous users on a project must have the same password. Info segment for enter command

[AG91] An item cataloged in a directory: segment, link, multisegment file.

[AG91] Name given to an item contained in a directory. It may contain one or more components separated by periods. All entrynames given to entries within one directory are unique.

entry point
[AG91] An address in an object segment referenced by a symbolic name; e.g. that which would be produced by the PL/I procedure, subroutine, or entry statements.

Executive Office of the President. A benchmark Multics won, but didn't get the sale on. Otherwise Oliver North's e-mail would have been on Multics instead of PROFS.

Early PL/I. This compiler was done at BTL in the mid-60s by Doug McIlroy, Bob Morris, and others when it became clear that Digitek wouldn't produce a compiler. EPL was written in TMG and was incredibly slow. See the article on PL/I.

EPL BootStrap Assembler. EPL compiled into EPLBSA, which was then assembled. Written by Bill Poduska in FORTRAN. Succeeded by ALM.

[BSG] 6180 opcode 352, "effective pointer to pair BP ((utility) base-pointer)" (eapbp on the 645), the most common instruction in Multics code. Not different in concept than a 360/370 LA or an Intel LEA, this instruction placed its effective address, segment, word, ring, and EIS bit offset, in pointer register 2 (bp; there were also eppap, eppab, etc. for the other seven registers). The power of this instruction, and its claim to fame, is its interaction with indirection: the standard way of loading a pointer in memory (ITS pointer) into a pointer register is not to use a "load pointer from memory" instruction (the 6180 had one, but it saw no use), but to indirect through that pointer in memory, and load the resulting "effective pointer" into that register. The computation of effective ring (see TRR) during the indirection process, as well as the possibilities of an intersegment link being used as an indirect word-pair or further indirection and every other aspect, side-effect, and possibility of the indirection process seemed always to be appropriate for every pointer load.

Multics site: Etablissement Principal du Service Hydro-Océanique de la Marine (Brest, France). Map design. 1980-1986.

equal convention
Command argument convention that specifies the interpretation of equal signs in file name arguments. Library function equal_name_ provides this feature. A command that operates on related filename arguments should implement the equal convention. For example, the rename command operates on pairs of arguments. The equal convention specifies how equal signs in the second element of a pair are replaced by components of the first element. A user can say

rename fred.*.pl1 ==.old

to rename fred.incl.pl1 to fred.incl.pl1.old, fred.debug.pl1 to fred.debug.pl1.old, etc. See Star Convention.

The # character in terminal input erases itself and the preceding character in edited input mode. (The erase character was " in CTSS.)

[BSG] Error Report Form Number - report of a system crash, at the MIT Multics flagship/development site. Crashes were identified by erf number. "erf" was also the verb in ifd to load up an FDUMPed crash image.

[DMW] The standard process I/O switch that commands normally use for reporting errors or abnormal events. The com_err_ subroutine is commonly used for this purpose.

[BSG] Deciduous segment containing a table of distinct integers ("error codes") addressable by documented names and human-readable text messages stating their documented meanings. For instance, the error code error_table_$invalid_segno has the meaning (and text string)

There was an attempt to use an invalid segment number.

associated with it. When passed to the error-reporting routine (com_err_) such codes cause reporting of the associated message. Unlike Unix and C error codes, which are manifest constants that must be resolved at compile time, Multics error codes were referenced symbolically and dynamically linked, so no dependence on any value of an error code was ever compiled into a program. Users can also create their own error tables, which encode their error codes as packed pointers, but these are of limited utility as the encoded segment numbers are meaningful only in one process.

Multics terminal input supports several conventions to allow the input of any ASCII character, no matter what kind of device is being used. The \ character is used as an escape. In general, \ followed by three octal digits inputs the character with that value: thus, \141 inputs a lowercase a. Other conventions allow for the input of @ and #, the kill and erase characters, for inputting characters not present on a particular device's keyboard, and for inputting upper and lower case letters from an uppercase-only device such as a Model 35 TTY.

Emergency ShutDown. This operation is invoked after a system crash. The operator runs a BOS command, ESD, which restarts the crashed system at a well-known location, where special code flushes the virtual memory to disk. Organizing storage system data structures such that this could be done in a consistent and reliable fashion was a major feature of release 6.0, which completed the implementation of NSS.

Electronics Systems Laboratory. An MIT group that did research in electrical engineering. Produced the WHIRLWIND computer, the APT and AED languages, and the Kludge.

event channel
See IPC. A process declares an event channel so that it can receive wakeups from other processes. There are two types of channels: event wait channels, on which the declaring process blocks explicitly, and event call channels, declared with a handler procedure.

The Cookie Monster hack worked by setting up an event call channel that invoked the monster as a handler.

[BSG] Opposite of paging-in, to remove a page from memory, which may or may not involve writing, whether or not the page was "modified" while in core (see page multilevel). A Greenberg neologism that went in with NSS for a common concept.

Proposed I/O controller to work with Merlin CPU. See Multics Company.

Multics command that executed a script of commands from a file, with argument substitution. Descendant of Louis Pouzin's RUNCOM facility for CTSS. Info segment for exec_com command

[BSG] Button on the 645 and 6180 CPUs that, according to a switch next to it, either causes an "execute fault" or executes the 36-bit switch register in absolute mode. Either is a means of crashing the system in extremis. The execute fault is preferable, because it causes the Multics software to halt all other CPUs before returning this one to BOS, and admits of the possibility of organized restart. For Multics use, the switch register always contains an "Execute double" (see Control Unit) of (absolute location) 4000, 4002, or 4004, which all are in the BOS "toehold", transferring control to it, causing swapping of core to the BOS partition and loading of the BOS executive. These locations differ in their treatment of successive calls and ability to dump BOS, if the latter is being debugged. Use of these switches requires manual halting of other CPUs.

execute bracket
Range of rings that can execute a given segment. See ring brackets.

Program conducted by the Boy Scouts of America for young people ages 14-20. Several Explorer posts focused on teaching computing and used Multics in the 1970s and 80s. Post 692 in McLean, VA, Post 414 in Phoenix, AZ, and Post 500 in Rome, NY were some.

extended access
The file system supports additional access control bits, not interpreted by the hardcore, for the use of inner ring extensions to the file system's access semantics. This feature has been applied to provide special access control segments for tape reels and peripheral devices by RCP, and to provide access control on individual messages in a message segment.