HTML updated  2/25/95

The proposed Multics FAQ Glossary project has grown to about 150K
of text, as people remember terms and definitions we used.
I tried to post a version of it about the 10th, but it never reached
the east coast.. so I am sending this to Bernie so he can post it.
There are still entries with a ? meaning they need to be written or
expanded.  We seem to be tending toward more of an encyclopedia format 
than a dictionary; some entries diverge from their subject in interesting 
ways.  If you see anything that would offend or belittle anyone, it's 
unintentional; point it out and I will remove or reword it.  I have tried 
to stick to present tense describing features of Multics that still 
exist, but it's easy to slip into past tense: if you spot any of these, 
point them out to me so I can fix them too.
Send me contributions and I'll merge them into the file, and post it 
March 1 with the other FAQs.  -- <>

Glossary of Multics acronyms and terms.
Last modified: Mon Feb 20 1995

Please post corrections to alt.os.multics or mail them to me.

Entries by Tom Van Vleck unless noted.
02/06/95 THVV corrections from Bernie Greenberg
02/06/95 THVV corrections from Bruce Sanderson
02/07/95 THVV Major additions from Bernie
02/08/95 THVV Major additions from Bernie
02/09/95 THVV Corrections from Richard Shetron
02/09/95 THVV Major additions from Bernie
02/09/95 THVV Major additions from Bernie
02/12/95 THVV Additions from Vince Scarafino
02/14/95 THVV Additions from Dave Vinograd
02/14/95 THVV Additions from Conrad Longmore
02/14/95 THVV Major additions from Bernie
02/15/95 THVV Major additions from Bernie
02/15/95 THVV Additions from Earl Boebert
02/15/95 THVV Info on SIPB from Bob Frankston
02/17/95 THVV Major additions from Bernie

 Name of a group in the Air Force that operated the last of the AFDSC
 Multices in the Pentagon.
 First IBM terminal with Selectric mechanism.  Used on CTSS and
 Multics.  Built into a desk with a desk-side box for the electronics.
 Row of switches above the keyboard for doing things like controlling
 the paper tape reader.
 IBM terminal with Selectric mechanism, came after the 1050.  Smaller
 desk.  Widely used on CTSS and Multics.
 The second-generation Multics machine, with major architectural
 improvements over the 645.  Also, the generic term for the
 architecture of all subsequent Multics machines produced by
 A simulation environment, that simulated the 645 machine (at first
 called the 636) on the GE635 under GECOS.  This environment was used
 for initial debugging and bringup of Multics in the 1966 time frame.
 The computer system that Multics first ran on, produced by General
 Binary card format used by the I/O daemon for punching and reading.
 Inherited from CTSS.  Named after the 5-7 punch in column 1 that
 identifies the format.
 Steve Webber wrote this command, which becomes the user's command
 processor, remembering whatever used to be the command processor, and
 expands user-defined abbreviations before parsing the command line.
 This tool is a direct descendant of . SAVED, ("dot saved") on CTSS,
 written by Noel Morris and Tom Van Vleck.
 Address Base Register.  The "segmentation" registers in the 645 CPU.
 See pointer register.
 The Multics absentee facility is like traditional batch processing,
 or the UNIX cron facility.  A user creates an exec_com file and
 submits it using the submit_abs_request command, and the answering
 service will pick it off the queue and run it later.
 (1) An absolute pathname descends from the root.  It begins with >.
 (2) An absolute address, as opposed to a "paged," "virtual," or
 "appended" address, is a physical core address.  The CPU uses
 absolute addresses in the DBR and in PTWs, and during initial system
absolute mode
 The hardware startup mode of the 6180 and 645 processors when the
 hardware mode knob is turned to "Multics". The CPU behaves more less
 like a GCOS processor, and paging and segmentation don't seem to be
 operative.  In fact, the distinction is subtle: When the "mode" knob
 is at "GCOS", paging and segmentation really aren't there. But in
 "Multics" position, "absolute" mode is equivalent to running in an
 unpaged segment at location 0, and it is even possible to reference
 segmented addresses: appending unit activity is optional and per
 control unit cycle.  An attempt to actually transfer to an address
 "in a segment" throws the CPU into appending mode, where instruction
 fetches and non-indirect, non-pointer register references come from
 the segment pointed to by the PPR.  Also, faults and interrupts put
 the CPU back in absolute mode, but the second instruction of the
 fault vector is always, in Multics, a transfer to a segmented
 address, restoring appending mode (even though the SCU instruction
 preceding it that stored the very status of the appending unit, inter
 alia, was executed in absolute mode!)  See bootstrap1.  BOS was not
 run in absolute mode, although it transferred to bootstrap1 in
 absolute mode. [BSG]
access control
 The Multics feature that checks if a user can do something.  The user
 identity, established at login, is checked against the ACL of the
 thing being accessed.
 Multics comes with an elaborate accounting system, that summarizes
 usage and produces multiple printed billing reports, written by Tom
 Van Vleck.
 Said of a segment.  An active segment is a segment, that is to say a
 file (see virtual memory), that has a page table in core.  Only a
 small fraction of the files in the whole system have page tables in
 core at any one time, namely, those "actively" being used.  Segment
 control keeps a list of all processes that have SDWs for each active
 segment, to be able to disconnect them when the segment is
 "deactivated" or access to it is changed. [BSG]
active function
 A command, enclosed in brackets, inserted in a command line.  The
 shell invokes the inserted command and captures its return value and
 put the value in the command line for further evaluation.  For
 example, delete [files *.pl1] deletes all PL/1 files in the working
 directory.  The term "active function" comes from Calvin Mooers' TRAC
 language, and was adopted to name a feature previously called
 "interjected commands" in earlier versions of the shell.
 Access Control List.  A list of user names and project names in
 combination specifying individual and group access rights to a
 segment.  First introduced in Multics.
 Access Control Segment.  A segment whose effective access determines
 access to some other resource.  ACSs for peripheral devices are kept
 in >sc1>rcp.  ACSs for logical volumes are kept in >lv.
 Multics site: (Calgary Alberta, Canada).
 Later name for Industrial Nucleonics.
 Advanced Development Program.  Honeywell term for a new system
 architecture in the late 1970s.
 Algol Extended for Design.  Language developed by MIT's Electronic
 Systems Laboratory in the mid 1960s.
 Advanced Engineering Program.  A GE/Honeywell co-op program.
 Selected students rotated through jobs in LISD while getting a
 Master's degree.
 Air Force Data Services Center.  Located in the Pentagon, this site
 had 5 systems: two were multilevel secure, and one was unclassified.
 Access Isolation Mechanism.  The underpinnings for multilevel
 security.  Produced by Project Guardian, and crucial in the eventual
 B2 rating for Multics.
 Done by HIS UK in the 1980s.
 Assembly Language for Multics, which was supposed to be an oxymoron.
 Multics' then-radical innovation of being implemented in a
 higher-level language (see PL/I) relegated ALM, Multics' assembler,
 to a place of strong official disfavor, and suggestions for
 improvements to the assembler or its language were routinely
 dismissed for many years, placing additional burdens upon them who
 had to use it (e.g., page control, traffic control, BOS) for whatever
 reasons.  An integrated macro feature (Steve Webber's
 macro-preprocessor MEXP, integrated by Greenberg and Morris, both
 regular ALM users) did not appear until 1977 or so.  ALM was also
 used to define programs' data bases, as PL/I glaringly lacks the
 ability to define globally-addressable static data objects. [describe
 ALM was Multics' second-generation assembler, the follow-on to EPLBSA, 
 written in FORTRAN, transliterated almost mechanically to PL/I (one big 
 structure for COMMON!), and improved very gradually in PL/I.  [authors of 
 ALM?] [BSG]
 Author Maintained Library, stored in >aml.

 The Multics Storage System PLM.  AN series manuals were Program Logic
 Manuals.  Written by Bernie Greenberg.

anonymous user
 User Control allows a project administrator to define an "anonymous"
 user in a project.  Such a user has no PNT entry and no password.  A
 process is created for the user when the enter command is given
 instead of login.  Anonymous users are usually put in some kind of
 limited service subsystem (LSS) that does its own accounting and
answering service
 The facility in Multics that listens to all non-logged-in terminals,
 accepts the login, enter, and dial commands, and logs in and creates
 processes for users.  This facility runs in the initializer process.
 [TVV] The answering service was written as one huge, very complex
 PL/I procedure (dialup_) managing a table (the "answer table") with
 an entry for each comm line.  Organized around "event-call" wakeups,
 dialup_ was totally event-driven, much as the code at the core of
 some of today's GUI paradigms, and the resulting morass of "state =
 this", "next_state = that", etc., totally defeated all notions of
 program-structure and control flow, rendering it a bear to understand
 and maintain.  These are deep issues about the cost of processes, and
 not an indictment.  Mike Spier and Tom Van Vleck created it, and Tom
 Casey continued its improvement.[BSG]
 Add one to storage, opcode on 600 and 6000 CPU's, including both
 Multics processors.  Although most frequently used for simple
 arithmetic, including metering/instrumentation, this opcode utilized
 read-alter-rewrite (RAR), an indivisible operation of the SCU.  [BSG]
 A language, defined by Ken Iverson of IBM, that used many special
 operators.  There were two APLs for Multics: the first one done by
 Project MAC folks, the second by Honeywell CISL.  Used the Selectric
 938 typeball.
Unbundled product.
appending mode The hardware mode of the 6180 and 645 processors where
 2-dimensional addresses, consisting of segment number and offset in
 that segment, are resolved via descriptor segment and page tables
 into references to a virtual memory.  See absolute mode.  [BSG]
 Appending Unit.  Part of a Multics CPU that did address
 interpretation according to segment and page tables.  The
 corresponding entity on the 645 was called the "Base Frame".
 The archive command manages segments that consist of multiple
 subfiles.  It can add a segment to an archive, list the contents of
 an archive, or extract a segment from an archive.  Similar to the
 UNIX tar command. [TVV] [Mention tape_archive also.]
 One of the first of the world's bogus mini-file-systems, mechanisms for 
 storing many files in one (e.g., PKZIP, TAR, ARJ, etc.) because the 
 overhead of files is too great for the number of files desired.  Multics' 
 archive command stores files intact in "archive" files; it does no 
 compression, and its only overhead info is an ASCII header preceding each 
 archived file, which starts with a form-feed, so it is possible to dprint 
 archives and even have the headers come out "nice"! Another motivation for 
 all bogus mini-file-systems is the use of tools to process (send, print, 
 copy, etc.) single files that are not proficient or perhaps efficient at 
 handling subtrees or other sets of files.[BSG]
 Academic & Research Computing Services, the application programming
 organization at MIT's IPC.
 Advanced Remote Display Station, an early graphics terminal.  Used a
 Tektronix storage tube and ran over phone lines.  Common hookup was a
 Bell 202C modem, with 1200 baud computer to terminal and 150 baud
 terminal to computer.  Some models had a joystick.
 Advanced Research Projects Agency of the US Department of Defense.
 This agency contributed substantial funding to MIT Project MAC for
 the development of Multics.  J.C.R.Licklider was working there and
 championed this idea.
 The network first constructed by ARPA, which decades later became
 "the INTERNET".  MIT's Multics was one of the very first sites on it,
 and Multics's network implementation one of the very first.  For the
 first decade, very few Multicians paid attention to it at all, only a
 small but dedicated crew of "network people" who foresaw what has now
 indeed come to pass. [BSG]
 American Standard Code for Information Interchange.  The character
 set used in Multics.  In 1965, this was a great departure; character
 sets were much less standardized in the 60s.  The 7094 used 6-bit
 BCD, and CTSS on the 7094 used BCD with shifts indicated, the
 "12-bit" character set, for TYPSET and RUNOFF.  Multics was one of
 the first systems to use upper and lower case letters freely.
 Multics customer.  Sweden.
associative memory
 Each 645 and 6180 CPU had a content-addressed memory to speed up
 appending lookups.  The most recently used entries in the descriptor
 segment and page tables were cached in these high-speed circuits and
 used when needed, avoiding one or two memory references.
 Active Segment Table.  Hardcore table of ASTEs, one per active
 segment.  Upper part of the SST.
 Active Segment Table Entry.  Contains a page table and some segment
 Arizona State University.  Had a Multics for a while in the 80s.
 (1) The process of peer code review practiced at CISL.  
 (2) the audit_ IOSIM that logs
 terminal I/O to a file.  The attach_audit command sets up a process's
 iograph to include an audit_ attachment.
 Consortium of the Universities of Bristol and Bath.  Operated AUCC,
 Multics site.
 Orange Book (US government TCSEC) rating achieved by Multics.
 Dumping files from disk to tape.  Done by a daemon process.  The
 Backup.SysDaemon ran incremental and complete dumps.  See restor.
 Beginner's All-purpose Symbolic Instruction Code, a language invented
 by Kemeny and Kurtz at Dartmouth.  Multics had several BASIC
 implementations; the final one was a compiler by Barry Wolman.
 Bootload Command Environment.  The successor to BOS.
 Billerica Computer Oprerations.  The division of Honeywell that built
 the Level 6 minicomputer and the VIP7801.  Used a Multics as its
 software factory.
 Bootstrap Combined Programming Language.  A language defined by
 Martin Richards of Cambridge, for bootstrapping CPL, used for some
 pieces of Multics such as qed and runoff, and an ancestor of the C
Bell Canada
 Multics customer.  Had two sites, Toronto and Montreal.
 An alternative to the dynamic linker, the binder combines program
 binaries into a bigger binary.
bit count
 The file system stores a bit count for each segment and directory,
 but attaches nohardcore meaning to this quantity.  User-ring
 programs, by convention, interpret the bit count as the length of a
 segment in bits; on a directory, a non-zero bit count indicates that
 the directory should be treated as a multisegment file.
 "Block and wakeup" is one of two interprocess synchronization
 mechanisms in Multics.  A process "goes blocked" (i.e., into a
 suspended state) awaiting any "wakeup" sent to it.  A "wakeup"
 identifies not only the process, but a "channel" on which it is said
 to be woken up, and contains a 72-bit arbitrary datum.  Received
 wakeups for a given channel are "queued" for that channel.  A process
 can either go blocked "on" ("event wait", i.e., waiting for a wakeup
 on) a given channel, or declare a callback procedure ("event call")
 for a channel, a common way of implementing server-type software.
 See notify. [BSG].
boot tape
 A Multics Standard Tape (MST) from which the three "collections" of
 segments of the supervisor (and a handful of other segments needed to
 start up a Multics from scratch) were loaded into core, virtual
 memory, and the file system, respectively.  Since each of these
 stages depended upon successive states of increased operability of
 the supervisor, the technique of merely loading an "image" was not
 available.  The "bootload", or "bootstrap load" process really was a
 classic "up by the bootstraps" endeavor: successive mechanisms of the
 supervisor (e.g., segmentation, PL/I runtime, paging, dynamic
 linking) would be made operative one by one in and by restricted
 environments devoid of those features.  Some of the steps, such as
 the copying of unpaged segments into paged ones when paging had
 become operative (done by "make_segs_paged", which Mike Grady
 alexandrically renamed from "update_sst_pl1"), are mind-bogglingly
 profound.  The bootstrap process was known as initialization.
 The first record of the boot tape was read into core by BOS, which
 transferred control to it -- BOS was an afterthought, and Multics was
 at first designed to have been booted on a bare machine.  But in
 fact, BOS passed an array of hardware configuration information and
 software parameters (e.g., table sizes) read in from cards (the
 config deck) necessary for Multics operation.[BSG]  

 In 1967, a "development run" involved generating a new system tape,
 signing up for time on the 645, mounting the tape on the 645 and
 booting it.  The system would start to initialize, read collection 1,
 sit for a while flashing the CPU lights, load collection 2, think
 some more, and crash.  The programmer would dump core on the printer,
 find the problem, and repeat the process. [TVV]  

 To load software into a system and start it up.  On the 645, pushing
 the BOOT button on the GIOC booted from cards or tape, and Multics
 System Tapes had a special self-loading first record.  When BOS was
 first written, it booted from cards and then the BOS BOOT command
 booted MSTs.  A warm boot of BOS, if it was already loaded on the
 disk, required only a single card.
 The first program on a Multics boot tape.  bootstrap1 is entered in
 absolute mode.  (On the 645, it paired the ABRs.)  It then reads the
 rest of collection 1, establishes a primitive appending environment
 and stack, and calls bootstrap2, which prelinks collection 1 and
 proceeds with initialization.  Initially written by Nguyen Van Binh,
 made to work by Noel Morris and Tom Van Vleck, and further maintained
 and improved by many.
 Bootload Operating System.  A minimal, single-user, single-processor,
 non-paged, entirely assembly language 645/6180 "operating system"
 that was run before Multics came up and after it was shut down or
 crashed.  Part of the Multics project, and not used anywhere else,
 BOS played no role at all while Multics was running, comprising only
 a several-hundred word "toehold" to swap core with Multics when the
 latter finally stopped running.  BOS included commands to make and
 restore disk snapshots, patch and dump virtual memory to the printer,
 load device controller microcode and the like, and initiate the
 bootload and/or ESD of Multics.  Initially created on the 645 by Stan
 Dunten, BOS was continued on the 6180 largely by Noel Morris,
 although others contributed.  BOS was later replaced by BCE. [BSG]
 The structure in a directory allocated for each segment or directory.
 Sometimes extended in meaning to the object described by it, e.g.,
 "there are three types of branches: ordinary segments, directories,
 and links."
 Multics site: Brunel University (Uxbridge, Middlesex, England)
 Bootstrap Assembler.
 Bell Telephone Laboratories.
Bulk Store
 Replacement for the firehose drum, this was a large bank of slow core
 memory, accessed as if it were a drum.
 Machines Bull, a French computer company originally associated with
 GE, that eventually bought the computer division of Honeywell and ran
 it as Cii Honeywell Bull.
 In the late 80s, a C compiler was written for Multics.

 In 1974, the 6180 acquired an optional CPU cache.  Like most else,
 this Honeywell hardware innovation was not designed with Multics in
 mind, and absolute data address was used as the key to the cache.  As
 in all caches, cached data in one CPU becoming stale when the "real"
 data is modified by another must be addressed, as it were.  Multics's
 extremely multicious solution, which won Steve Webber and Hardware
 Designer Riley Dobberstein a US Patent and a Honeywell Sweatt Award,
 was to invent the "cache" bit of an SDW (implicitly inventing the
 notion of "encacheability of a segment"), which prevents words from
 shared, writeable segments or those with physical I/O going on (as
 determined by software) from going into, or being sought in, the CPU
 cache.  Greenberg invented a scheme for keeping writeable user
 segments encacheable while they are not actually being shared,
 including coordinating the notions of "shared between CPU's" and
 "shared between processes".[BSG]
 Common ACL.  Up to the early 70's, Multics directories had an
 additional ACL whose contents were effectively appended to that of
 each segment within it.  This was seen as an easy way to manipulate
 "default access" in a directory.  But not only did this render the
 computation of effective access unduly complex, but it led to
 surprises when CACL's were changed when segments already existed.
 Hence, this scheme was replaced by IACLs.
call bracket
 The range for rings which can call a given segment as a gate.  If a
 segment's ring brackets are 0, 0, 5, the call bracket is rings 0 to
 The machine language sequences for inter-subroutine call depend on
 the stack discipline and the subroutine linkage conventions.  These
 sequences were conceived of as EPLBSA macros by Bob Graham.  When
 threaded code was introduced into the version 2 PL/I compiler, these
 sequences were moved into pl1_operators_ and the ALM macros changed
 to reference an operator segment.  Later, a global change was made to
 stack discipline for efficiency, without requiring any (normal)
 program to be recompiled.
Cambridge Project
 An MIT-Harvard social science data management project.  The Cambridge
 Project was criticised by campus radicals during the Vietnam War
 days, because it was taking DoD and CIA money.  It produced the
 Consistent System.
 Multics converts terminal input lines to a standard form, so that
 lines that appear identical are identical in storage.
 Multics site: Cardiff Joint Computing Centre (Cardiff, Wales)
 Multics site: Centre de Calcul Vectoriel pour la Recherche, Ecole
 Polytechnique (Palaiseau, France)
 See Bull.
 Multics site: Centre Interuniversitaire de Calcul de Bretagne,
 Universite de Rennes (Rennes, France)
 Multics site: Centre Interuniversitaire de Calcul de Grenoble,
 Universite de Grenoble (Grenoble, France)
 Multics site: Centre Interuniversitaire de Calcul de la Region
 Parisienne (Paris, France)
 Multics site: Centre Interuniversitaire de Calcul de Toulouse,
 Universite Paul Sabatier (Toulouse, France)
 Multics site: Centre InterRegional de Calcul Electronique (Orsay,
 Cambridge Information Systems Laboratory.  Pronounced "sissle." The
 group at (GE, Honeywell) that participated in the development of the
 Multics operating system, and led it after BTL and Project MAC
 dropped out.  Originally housed on the 7th floor of 545 Tech Square;
 moved to 575 Tech Square about 1970; moved to Kendall Square in the
 80s; when the people were moved to Billerica in the late 80s it
 wasn't called CISL any more.  Had its own 6180 system.  About 60
 people worked at CISL.
 Multics site: Centre Interuniversitaire de Traitement de
 l'Information, Universite de Lille (Lille, France)
 The original 645 shipped with a separate box that was a microsecond
 realtime clock with the ability to interrupt any CPU.  On the 6180,
 the clock moved into the SCU and didn't take up a port.  The calendar
 clock read by the RCCL instruction was 52 bits (lower).
 Multics site: Centre National d'etude sur les Telecommunications
 [CNET] (Issy, France)
 Corporate Network Operations.  Honeywell site in Minneapolis, MN.
 The Multics COBOL compiler was done at Honeywell Billerica and shared
 internal data structures and code generator with the Multics PL/I
combined linkage segment
 A per-ring segment that contains the LOT, the ring's static data,
 outbound links (snapped and unsnapped), and entrypoint names.
computer utility
 A computer, its software, and staff set up to provide 24-hour service
 for all of a community's information needs, the ancestor of the
 "Information Highway".  Multics was envisioned as quite this, a
 "Multiplexed Information and Computing Service", to be present,
 reliable, powerful, and all that is needed as an information resource
 for a large number of people, all the time.  This was radical at the
 time, when computers were viewed mainly as tools and toys for
 "scientists".  [BSG] 
 A Multics boot tape contains three logical groups of segments called
 collections.  Each collection is read in and then run, to bootstrap a
 more complex environment for loading and executing the next
 A program designed to be invoked by typing its name at a terminal.
 Multics commands are ordinary user programs, and what is more,
 ordinary PL/I procedures.  Commands and "subroutines" are
 indistinguishable at the PL/I and dynamic linking levels.  Although
 this reduces the number of search mechanisms, it rarely turned out to
 be useful, as calling a command as a subroutine or vice-versa,
 although fully possible and often done in kludges, presents all kinds
 of UI problems.  The proper handling and diagnosis of missing,
 malformed, or non-string arguments makes the passing of command
 arguments as actual parameters a poor idea, and the current C
 "argc/argv" scheme, an outcome of Multics's experience, is one
 correct solution.
 Correct handling of the star convention and equal convention are not
 so easy, though, and the seemingly-obvious solution of relegating
 that task to the shell (or "command processor") is fraught with
 well-known dangers whose horror stories adorn the landscape of UNIX
 Multics commands have long names and short names: "list" has "ls", "copy"
 has "cp", and "move" has "mv," as well as "page_multilevel_meters"
 having "pmlm".  The original convention for short names is attributed to 
 Don Widrig.
 Although there were many conventions of name syntax as time
 passed, short names were always an addition to long names.
 UNIX's "tribute" to Multics of "keeping" "ls", "cp", etc., while
 throwing out all long names is in fact a misunderstanding bordering on
 a perversion. [BSG]
command language
 The Multics command language derived from the CTSS language, with
 ideas added from BESYS and TRAC.  The listener reads lines from the
 input stream and passes them to the shell for execution.
command processor
 See shell.
 Multics text formatting command, successor to runoff.  Written by Ed
 Wallman of Honeywell Phoenix. Unbundled product.
config deck
 An array of card images read by BOS and passed to Multics
 initialization, describing the number and sizes of memories, number
 of processors, peripherals and their channels, etc., as well as the
 sizes of critical tables (such as the SST) to be created by
 initialization.  Ultimately, BOS acquired the capability of keeping
 these images on tape or in its own disk partition, not needing actual
 The cards, or card images, were parsed by an interesting BOS routine
 ("scan") first written by Stan Dunten, that determined into what to parse
 a datum (e.g., 4-character string, octal number, decimal number, letter)
 by looking at the datum itself, storing one-word "parsed" data in one
 array and "data types" in a parallel array, very much like a LISP
Consistent System
 Social science data manipulation subsystem built by MIT's Cambridge
 Project, architected by John Klensin.
 Bulletin board program that ran on Multics in the late 70s.  Ancestor
 of forum.
 Main storage on the 645 was really core memory.  Several different
 manufacturers produced it: Lockheed, Fabritek, who else..  I remember
 running memory diagnostics that printed out FABRITEK WCCP PATTERN
 TEST, WCCP meant "worst case (something)."  There was a problem in
 1966 with non-plated sense wires on core planes from some
 manufacturer, forget who, that for a while caused the 645 to burn out
 a core assembly a week.  Worked fine in Arizona's dry air, but
 Boston's salty & polluted atmosphere was too much for them.
core metering
 Memory usage metering was described by Bob Frankston in his
 undergraduate thesis.  The units of memory occupancy,
 page-milliseconds, are familiarly called "Frankstons."
cow's stomach
 The "Coreadd queue" of Release 6.1 and afterward.  This creation of
 Bernie Greenberg's was a solution to the problem of multi-CPU
 contention on the "page table lock" (PTL), a "spin lock" on the
 entire paging database, which had become a severe performance
 bottleneck.  By the nature of the beast (see wired), disk interrupts,
 as they arrived at page control's interrupt side from the disk DIMs,
 had to spin on this lock, too.  The "Cow's stomach" was a queue where
 the interrupt side saved the results of completed disk operations for
 later digestion by page control, viz., when the PTL was unlocked.
 The algorithm defining the interaction of manipulating this queue with the
 locking and unlocking of the PTL was quite complex, and took Greenberg
 some time and effort to devise; when he had done so, he posted outside his
 door a hand-drawn flowchart replete with starfish and keyhole shapes and
 other innovations to symbolize non-traditional flowchart steps.  The
 overall shape of a delimited loop representing area protected by a new
 lock resembled a stomach, and the complexity made many people ask if it
 was "a cow's stomach." As it happened, the functionality of the thing very
 much resembled that of a ruminant's stomach-complex, and the name stuck,
 and was even used for a similar mechanism in later operating systems of
 other vendors. [BSG]
 When a signal is raised in an inner ring routine called from an outer
 ring, the signal is reflected back to the caller via a crawlout.
 Ring 0 handles these specially, unlocking and salvaging before
 leaving ring 0.
Cray Station
 Usually titled Multics Cray Station (although the acronym MCS was
 already taken).  Written by Warren Johnson, it made Multics look like
 an RJE station for a Cray with job, file transfer, and print queues.
 Used by Ford (it was the reason for obtaining the 3rd Multics system)
 and a UK site. [BWS] The original Cray XMP Ford had ran COS (Cray
 Operating System) and required a front-end computer to submit,
 control, and retrieve jobs.  The cray station software on Multics
 allowed us to use Multics as a front-end computer for the Cray. [VS]
Credit Lyonnais
 Multics site: Credit Lyonnais (Paris, France)
 see Consistent System.
 Computer Sciences Corporation.  This contractor installed 4 systems
 for Naval War Games System.
 Cygnus Sort, a more performant reimplementation of the standard
 Multics sort/merge product by Cygnus Cybernetics Corp (Jim
 Homan). [BWS]
 Compatible Time Sharing System.  This 7094 operating system was
 created at MIT Project MAC and first demonstrated in 1961.  It was
 used as the programming and debugging tool during initial Multics
 programming and bringup by Project MAC, GE CISL, and BTL personnel.
 In some sense the intellectual offspring of CTSS, Multics was
 conceived as the next step into the future of multiple-access
 computing.  Many of the MIT Multics principals had worked on the
 earlier system.
 Control Unit.  Instruction sequencing, fetching, and decoding unit of
 a Multics CPU.
 A beneficent spirit.  A process, not associated with a human
 operator, that runs all the time and waits for requests to do
 something for a user.  Name usually credited to Peter Neumann.
 Cambridge Project feature?
 Data Communications Corporation.  Multics customer, in the business
 of billing advertisers for TV commercial charges.
 Canadian DND Multics site.
 Multics source-level and process-level debugger, initially written by
 Steve Webber.  Later partially replaced by "probe", which only has
 source-level capabilities, but was more end-user oriented.
 Descriptor Base Register.  Sometimes Descriptor Segment Base
 Register, DSBR.  The appending unit register that contains the
 absolute address of the descriptor segment for the processor and thus
 the hardware address space of a process.
 A neologism of B. Greenberg's for branches that lose their pages
 (Fr. "feuille", "leaf") when the "season" (running of Multics) is
 over.  This was new to NSS, and was the method of management of that
 subset of paged supervisor segments that had to appear in the file
 hierarchy, but also had to be loaded, paged, and operative during
 initialization before the file system was "up" in that bootload.  The
 technique was to withdraw the pages of these segments from the same
 per-bootload pool as used by the rest of the supervisor, which
 required special care to make sure that no attempt was ever made to
 return them to the file system. Unlike many colorful neologisms of
 the time, this one made it all the way into the official
 documentation. [BSG]
 (1) contents of an SDW.  (2) Single word that described an operand of
 an EIS instruction.
descriptor segment
 The array of SDWs (segment descriptors) that totally define a
 process' address space as currently available to the hardware without
 segfaults.  This array itself is in all respects a segment, and (by
 convention) is segment 0 of the process it defines: its first element
 is thus an image of the DBR that describes it.  Supervisor segments
 precede all other segments; then follow stacks, then all segments
 initiated and terminated by supervisor calls.  All of the SDWs for
 wired segments are in its first page; therefore, that page has to be
 wired before a process can run, and that page and the first page of
 the PDS of a process are wired before a process is made eligible.
 The hardware can take page faults on the rest of the descriptor
 segment during the address formation process, and this case is
 differentiated by bits in the SCU data.[BSG]
 FAST subsystem with Dartmouth conventions.
 The answering service connects a TTY channel to an existing process
 if the dial command is issued instead of login.  This facility is
 used to support transaction processing.
 Device Interface Module.  The Multics I/O Switch ios_ supported
 device-independent operations on data streams, something like the
 UNIX Streams facility.  The device-dependent operations were
 performed by one or more DIMs in the I/O graph.  There were two kinds
 of DIMs: terminal DIMs actually controlled a physical device.  Many
 of these were in the hardcore.  Non-terminal DIMs performed a
 transformation on their input and invoked the I/O switch again, like
 Fenichel's famous Pig Latin transformation.  ios_ was an early
 instance of polymorphism, supported by calling convention rather than
 by language.  The term DIM is also used for the hardcore programs
 that control physical devices, even if they are not invoked via the
 I/O switch, for example, the disk DIM.
 A file system entity that contains <a href="#segment">segments,
 links, or other directories.  Directories are organized into a
 tree-structured naming hierarchy.  All directories are stored on the
 RLV.  The topmost directory is called the root.
 Multics social science application written at MIT by Wren McMains.
 Not "disc," those are Frisbees.  (more, list models and capacities?)
disk quota
 Multics enforced disk usage quotas at page fault time.  A user cannot
 grow a segment even temporarily past his or her quota for the "quota
 directory" in which the segment resides.  Some directories don't have
 quotas, and charge their usage to the closest parent directory that
 has a quota.  Master directories are quota directories that have a
 logical volume attribute different from their parent; they draw their
 quota from a special segment that specifies the total quota a user
 can allocate on a logical volume.
 Datanet-30.  A communications front-end processor.
 Datanet-355.  A communications front-end processor.  Ran MCS.
 Datanet-6670.  A communications front-end processor.
 Canadian Department of National Defence.  Had two Multics systems.
 Unclassified Multics system operated by the NSA in Linthicum, MD.
 Used as a communications tool among security researchers, lots of
forum activity.
dprint Delayed print.  Pronounced dee-print.  The command that queues
 a file for printing on the line printer by the "I/O Daemon",
 IO.Sysdaemon.  Listings produced by the printer daemon are also
 called "dprints."  See link.
 Distributed Processing System.  Honeywell added this prefix to the
 names of a lot of machines in the late 70s, including the DPS-68 and
 the DPS-8/M.
 Another name for a Level 6.
 Version of the Level 6 that ran a secure system.
 Honeywell early 80s name for its mainframe line.  Multics machines
 were called DPS8/70M, DPS8/62M, DPS8/52M.
 Later name for the Honeywell ADP and Orion machines.  Never ran
 Even later Honeywell processor line.  Never ran Multics.
 See Librafile.
DS 10
 Early disk unit.  I think these were the ones operators had to "milk"
 condensation from the vacuum lines with a special bottle.
 Jargon for descriptor segment.
 Disk unit.
 Disk unit, used on Multics in the early 70s.
 Disk unit, used on Multics in the early 70s.
 Dartmouth Time Sharing System.  Created by Kemeny & Kurtz at
 Dartmouth.  Ran on a GE635 and supported many more users than CTSS or
 Multics per CPU, but with a more limited programming model.  Multics
 had several DTSS simulator environments.  See also BASIC and FAST.
 BOS command that printed an octal dump (of selected segments after
 Multics had crashed, or during system debugging).  Descended from
 John Gintell's dump program that loaded from cards.
 Deer Valley Computer Park.  Generic name for the complex of Honeywell
 buildings in Phoenix at Thunderbird and the freeway, housing LISD
 headquarters and manufacturing.
dynamic linker
 Multics facility that resolved subroutine linkage on the fly, at call
dynamic reconfiguration
 Multics facility that allows the system to add and drop hardware
 without shutting down.  Roger Schell's thesis was the basis for this
 feature.  Integrated with test and diagnostic stuff.  I/O
 reconfiguration was added late in the life of the system.

echo negotiation
  A 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.[BSG]
 Multics command for editing files.  Written by Steve Webber.  A
 descendant of Jerry Saltzer's edl command on CTSS.
 Extended Instruction Set.  A suite of instructions added to the 645
 set when the 6180 was introduced.  These are business instructions,
 that operate on multiple words or streams of various-sized bytes.
 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' 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.  [TVV, BSG]
 Multics site: Centre de Recherche ELF (French oil company) (Pau,
 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 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.  [BSG]
 Answering service command to log in an anonymous user.  The enterp
 command supports anonymous users all of whom have the same password.
 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 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.
 EPL BootStrap Assembler.  EPL compiled into EPLBSA, which was then
 assembled.  Written by Bill Poduska in FORTRAN.
 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).  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.  [BSG]
 Multics site: Etablissement Principal du Service Hydro-Oceanique de
 la Marine (Brest, France)
equal convention
 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 See star convention.
 Error Report Form # - report of a system crash, at the MIT Multics
 flagship/development site.  Crashes were identified by erf #.  "erf"
 was also the verb in ifd to load up an fdumped crash image.  [BSG]
 Emergency ShutDown.  This operation is invoked after a system crash.
 The operator manually forces a transfer to 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.
 Electronics Systems Laboratory.  An MIT group that did research in
 computer assistance to manufacturing.  Produced the APT and AED
 languages, and the Kludge.
 Multics command that executed a script of commands from a file, with
 argument substitution.
execute bracket
 The range of ringss that can execute a given segment.  See ring
extended access
 Feature of MR11.0.  File Access Methods and Integrity Services. it
 was an early name for the Data Management (DM) version of MRDS that
 supported transactions and before journalling.  Beta tested at Ford
 in 83/84.  [BWS] This is a file access method that supports atomic
 transactions (including commits and rollbacks).  It was designed to
 provide MRDS with transaction capabilities.  [VS]
 A DTSS simulator.
 A processor generated exception causing a diversion of control
 through a fault vector, for any reason except an interrupt.  Page
 faults, segfaults, bad instructions or out-of-bounds references and
 the like are all common faults.  (There is no notion of "failure").
 BOS did not take or process any type of faults.  When Noel Morris
 made BOS tapes self-booting (see Zero Six Dog), though, the
 coup-de-grace was the processor taking a horrible "trouble fault" by
 executing one of the magic constants on a "Multics Standard Tape"
 (see MST) and Noel's code handling it, not unlike the swift whap on
 the buttocks of a new-born babe.  But field engineers not savvy to
 Multics culture were unimpressed that "Multics starts up by taking a
 fault." (setting the "stop on fault" CPU switches up was part of
 their S.O.P.) [BSG]
fault vector
 A set of 32 instruction pairs in a fixed location specifying CPU
 handling of the 32 processor faults.  Rather than specifying a
 location to transfer to, the 600/6000 architecture specified a pair
 of instructions to be executed out of line by the control unit, one
 of whose tasks was "executing pairs of instructions, no matter how
 obtained."  The first instruction was invariably SCU, and the second,
 "return", because the Multics return instruction also reloaded the
 condition code register, which in the case of interrupt vectors was
 ingeniously used to stash the interrupt number! [BSG]
 BOS command that took a core dump into a disk partition.
Field Engineers
 The FEs were Honeywell employees who installed the big iron and fixed
 it when it broke.  They were an incredibly dedicated group of people,
 who worked long and strange hours, and responded without complaint to
 panic calls when the machine wouldn't work.  They dealt cheerfully
 with an exotic, undocumented CPU built far away, running software
 that changed all the time, and kibitzing by a lot of people who
 provided unhelpful theories and lots of pressure, but not enough
File manager
 See vfile_.
 Fault Interceptor Module.  This program is invoked whenever the
 hardware encounters a fault.  It manages machine state and calls the
 appropriate routine.  Harlow Frick, Noel Morris, and Tom Van Vleck
 worked on the original version.  In later years, there were actually
 two FIMs, "wired_fim" and "fim", for faults whose handling has to be
 done in page-locked environment and not.
Firehose drum
 See Librafile.
 Fall Joint Computer Conference.  There used to be two big conferences
 a year, one in the spring and one in the fall.  Multics was first
 announced at the 1965 FJCC.
 Function Language.  An assembler that Tom Kinhan of GE was working on
 but which was never made part of the system.
Flag Day
 Any software change that is neither forward nor backward compatible.
 Named after a change to Multics scheduled for June 14, 1966, when the
 values of the ASCII character set were switched around.
 Front-end Network Processor.  Also called FEP.  See SFEP.
 Big Multics customer.
 A PL/I indenting program with many features, options, and control
 arguments, written by Monte Davidoff.
 Multics had two fortran compilers.  The version 2 compiler shared a
 back end code generator with the PL/I compiler.
 Bulletin board system.  A descendant of continuum.
Unbundled product.
FSDCT File System Device Configuration Table.  Held file system
 parameters and volume bit maps (until the new storage system).
 File System Interface Module.
 Federal Systems Operation.  The division of Honeywell that handled
 government contracts, sales, etc.
 Restaurant in Kendall Square, Cambridge, where Project MAC Multicians
 used to go to lunch.  Not to be confused with the diner next door of
 the same name.
 A segment that allows transfer of control between rings in a
 controlled fashion.  Each gate segment has a vector of entries at its
 start.  Now called "call gate" in the Intel world.  Originated on
 Hardware project to build an ARPANet gateway, done at Honeywell
 Phoenix in 1979.
 Formerly GECOS, General Electric Comprehensive Operating System.
 After the merger, the "electric" was dropped.  A batch processing
 system comparable to IBM IBSYS.  More efficient that OS/360, but
 limited for many years to a single address space. Unbundled product.
 Throughout Multics's life as a product it battled with GCOS for
 Honeywell resources and support of every kind.
GCOS simulator
 Also called the GCOS Environment Simulator, GES.  Allows a user to
 run a GCOS program inside a single segment in Multics, intercepting
 the MME instructions that these programs issued and calling on
 Multics to e.g.  open files or print output.  Similar in many ways to
 (the much later) Virtual 8086 mode on the Intel architectures.
 General Electric Co.  Manufactured toasters, jet engines, nuclear
 power plants, and, for a while, computers.  Sold computer division to
 Honeywell in 1970.  Joke from that time: GE executives had a big
 meeting in Florida to decide how to become number two in the computer
 business (this was in the days when it was "IBM and the seven
 dwarfs").  The solution they came up with: buy IBM and manage it for
 6 months.
 Debugging facility for 6.36 programs.  Ran on CTSS.  Don Wagner and
 Steve Kidd worked on this program.
 Gemini Computer's secure OS, influenced by Multics.
 Statistical stuff done by Douglas Clark at Bath?
 Pre-merger name for HLSUA.
 GIOC Interface Module.  The code that operated the GIOC in the
 original 645 Multics.
 To arrange the items in a PL/I data structure so that no padding is
 generated, by grouping them with all the items of highest boundary
 alignment first, then next highest, and so on.  Named after Jim
 Gimpel of BTL, who stated the rule.
 Generalized I/O Controller.  This box did all the I/O for the 645.
 Some programmers pronounced this by spelling it out, but the field
 engineers tended to say "gee-yock."
 Statistical stuff done by Douglas Clark at Bath?
 General Motors.  Big Multics customer.
 General Purpose Macrogenerator.
 Multics graphics were heavily influenced by the Electronic Systems
 Laboratory design for the Kludge on CTSS.  The Multics graphics
 system created a device independent representation and then
 translated it to device codes at display time.  It was intended that
 this should work as well on an ARDS as on a vector scope.
 GCOS Time Sharing System.  A TSO-like timesharing environment within
 GCOS.  Simulated on Multics in the GCOS simulator.  "gtss" was a
 Multics command.
Unbundled product.
Guardian The CISL/MITRE/USAF project that added AIM, the Access
 Isolation Mechanism, to Multics.
 That portion of the Multics that is loaded from the boot tape and
 runs in ring 0; the supervisor, the operating system kernel.  The
 common phrase "hardcore supervisor" (hcs) is essentially redundant.
hardcore partition
 A partition, on the RPV, used for the pages of the segments that
 constitute the supervisor, not actually part of the user-visible file
hardware monitor
 Honeywell had a device that hooked into the backplane of a 6180 for
 measurement purposes, called the "yellow submarine." They brought it
 out to Cambridge for a while.
 Houston Automatic Spooling Program.  An IBM Type II program that
 managed input and output queues and RJE for big 360s.  Multics had
 some software to talk to HASP, pretending to be an IBM 2780
 (reader/punch device), over a bisync line.
 Gate into the hardcore supervisor.  Most Multics supervisor functions
 available to ordinary programs are provided as entrypoints in this
 segment, for example the file system (hcs_$initiate).  Other gates
 are phcs_ and hphcs_.
 Honeywell Error Analysis and Logging System.
 Tom Van Vleck wrote the first Multics help facility.  Over time this
 code became more and more elaborate.  Similar to the UNIX man pages,
 but the info segs that the help command references are automatically
 extracted from the runoff source of the Multics commands manuals.
 The Multics file system names files with multi-part names separated
 by > and organized into a tree-structured hierarchy.  Unlike files in
 the UNIX file system, a Multics segment or directory is a child of
 only one parent.
 Honeywell Information Systems, Canada.  A marketing organization.
 Honeywell Information Systems, Limited.  Marketing organization for
 the UK.
 Another name for HISLTD.
 Hoffman-LaRoche.  Multics customer.
 Honeywell Large Systems Users Association.  Pronounced "h'lashua".
 History of Programming Languages.  ACM conference.
 Highly Privileged HardCore Supervisor, pronounced "h'putschkiss",
 after Greenberg.  A gate which allows arbitrary patching of the
 supervisor, bringing the system down, and control of critical
 parameters.  Access to this gate is controlled by an ACL, like access
 to all segments in Multics.  Anyone who "has hphcs" is in effect what
 is now known as a super-user.  [BSG]
 Internal Honeywell codename for a machine never built.
 Initial ACL.  The successor to the CACL scheme, The initial ACL was a
 "default ACL" to be used as the ACL for new segments in the directory
 (there is a separate "Directory IACL" for new subdirectories).  From
 that point on, changes to the IACL had no effect on already extant
 segments -- access is determined by a segment's ACL alone.  [BSG]
 The EPL compiler produced spectacularly bad code for some kinds of
 structure references.  Jim Gimpel and Don Wagner looked at these
 problems and divided declarations into "synchronous," "asynchronous,"
 and "idiotic" references, depending on whether an array of items was
 naturally word-aligned, was some submultiple of word-aligned, or was
 incommensurate with the word size.  For example, an array of 37-bit
 items is idiotic, an array of 36-bit items is synchronous, and an
 array of 9-bit items is asynchronous.  The EPL compiler was modified
 to tag all references with this classification, in a comment, in the
 generated EPLBSA code.  An early version of the KST had an idiotic
 declaration, and each reference to an element of it generated more
 than a whole page of assembly code from a single EPL statement.
idle process
 Multics creates a dedicated process for every CPU, all of whose code
 and data are wired.  Called the idle process for that CPU, the
 scheduler gives a CPU to its idle process when there is nothing else
 for that CPU to do, i.e., no other process for it to run, so it can
 be so that every CPU is running one and only one process at any time.
 A ward of both birth and death, a CPU's idle process is the place
 where it is started when dynamic reconfiguration adds it to the
 system, and where it goes when it is to be deleted.  Making the
 bootload CPU act in a fashion consistent with this (cf.  Adam's navel
 in classic art) is a major prestidigitation of traffic control
 initialization.  The idle process flashed the CPU accumulator lights;
 Noel Morris made it rotate the lights like a string of pearls,
 rolling one bit at each dispatch into it.  The heart of the idle
 process' code is a DIS (Delay until Interrupt Signal) instruction.
 Multics tool written by Bernie Greenberg in LISP that looked at a BOS
 fdump, interpreted its contents, and allowed inspection of system
 data structures.  Inspired by Steve Webber's "ol_dump".  Although ifd
 was never a product (in part because of its being written in an
 "unofficial language", MacLisp), it enjoyed widespread use.  Replaced
 by analyze_multics (azm).
 Inter Multics File Transfer.
 Information Multiplexer Unit.  A later, programmable version of the
 IOM.  Supported in MR12.0.
 Industrial Nucleonics.  Multics customer.  Later called AcuRay.
info seg
 The help command prints out information from segments with the suffix
 .info, called info segments.  The system info segments are kept in a
 special directory whose pathname I forget.  The check_info_segs
 command checks the date modified of segments in this directory, and
 can perform a specified action on files modified since a date
 contained in a user profile segment.  There was also a facility
 called info created by Charlie Clingen, which printed out information
 from a tree-structured document.
 The software mechanisms by which the Multics supervisor was loaded
 and started from the boot tape and the system brought up.  [BSG]
 This process is manufactured at system startup by patching the system
 tables to make it appear that a process is running.  The initializer
 process then completes Multics startup and runs the answering service
 and message coordinator.
 Said of a segment.  Also "to make a segment known" (to a process).
 To make the supervisor call (or as a side-effect of dynamic linking)
 that associates a segment number with a file in the file system by
 making an entry in a process's KST.  From that point on, references
 to that segment number become references to that segment, the
 fundamental illusion of the Multics Virtual Memory.  On Multics,
 instead of opening files, a user initiates segments, and all the rest
 is magic [BSG].
 Multics site: Institut National de la Recherche Agronomique (Jouy en
 Josas, France)
 Multics site: Institut National de la Recherche en Informatique et en
 Automatique [INRIA] (Rocquencourt, France)
 Multics site: Institut National de la Statistique et des Etudes
 Economiques (Paris, France)
 Multics site: INSEL, CNI Aix-en-Provence (Aix-en-Provence, France)
 The 645/6180 CPU has a separate set of 32 interrupt vectors and fault
 vectors.  Interrupts are always generated external to the processor,
 by the System Control Unit (SCU), in which the interrupt might have
 been "set" by another processor or the I/O box (see GIOC, IOM).
 Interrupts are only recognized during instruction-pair fetches, not
 in mid-instruction.  The interrupt mask is not in the processor, but
 in the port on the SCU to which the processor is connected.
 Inter-processor, or even looped-back, interrupts generated by
 processors are used to take processors on and off the system, crash
 or shutdown the system, and send IPS signals to running
 Standard Multics output formatter, ancestor to UNIX printf, invented
 by Stan Dunten as part of BOS, and then made the basic output call
 for all standard programs.
 I/O Command Translator.  In 645 Multics, a generalized system for
 managing I/O.
I/O Daemon
 The I/O daemon process runs all the printers and card equipment.  It
 manages print queues and notifies users when it has done something
 for them.
IOI (ioi_)
 I/O Interfacer.  A unique facility in 6180 Multics that allows any
 user granted the appropriate access to actually run the physical I/O
 of hardware devices directly to and from his or her segments.  IOI
 relies on the protection (base and bounds) registers of IOM channels,
 and page control services for temporarily locking pages in core at
 absolute, contiguous addresses as required for such use.  The printer
 and backup daemons as well as On-line T & D use it.  One of Noel
 Morris' proudest masterpieces.  [BSG]
 Input/Output Multiplexer.  Replacement for the GIOC, except that IOMs
 didn't have terminal channels, so each system had to connect a DN355
 to the IOM.
 I/O Switch.  The original model for UNIX streams.  ios_ mapped
 "stream" names into what are now called method tables by string
 lookup on each call.  The table for each switch was the set of entry
 points of a DIM.  Among the supported operations were synchronous and
 asynchronous reads and writes and controls, and the ability to define
 one stream as a synonym (i.e., front) for another.  Replaced by
 I/O Switch Interface Module.  See iox_.
 I/O Table Compiler.  In 645 Multics, a tool for generating device
 descriptions for the IOCT.
 I/O Exchange.  the MR1.0 follow-on to ios_.  iox_ combined the
 performance-directed move to referencing stream method tables by
 pointer as opposed to string name with a redefinition of the set of
 methods to more exactly map the repertoire of PL/I I/O.  As part of
 the package, some capabilities, such as asynchronous I/O, were lost,
 a change many saw as gratuitous and ill-advised.  As a result, a
 vestigial ios_ had to be kept around indefinitely to support the
 asynchronous ARPANet DIMs.  iox_ DIMs are called IOSIMs.  iox_ was
 the work of Don MacLaren and Max Smith.[BSG]
 Multics site: Institut de Programmation (Paris, France)
 (1) Information Processing Center.  MIT organization that ran the
 campus computer center.  (2) Inter-Process Communication.  The
 facility for interprocess queueing and transmittal of wakeups and
 associated 72-bit data through a system queue.
 (1) Independent Project Review.  A Honeywell management custom, in
 which people from outside a project would study it and report the
 risks.  (2) Illegal Procedure.  Subclass of 6180 processor faults.
 (1) Information Processing Services.  MIT organization, next higher
 assembly to IPC, also included various other campus computing
 facilities such as Nuclear Science computers.  (2) Interprocess
 Signal.  An asynchronous interrupt caused by another (privileged)
 Multics customer.
 Multics site: Institut de Recherche des Transports (Arcueil, France)
 (1) Indirect To Segment.  635/645/ 6180 indirect words contain a
 "further indirection tag", which allows for iteration of the
 indexing/indirection process after the address in the word has been
 picked up.  The Multics processors added a feature whereby the
 appending unit watches the pike as these words come by, and if this
 "further indirection" field of an even-addressed word contains octal
 43 ("ITS"), hijacks it before it even gets to the CU, interpreting
 its "address" field as a segment number (of the TPR) and passing on
 the odd word of the pair on to the control unit in its place.  The
 net effect is that the word-pair can be viewed as a segment-word
 "pointer pair", a pointer to a location in two-dimensional virtual
 memory, and this pair of words, referred to as an "ITS pair" or "ITS
 pointer", is the standard Multics pointer format.  On the 6180, a
 ring number (see TRR) was added.  Both processors had instructions to
 store pointer registers in this format.[BSG]

 (2) Incompatible Time Sharing (a pun on CTSS), 
 a homebrew PDP-10 operating system at the MIT AI Lab in the '60's and
 70's, which was an intellectual source of ideas relating to Emacs,
 video, and networking.[BSG]
 Data analysis application that ran in the Consistent System.
 Protocol for transferring files to and from PCs over async lines.
 We didn't speak of the "kernel" of the system at first.  Our term was
 usually "supervisor."  When Project Guardian got underway, there was
 discussion of isolating the security-critical parts of the supervisor
 into a "security kernel." OS/360 used the term "nucleus."
 The ESL display, a feature of CTSS.  This was a vector scope
 connected to channel D of the 7094, with substantial intelligence in
 the display controller.  Inspired features of the Multics graphics
 A segment is "known" in a process if that process has a segment
 number for it, as defined by an entry in its KST.  In today's
 language, a "known segment" is a file mapped into the address space
 of a process (but as a segment, not a sub-expanse of linear memory),
 the only way of accessing files (i.e., segments) in Multics.  Making
 a segment known is also called initiating, and making it unknown is
 called terminating.  Only segments known in a process can have SDWs
 in that process, but not all known segments in a process have SDWs at
 any given time.  See also active.[BSG]
 Known Segment Table.  A per-process data base that defines and stores
 the mapping between segment numbers in that process and files,
 effectively but not really by pathname, in the file system (actually
 a tree of directory entry pointers with unique ID's).  It is from
 this data base that segment faults in a process are resolved, i.e.,
 the segment being referenced for the first time identified with a
 segment in the file system by having its page table located or
 created and given an SDW in this process.  The size of the KST and
 the width of the segment number field of pointer registers limited
 the number of segments available to a process.
 The KST also, for many years, contained what later became the per-ring
 RNT, which records all names that a user has
 used to reference a given segment.  In the case of directories, which
 often have similar upper-case and lower-case names, these names were
 actually returned when pathnames of segments were asked for, in
 an unpredictable order, resulting in >udd, >UDD, and >user_dir_dir,
 all names for the same directory, appearing in unpredictable permutation.
 See initiate and terminate.  [BSG]
 Compiler-compiler system, used for parser generation.  Done by Robert
 Eachus and Pat Prange at BCO.  The LALR translator construction
 system includes an LALR ("Look Ahead Left-to-right Rightmost"
 derivation) parser algorithm.
 A flavor of X.25.  Multics has it.
 Laboratory for Computer Science.  Later name for Project MAC.
 Load descriptor base register.  The 645 and 6180 process-switching
 instruction, which directs the appending unit to the base (or page
 table) of the descriptor segment.  Causes a flush of the associative
 memory.  [BSG]
Level 6
 A Honeywell minicomputer, built by Honeywell at BCO in Billerica, MA.
 The "Firehose drum." A large, fixed-head (head per track, hence
 indistinguishable from a drum), disk used on 645 Multics first as
 simply the highest-speed secondary storage device, then as a storage
 device targeted for user temporary segments such as stacks, and
 finally as the first paging device.  "Firehose" was a reference to
 its high rate of data delivery, 1MB/s.  Capacity was 16MB.  It wasn't
 called a Librafile at first; that name came after the original
 company that made it was acquired by Singer.  These drums were
 rumored to be used on Polaris guided missile submarines.  
Library tools
 A set of programs used by system maintenance staff at various sites
 to install, upgrade, and maintain libraries of source and executable
 Query language accepted by LINUS.
 (1) (Type of branch).  A directory entry which describes not a file
 or a directory, but a text string which is (intended to be) the
 pathname of some other directory, file, or link.  What UNIX calls a
 soft link.  Before the invention of message segments, the printer
 daemon implemented its queue by making links in a special directory
 (so that access control could be used to restrict this activity),
 adding extra characters onto the pathname stored to describe the
 requester and print options.  [BSG]
 (2) As in dynamic linking.   A special indirect-word with a fault tag, FT2, 
 used to implement symbolic references from one program to another.  When a 
 program first references some symbolic name (an external procedure, an 
 external datum (see ALM), the CPU takes a fault when indirection through 
 this indirect-word is attempted.  The system inspects the word, and finds 
 pointers to strings describing the symbolic reference, and invokes the 
 dynamic linker to resolve it, and places the ITS pointer resulting from the 
 search into this word (pair, actually, at that point) and restarts the 
 instruction (this was called "snapping" the link).  From that point on, the 
 link functions as a normal indirect pointer, until the target segment is 
 terminated, at which point the link can be "unsnapped" to its original 
linkage section
 The output of a compilation is program instructions, in the "text"
 section, and static storage and linkage information for the dynamic
 linker, in the linkage section.  The EPLBSA assembler produced
 separate text and link files, but early in Multics development the
 convention was changed to combine text and link into a single
 segment.  When a segment is linked to by the dynamic linker for the
 first time in a process, the linkage section from the object file is
 copied into the process's combined linkage segment for the current
 See dynamic linker.
 Logical Inquiry and Update System.  Query front end for MRDS.
Unbundled product.
LISD Large Information Systems Division.  The GE/Honeywell/Bull
 division that built mainframes.  Other parts of the Honeywell
 computer business were BCO, which did minicomputers, and Bull, which
 did the Level 62 and 64.
 List processing language developed at MIT in the 60s.  See MacLisp.
 The user-ring program that loops reading a line of input from the
 user and submitting it to the command processor.  The listener, or
 "command level", is accessed via the switchable API cu_$cl (you can
 install your own listener), and is called whenever command level is
 "pushed" by an error (compare UNIX behavior) as well as at process
 start-up.  Hence, one could investigate blowups with debuggers, or
 even change variables and type "start" ("%").  Note that the job
 discipline is a stack, not a ring of equals as in UNIX.  [BSG]
load control
 Multics has elaborate features to handle more user demand than it is
 able to serve.  Load Control assigns different weights to different
 initial procedures so that, for example, a LSS user counts as using
 half the system resources of a regular user.  Permission to log in
 depends on whether the system has reached its load limit, set by the
 system administrator per shift, and on whether someone else in the
 same load control group can be preempted, that is, bumped off the
 system.  If you get logged in, Load Control protects you from
 preemption for some specified time period, and chooses unprotected
 users for bumping.
logical volume (LV)
 NSS term meaning "a group of disk packs treated as one as a pool for
 segment allocation".  See physical volume.  [BSG]
 The command interpreted by the answering service to create a process
 for a user.  "Login" was the command name used on CTSS and carried
 over.  I think this is east-coast usage; west-coast systems seem to
 use "logon" instead.
 Linkage Offset Table.  The per-ring table at the head of the combined
 linkage segment that locates each active segment's linkage
 information.  Indexed by segment number, each word is a packed
 pointer to that segment's linkage section.
 Cambridge Project software done by R K Scott?
 Compiler-compiler system, used for parser generation.  Done by Dave
 Ward at BCO.
 Limited Service Subsystem.  Multics allows a project administrator to
 specify the initial procedure for a user process.  The limited
 service subsystem gives a user only simple commands, and user control
 assigns a smaller load control weight for LSS.
 Multics site: Loughborough University of Technology (Loughborough,
 Logical Volume Table.  NSS table listing mounted volumes.
 See Project MAC.
 The Multics port of LISP.  Used virtual memory.  Supported Emacs.
 Symbolic mathematics subsystem written in LISP at MIT AI.  Ported to
 MacLisp by Dave Moon in 1974 and used for some problems no other
 machine could handle; Multics MACSYMA could do them by using virtual
 Michigan Algorithm Decoder.  A 7094 language developed by Graham,
 Arden, and Galler at U of Michigan.  Henry Ancona worked on a design
 for a Multics compiler but it was never implemented.
 Quick and dirty unsecure mail was written by Tom Van Vleck in 1969,
 in imitation of his CTSS mail.  Later, this interface was switched to
 use ring-1 message segments, and then later still was replaced by a
 suite of tools designed for use in a networking environment.  The
 early Multics mail tools predated the Internet and "net mail".
 (1) The per-user file that mail is received in.  (2) A cell in the
 SCU, used to interrupt an active device.
 Multics site: University Mainz (Mainz, Germany)
 Multics Checkout Bulletin.  Early Project MAC document series.
 Technical white paper, internal to the development group.
 Multics Computer Center.  Another name for Honeywell's System M.
 Canadian DND Multics site.
 Multics Change Request.  The authorization form that had to be
 approved as part of the CISL development process before a change was
 made to Multics.  
MCR Board
 The group of developers who met weekly to consider MCRs.
 Multics Communication System.  Either the DN355 assembly-language
 software that ran terminals and comm lines for 6180 Multics, or that
 taken in conjunction with the ring 0 TTYDIM which implemented the
 Multics side of its protocols.  MCS was flexible enough to handle
 Bisync lines, X.25, and other spiffy features, in addition to
 terminals at many speeds.  Emacs brought on the need for efficient
 character-at-a-time I/O and echo negotiation.  People in other
 Honeywell Software organizations were continually annoyed at the fact
 that Multics required its own communications software in the comm
 processors, and could not use standard Honeywell packages.  The
 architects and implementors of MCS, which replaced older DATANET
 software by Dick Snyder, were Mike Grady, Robert Coren, and Larry
 Johnson, the "FNPMeisters", ("f'noopmeisters") as they were known.
 [Perhaps Charlie Hornig or someone else knows something about how MCS
 and IP/TCP later interacted?] [BSG] [Should also say something about
 what came after MCS, e.g.  NPS, UNCP etc]
 McDonnell Douglas, Transport Aircraft.  Multics site.
 Multics Data Base Manager.  Another name for MRDS.
MDBM Data Dictionary
 Multics Design Note.  Early Project MAC document series.
 Third party spreadsheet package for Multics.
message coordinator
 A facility by Tom Van Vleck (1972) that defines and manages multiple
 logical operator consoles and routes them to and multiplexes them
 over physical consoles.  Before the advent of this masterpiece of I/O
 switchery, (see ios_), Multics actually required a console for each
 of its daemons, and the array of TTY37s with their bleary red-shifts,
 40's-looking 6-volt pilot lights, and autonomous, cinematic
 chattering that was needed to run the 645 Multics service on the 9th
 floor of (545) Tech Square was either extremely impressive or
 unimpressive, depending on one's degree of sophistication.  [(I was
 young and new, and impressed)-BSG]
message segment
 A ring-1 segment that contains individual messages, used to implement
 mailboxes.  Used extended access to specify additional access
 Multics has many metering commands, such as file_system_meters,
 traffic_control_meters, pre_page_meters, device_meters, tty_meters,
 page_trace, trace, meter_gate, meter_signal, alarm_clock_meters,
 vtoc_buffer_meters, total_time_meters, the ready message, and the
 script driver.  The microsecond hardware clock made it easy to
 instrument code.  Almost all subsystems have metering built in,
 running all the time; the commands just display the internal
 counters.  The standard procedure for installing a new system release
 included running a 60-minute performance benchmark.
Ministere de la Culture
 Multics site: Ministere de la Culture (Paris, France)
Ministerie van Sociale Zaken
 Multics site: Ministerie van Sociale Zaken en Werkgelegenheid (Den
 Haag, The Netherlands)
 Multics Graphics System.  Also Max Smith's initials.
 Master Group Table.  System administration table.  Defines work
 classes and load control groups, which determine the number of users
 from each group that are permitted to log in, and the percentage of
 system resources that they are allocated while logged in.
 Small, simple, fast version of the GIM, introduced in 1968.
 Third party stat package for Multics by Minitab, Inc.  Designed to
 run on a wide variety of operating systems.
 Massachusetts Institute of Technology.  A private university, founded
 in 1860, located in Cambridge, MA.  "A university polarized around
 science."  Home of Project MAC.
 The graffiti file at MIT.  (mmtu = mene mene tekel uphairsin, the
 writing on the wall, name due to Charlie Garman.)  This info seg was
 maintained by IPC personnel, who responded to comments from users.
 A sale Multics didn't make?
 Message of the Day.  This info seg is printed at login, and is
 updated by operations to inform users of system schedules, new rules,
 and so forth.
 Multics Online Workstation Support Environment.  Its major feature
 was BFT (Background File Transfer), which allowed the user to start a
 file transfer and go on to do something else (a big deal for a PC in
 1987).  [BWS]

 Microprogrammed Peripheral Controller.  These huge Honeywell
 peripheral controllers (on the 6180) requiring software loading did
 not seem to provide any noticeable advance in functionality over the
 non-microprogrammed peripherals on the 645.  See Zero Six Dog.  [BSG]
 Multics Planning Notebook.  Planning and coordination document used
 in the late 60s to manage Multics bringup.
 Multics Project Office.  A group within Honeywell FSO that tried to
 sell Multics to the government.
 Multics Release.  The system numbers presented to the customer world.
 Multics Relational Data Store.  Originally written by Jim Weeldreyer
 and Oris Friesen of Honeywell Phoenix. Unbundled product.
MRGEDT CTSS command that sent a job to the 6.36 simulator.
MRPG Multics Report Program Generator.  Done by Jim Falksen at
 Honeywell Phoenix.
 Internal Honeywell codename for a never released processor.
 Multics Staff Bulletin.  Document describing rules and administrative
 (1) Multics Special Projects; Minneapolis group responsible for
 marketing and supporting first Multics sites after the merger.  (2)
 The airport code for Minneapolis/St. Paul. [WEB]
 Multics System Programmer's Manual.  About 3000 pages of
 documentation of the system, written mostly before coding started.
 The total design presented was more complex and grandiose than was
 ever implemented.
 Multics Standard System.  System numbers used internal to the
 development group, and at MIT.
 Either "Multics standard tape" or "Multics system tape", which latter
 was in fact an instance of the former, being a checksummed, labeled,
 headered, trailered, fixed-length-record tape format with periodic
 tape marks used for all backup tapes and disk snapshots, as well as
 the tapes from which the system and BOS were booted.  The record
 header included two fixed octal constants determined to be optimal
 for checking controller integrity.  This format later proved to be
 inimical to the goal of having hardware-bootable tapes, and was a
 nightmare to support in the several assembly-language environments
 (e.g., BOS) that required it.  [BSG] See bootload and Zero Six Dog.
 Disk unit.  MSU0451 held about 149 MB of usable Multics pages.
 Disk unit.  MSU0501 held about 1006 MB of usable Multics pages.
 Disk unit.  MSU3381 held about 3367 MB of usable Multics pages, and
 was an IBM OEM.
 Multics Technical Bulletin.  Replaced MCBs after Multics was "checked
 out." Technical white paper, internal to the development group.
 Multics Task Report.  Early Project MAC document series.  Described
 who was doing what.
 I used "mult" to mean either "actively doing Multics programming, or
 logged in interacting with Multics, as opposed to being away from a
 terminal," or secondly, said of systems, "successfully time-sharedly
 running users in the user ring," i.e., what a crashed or hung system
 doesn't do.  "Really? It was multing just fine a half hour ago." This
 was in part backed by the Ring 1 command level command MULT, which,
 indeed, told it to do just that - or was it the BOS runcom? Yes, I
 think it was the latter.
 David Levin used to tell the story, he had first cut his
 super-long hair and beard, and how Moseley Meer just sat there next to him 
 multing for a half-hour before saying, "David?"
 Or "Can you stop multing and spend some time with some human beings?"
 Today that would be called "Multics hacking," modulo the unfortunate
 ambiguity of the term "hacking."[BSG]
 At times I used "multer" in the sense one would use "guitar player"
 as opposed to guitarist, i.e., it could be a term of praise through
 too-low-a-term (what's the trope term?).  "Noel was one multer not
 soon to be forgotten."[BSG]
 Anyone who contributed to the development and success of Multics.
 There is no such thing as an ex-Multician.  [TVV]
 I used "Multician" to mean any pro-level, skilled Multics 
 programmer/designer.  Much like "musician." You might be a really good 
 amateur and be highly regarded as a Multician, or even be a pro but not 
 really be a Multician.  I think it had to be your main, or full-time 
 pursuit, though.  "Moon, in addition to his thousand other talents, was a 
 hell of a Multician," though.  I was "as well known a Multician as any." 
 "Tom Van Vleck was one of the original core of Multicians." [BSG]
 Stylistically consistent with the standards of Multics design and
 excellence.  Prelinking and phcs_$flush_file_pages are not
 multicious.  Consistent with and excellent in the Multics design
 philosophy.  [BSG]
 Multiplexed Information and Computing Service.  Always spelled in
 mixed case.  Informal plural: Multices (Latinate).
multilevel daemon
multisegment file (MSF)
 One of the weaknesses of Multics is that data files larger than a
 megabyte are hard to map into the virtual memory.  The file system
 supports multisegment files as a partial solution.  A multisegment
 file is a directory with a nonzero bit count equal to the number of
 components of the file.  Each component is a segment, contained in
 the directory, and named 0 ... N.  Programs that produce printed
 listings, such as compilers, use a set of routines that can write
 MSFs, as do the language runtimes for PL/I, FORTRAN, and COBOL.  The
 I/O daemon can print MSFs.
 Multics site: Centre Informatique Regional Interuniversitaire de
 Lorraine, Universite de Nancy 1 (Vandoeuvre Les Nancy, France)
 Network Control Program.  (1) the set of ARPANet inter-host protocols
 that preceded TCP/IP (which latter made the Internet possible).  (2)
 The set of ring 0 Multics programs that supported this protocol in
 the Multics ARPANet implementation, written by Doug Wells and Ed
 Meyer, and discarded when TCP/IP took over.  This system relied on
 the Host-to-IMP [Interface Message Processor] protocol, that
 supported in wired code by Raj Kanodia, which pioneered an event
 count technique for which he later acquired some fame.  The Multics
 NCP involved a daemon which periodically called in to unload buffers
 of unfetched data from from ring 0.  The NCP code was conceptually,
 stylistically, and implementationally isolated from the rest of ring
 zero, and was a bete noir to all Multicians except the aforementioned
 "network people".[BSG]
 National Computer Security Center.  This US government organization
 produced the Orange Book under the guidance of its Deputy Director,
 Roger Schell.
 This command reveals a deep weakness in the Multics design.  A
 Multics process is expensive to create, so it runs commands and user
 programs inside the same process that contained the user's listener
 and shell.  If these programs damage the process's machinery, such as
 its stack or combined linkage segment, the process may malfunction.
 The new_proc command destroys the current process and creates a new
 one, by sending a signal to the answering service.  Until Multics was
 changed (about 1970) to refresh the linkage information for a program
 when it was recompiled, users used to have to new_proc every time
 they recompiled.
 "Wait/notify" is one of two interprocess synchronization mechanisms
 used in Multics.  "block and wakeup" is intended only for user
 programs.  The overhead of event queues and the inability to wait on
 multiple events at once made it unsuitable for use in complex
 asynchronous subsystems (e.g., page control) in the supervisor.  A
 process goes to "wait on" a given "event", a 36-bit number then
 recorded in the traffic control entry for the process.  The process
 is suspended until some other process "notifies" that event,
 whereupon -all- processes waiting on it are resumed.  Part of the
 protocol is the possibility of false notifications, the waiter must
 test upon resumption, and no datum is conveyed with the notification.
 Directory and other non-wired locks, as well as paging events, are
 managed with this mechanism.  [BSG]
 Standard GCOS DN355 software.  Multics could run with this as well as
 its own, more functional, MCS.
 New Product Test.  Honeywell organization that tested each new CPU
 after it was built.  In the late 70s, lack of test cell capacity was
 a limiting factor on LISD's ability to deliver Multics CPUs.
 Multics customer.  See Site N and DOCKMASTER.
 New Storage System.  MR 4.0 included a rewritten storage system that
 supported more disk devices and improved fault tolerance and
 Nippon Telephone.  Built a Multics clone, the NTT DIPS.
 Naval War Games System.  A set of 4 systems sold to CDC who used them
 for US Navy training.
 Counting in base 8.  On a 36-bit word machine, this is the natural
 way to express numbers.
 Multics site: Office National d'Etudes et de Recherches Aeronautiques
 - Centre d'Etudes et de Recherche de Toulouse [ONERA-CERT] (Toulouse,
Online T&D
 Online Test and Diagnostics.  Allows boxes to be isolated from a
 running system and tested.  CPU and memory were first.  I/O testing
 was not done until the mid 80s.
 Unsung heroes.  Computer operators at many sites worked long and hard
 to keep big machines running and users happy.  This is a
 fast-vanishing profession.  See also pl1_operators_.
 System proposed to follow on after Multics.  Eventually canceled by
 Operations Reporting and Accounting System.  A large application
 developed by SofTech under contract to GM corporate in the mid 70s.
 ORAS was a huge spreadsheet application that summarized all of GM's
Orange Book
 Standards document produced by the NCSC, titled Department of Defense
 Trusted Computer System Evaluation Criteria, DOD 5200.28-STD,
 December 1985.  Describes levels of security for computer systems.
 Roger Schell was the main driver behind this document.
 Honeywell codename for a processor in the ADP architecture.
 Oakland University.  Multics site.
Overlap Project
 MIT social-science project which paid to keep the 7094 going at IPC
 when Multics was late.
packed pointer
 A hardware feature on the 6180, and a much rarer software format on
 the 645, that encodes a virtual memory pointer (segment and word
 number, plus EIS bit offset on the 6180) in one 36-bit word.  While
 50% more storage-efficient than the two-word ITS pointer, a packed
 pointer could not be used for indirection (see EPPBP) or the storage
 of a value where ring number had to be saved (see TRR). Also, only
 twelve bits were available for the segment number (instead of 15 in
 an ITS pointer), and this was the tightest limit on the maximum
 number of segments in a process, far too small.  The PL/I compiler
 made heavy internal use of packed pointers (which had to be loaded
 with a special instruction, again, see EPPBP), but because of the
 above, their use in general system code was quite uncommon. [BSG]
 A fixed size piece of memory.  The hardware supports both paged and
 unpaged segments.  The SDW for a paged segment points to a page
 table, an array of PTWs (stored in the AST).  Each PTW points to a
 page in core, or has a fault tag and an indication of where on
 secondary storage the page's contents can be found.  The 645 had two
 page sizes, 64 words and 1024 words.  Bookkeeping and storage pool
 management was so complex that small pages were eliminated in 1968.
page control
 The ring 0, wired software responsible for managing the transfer and
 mapping of pages in and out of memory.  Only a small amount of this
 is the famous "page replacement algorithm" due to Corbato; most of
 this code, almost all complex and highly-optimized assembler
 language, is the management of I/O and state, the multilevel paging
 hierarchy management, and interaction with and services provided for
 segment control and other areas of the system.  Page control was
 perhaps the most asynchronous, difficult, and critical component of
 the whole system.  Successive gurus who worked there and left their
 marks were Stan Dunten, Steve Webber, and Bernie Greenberg.  [BSG]
page fault
 Still called that, or "missing page exception."  What the hardware
 does when a page is referenced whose PTW says it's not present.
paging device
 A device used as the intermediate level store in a multilevel paging
 hierarchy ("page multilevel"), at first the firehose drum, then later
 the bulk store.
 (forget what this stood for) Programming linguistics language created
 by Art Evans, using ideas from Martin Richards.  Used in the first
 course taught using Multics, 6.231, in the summer of 1969.
Palyn Report
 Report prepared in 1978 by Palyn Associates for Honeywell corporate,
 recommending long range large systems plans.  
 A contiguous region of a disk volume.

 Grenoble wrote a Pascal compiler for Multics in the 1980s.

 Multics passwords are stored in the PNT encrypted by a one-way
 function.  They are eight characters long, and the login command has
 optional arguments to generate a pronounceable password for you.
 (Code written by Morrie Gasser of MITRE in connection with Project
 Guardian.)  This facility can be invoked automatically after a
 password has expired.
path name
 Multics segments are named by a sequence of entry names, separated by
 > characters, e.g.  >udd>m>vv>  This path name provides a path
 from the root directory to the segment.  Pathnames are absolute
 (descend from the root) or relative to the current working directory.
PC support
 A feature in MR11.0? See MOWSE.
 (or PDD, process_dir_dir).  Alternate names of the directory
 >process_dir_dir, whose subdirectories are users' process
 directories, created and destroyed as processes are created and
 destroyed.  Compare UDD.
 Project Definition Table.  The per-project segment that defines which
 users may login on a project to User Control.  A project
 administrator can update this segment online.
 Process Data Segment.  A per-process, ring 0 segment, containing
 per-process supervisor data (other than the KST and descriptor
 segment) as well as the ring 0 stack of the process.  The PDS has the
 same segment number in every process, and contains many
 symbolically-referenced data objects.  When a process is made
 eligible by the scheduler, the first page of the PDS, which contains
 data needed by wired code, including places for faults to store SCU
 data, is wired.  Compare PRDS.  [BSG]
 Privileged HardCore Supervisor gate.  A gate which allows
 semi-privileged operations, such as examining the contents of ring 0,
 but doesn't let the user do things that might crash the system.  A
 user with access to phcs_ is trusted, since this gate can be used to
 examine passwords in the input buffers.  Compare with hphcs_.
Phase 1
 Integration milestone during Multics development.  The first time
 that Multics booted from tape and came up to type on the operator's
 TTY.  Accomplished December 1967 by Noel Morris and Tom Van Vleck.
 Page Has been Modified.  Flag set by the CPU in a PTW when a page was
 stored into, used by the page control replacement algorithm.
 City in Arizona, where LISD built computers.  Used metonymically to
 refer to LISD management.
 A feature of compose.
 Page Has been Used.  Flag set by the CPU in a PTW when a page was
 read, used by the page control replacement algorithm.
physical volume (PV)
 NSS term meaning "a disk pack".  The contrast is with logical
 volumes, groups of PV's: users can specify on which LV a segment is
 to reside, but not on which PV - that is up to the system alone.
 PV's, however, are the unit of data integrity and recovery, and this
 non-transparency in the illusion is apparent.  [BSG]
 Process Initialization Table.  Segment in the
process directory where the system
 stores constants determined at process creation time.
 Programming Language #1, invented by IBM.  Combining scientific
 features from FORTRAN, business features like records from COBOL, and
 block structuring from Algol, PL/I's future looked rosy in 1965 when
 the team chose it for the Multics systems programming language and
 the idea of coding an operating system in a "higher level language"
 was radical.  Multics's storage models, procedure models, data types,
 and run-time architecture were all designed around those of the PL/I
 language, and all system APIs were given in PL/I.  Use of any other
 language for systems programming tasks was actively and officially
 discouraged.  Nonetheless, over the years certain critical subsystems
 of substantive complexity and bulk (notably page control and the
 scheduler) were recast into assembler language to optimize
 performance.  The version 2 Multics PL/I implementation (Bob
 Freiburghouse and Barry Wolman, chief architects), is arguably the
 preeminent PL/I implementation of record.  [BSG]
 A segment referred to by every compiled PL/I program, containing open
 code (threaded code) cliches for common constructs, including
 call/save/return.  Normally every process shares the same (wired)
 copy of the segment, but a user can modify the operator pointer in
 the stack root to switch operators to, for example, test a new
 version or to turn on call tracing.
 Print with Line Numbers.  A private command by Max Smith that was
 used heavily in the development community, very similar to UNIX grep.
 Although the Multics product had nothing like it, widespread feeling
 that it was not Multicious, as it had no obvious place in an
 organized, extant or proposed suite of tools, and an immensely useful
 feature of "knowing" about the insides of archives which raised
 questions about other commands, prevented it from ever being made
 part of the product.  While pln's many fans were often frustrated by
 the double-edgedness of the at-times conservative sword of
 multiciousness, and could not understand why the world at large could
 not benefit from this incredibly useful tool, precisely such a
 profusion of diverse, unrelated tools is in fact one of UNIX's most
 well-known flaws.[BSG]
 Person Name Table.  User control's password and user name
 registration database.
pointer register
 A register on the 6180 (or "pointer pair" on the 645) containing a
 segment number and a word number within that segment (and on the
 6180, a ring number and a bit number for EIS), i.e., a generic
 pointer into the segmented address space.  Other than constant and
 code references, Multics instructions usually make references
 relative to pointer registers, for the same reasons of relocatability
 that obtain in any architecture.  On the 6180, the pointer registers
 visible to the Multics instructions are actually fabricated illusions
 constructed of "address registers" shared with the non-Multics (GCOS)
 CPU's and segment and ring registers managed by the appending unit,
 which lock-step mimics every CU operation on the "address registers"
 to create the software illusion of pointer registers.  On the 645,
 the "pointer pairs" were wholly within the base frame, being built of
 8 ABRs which could function either as segment or word pointers and be
 associated into pairs.  During normal Multics PL/I code, pointer
 registers are reserved for the stack frame, the entry vector of
 pl1_operators_, and less strictly, the procedure's actual parameter
 list, its linkage section, and the operator table at the base of the
 current stack.  In addition to numbers 0, 1 ...  7, the pointer
 registers also had names, ap, ab, bp, bb, lp, lb, sp, sb, based upon
 their conventional use in Multics PL/I object code.  [BSG].
 Procedure Pointer Register - a tripartite processor register defining
 the segment, ring, and location of the next instruction to be
 executed, the Multics equivalent of the "instruction counter", which
 is the "location" component of the above.  The processor actually
 implemented the three components on three different boards in three
 different ways, but Multics chose to conceptualize it as one.  The
 ring component ("PRR") defines the current ring of execution.
 Compare TPR, TRR.[BSG]
 Processor Data segment.  A per-processor, fully-wired ring 0 segment,
 containing not only symbolically-referenced per-processor data but a
 stack used when running fault and interrupt handlers that cannot take
 page faults or interrupts, such as page control itself, and the
 scheduler.  The processor carries around the SDW for the PRDS from
 process to process like a carpet-bag, dropping it in the same slot in
 the descriptor segment of each process as the processor moves from
 process to process, literally holding it in the accumulator during
 every process-switching instruction (LDBR).  Compare PDS.  [BSG]
 One of two.  The Multics supervisor is pre-linked statically at boot
 time by a pair of assembly-language programs known as the
 "prelinker".  In the late 70's, the capability of pre-linking select
 user's address spaces as a performance boon was added.  This is done
 by a separate "prelinker." [BSG]
 Puerto Rican Highway Association.  Multics customer.
 Multics supported the standard-issue GE and Honeywell line printers
 of the era of fanfold paper, fitted with special type-bars and chains
 to support the ASCII character set.  As these printers were designed
 for a 6-bit BCD character set (and were thus incredibly fast at
 printing foot-thick dumps and the like), printing
 upper-and-lower-case characters required odd modes and complex escape
 sequences.  Although softwarily possible, users never attached
 printers or directed output to it -- the only mode of printer use is
 to queue ASCII files to be printed by the Printer daemon, using the
 dprint command.
 Before the era of GUIs and WYSIWYG editing, fanfold listings were an
 invaluable aid in developing and debugging programs.  [BSG]
 Multics high-level PL/I source language debugger.
 An address space and a locus of control.  A Multics process is a
 complex object, because it has a complicated address space.
process directory
 A directory created when a process is created for exclusive use of
 that process, namely per-process and scratch segments, including
 stacks (including the PDS) and combined linkage segment.  Disk quota in the 
 process directory is not charged against the user.  All process directories 
 are subdirectories of >PDD [BSG]
process overseer
 Procedure called at process initialization time.  It sets up the
 process environment and then calls the process's listener.
process preservation
 Multics can save a process across a communications interruption.  A
 user can later reestablish communications and connect to or destroy
 the preserved process.
 Facility to count the number of times each source statement in a
 program is executed.  Compile a program with the -profile option, run
 it, and then use print_profile to print out per-statement counters in
 its static section.
 A group of Multics users working together, for the same firm or
 organizational division, for whom Multics can pool all disk record
 quota and establish common access rights, and grant other group
 privileges.  Although a user has to be registered globally to the
 system in order to use it, he or she can only log in as a member of a
 project, one project or another at any one time. [BSG] The PDT lists
 a project's users.
project administrator
 The person who administers a Multics project.  Among the
 responsibility of the Project Administrator is registering and
 deregistering users on the project (a user can only log in if he or
 she has a project to log in to), and creating home directories under
 the project directory.  [BSG] Decentralized management of the user
 community was an important feature of User Control; the system
 administrators established the registration of persons, and their
 initial passwords, but project administrators could add and drop
 registered persons without consulting the system administration, and
 modify users' resource quotas and get reports of current usage.
project directory
 A directory for a given UDD.  The subdirectories of the project
 directory are home directories.  In the directory pathname
 >udd>Multics>Morris, >udd>Multics is the project directory. [BSG]
Project MAC
 MIT Project MAC, suggested by J.C.R.  Licklider, was the organization
 that began the research that led to Multics.  It is now called the
 MIT Laboratory for Computer Science.
 Procedure Ring Register.  Part of the PPR.  Stored in the SCU data.
 Page Table Lock.  More accurately, a lock on all the data-bases of
 page control, that is, PTWs, core frame tables, and paging device
 map.  This lock, protecting a huge amount of performance- and
 integrity-critical data, is used only by wired code masked against
 interrupts, including interrupt and page fault handlers, so it was
 designed as a "spin lock", which would only be found locked on
 multi-processor systems.  As Multics grew, the necessity of
 alleviating this growing performance bottleneck resulted first in the
 Cow's Stomach, and later in an extremely non-modular tryst of traffic
 control and page control, also by Greenberg, allowing processes to
 wait (see notify) on the Page Table lock as a highly special case.
 Page Table Word.  36-bit word interpreted by the hardware, which
 contained the absolute address of a page, or a fault tag and an
 indicator of where the page is on secondary storage.
pure procedure
 Multics compilers all generated code that did not modify itself.
 This may seem like a no-brainer, but it was quite radical at the
 time: OS/360 struggled with the concept of "reentrant" (same thing as
 pure procedure), "serially reusable," and another flavor, forget the
 name, of program.  CTSS stored into its code in lots of places, but
 we realized that this would be very bad on a multiprocessor system.
 Physical Volume Table.  NSS table listing physical volumes.
 CTSS editor written by Ken Thompson.  Ported to Multics BCPL.  Bob
 Daley then wrote Multics qedx as a less functional but faster
 version.  Both qed and qedx are programmable: they support multiple
 buffers, and a user can execute the contents of a buffer containing
 editor commands.  Doug McIlroy wrote a version of tic-tac-toe in qed.
 Qedx was the standard editor for most of the Multics development
 community throughout the 70's.  See ted.
 A method used to interrupt a running program.  The quit condition is
 raised by pressing the ATTN or INTERRUPT key on a terminal.  This
 condition normally causes the printing of QUIT followed by
 establishment of a new command level.
 Usually referred to disk quota.  Sometimes people spoke of the other
 resource limits, CPU, dollar cost, etc, and quotas, since that was
 the term used on CTSS.
 Rome Air Development Center, Griffiss Air Force Base, Rome NY.  The
 first Multics sale (after MIT, BTL, and GE).  Pronounced "rad-see".
 Multics site: Royal Aircraft Establishment (Farnborough, England)
 GECOS machine-level debugger, like DDT.
 "Ring alarm register".  A 6180 CPU register that causes a fault when
 a process transfers control to a ring at least that high.  Using this
 register, interrupts and signals can be masked on a per-ring basis
 without the need for software help in inter-ring transfer.  [BSG] The
 645 didn't have this register, and simulated the function by giving
 each process multiple descriptor segments, one per ring.
 (1) Read-alter-rewrite, an SCU operation needed by a class of CPU
 instructions (AOS, STAC, STACQ) often used for synchronization. On
 the 645, the SCU ensured that no other requests (from CPU's, GIOC,
 etc.) were serviced between the requester's "read" and "rewrite."
 Typically, STAC and STACQ were used to lock and unlock locks. The
 6180 generation SCU's did not at first support this two-phase
 operation, and much effort was spent by GCOS-oriented hardware
 designers to convince us to make Multics use LDAC, the GCOS locking
 instruction which indicates the locked state by zeroing the word in
 question in one phase, instead! This was unacceptable, and we got
 compatible two-phase ("STACQ") locking retrofitted, but it took some
 time to debug it to acceptability. (2) Roger A. Roach, MIT IPS top
 Multics man. [BSG]
 Read Calendar Clock.  645 instruction that read the clock.  Returned
 a 52-bit value, the number of microseconds since 0000 GMT Jan 1,
 Renaissance Computing Incorporated.  Took over support of the
 Consistent System.
 Resource Control Package. Written by Bill Silver. Handled tape
 mounting requests, operator interaction, tape reel access control.
read bracket
 The range of rings which can read a given segment.  If the segment's
 ring brackets are 1, 5, 5, the read bracket is rings 0 to 5 (the
 first 5).  Also sometimes used to refer to that upper inclusive limit
 itself.  [BSG].

ready message
 The standard listener called cu_$ready_proc before reading a command.
 The default action for this call was to print a line like
        r 1445 2.370 22
 showing time of day and virtual CPU usage and page faults since last
 message.  This message was customizable by author-maintained programs
 such as general_ready or could be turned off entirely with the
 ready_off command.
 A relative pathname is interpreted relative to the current working
 Multics site: Renault (Boulogne-Billancourt, France)
 BOS command.  Opposite of save.  The save and restor commands copied
 the contents of disk to tape in physical format, as fast as the
 system could do this.  These operations were much faster than running
 the backup daemon inside Multics to dump segments logically through
 the file system.  Replaced by the volume backup facility.
 Obtain a copy of a lost file from a backup tape and put it back in
 the hierarchy.
 Read, Execute, Write, Privileged, Unpaged, (not) Gate, the six SDW
 permission bits on the 6180 in their storage layout, a cryptic
 formula which often appeared in part or whole in descriptor segment
 dumps, and was very dear to Noel Morris.  The corresponding 645
 formula was "SAWP DATA" (Slave-access write-permit), which novices
 sometimes mistook for a typo.  [BSG]
 Concentric level of privilege of user/supervisor distinction.
 Although now a standard part of the Intel architecture and Microsoft
 Windows, this concept was invented on Multics.  Although there were
 64 rings (an illusion created by software) on GE 645 Multics, there
 are 8 rings, supported in hardware, on the Honeywell 6180 in its
 various models.  Only rings 0, 1, and 4 saw any non-forced use.
ring 0
 The most privileged ring of the Multics architecture.  The hardcore
 supervisor runs in ring 0, so the term was used as a casual synonym
 for "the supervisor" or "the hardcore."  Privileged code only runs in
 ring 0.
ring brackets
 Three numbers associated with every segment defining the highest ring
 which can write in it, the highest ring which can read it (must be
 equal or larger than the preceding), and the highest ring (if greater
 than the preceding) which can call it as a gate.  Executable segments
 have the first two numbers equal, lest some ring be able to influence
 the execution of an inner (lower-numbered, less privileged) ring by
 writing the segment.[BSG]
 Remote Job Entry.
 Root Logical Volume.  NSS term for the logical volume containing all
 directories and system critical software.
 Reference Name Table.  This per-ring table records all reference
 names that a user has used to reference a given segment.  Also
 holdssearch rules and current working directory.
 Root Physical Volume.  NSS term for the physical volume that contains
 the hardcore partition and the root directory.
 The top directory in the naming hierarchy of a Multics system.  The
 name of the root is simply ">".  The root directory is always stored
 on the RPV.
 The BOS facility that allowed the execution of a script of BOS
 commands, named after the corresponding CTSS facility.  Runcoms could
 call other runcoms but not return.  In 1977, a facility for
 "continuous operation" was added to BOS and Multics; a small piece of
 memory was shared between the two environments for flags, and a
 runcom written that would reboot Multics if it crashed, if certain
 flags were set in the communications region.  This facility kept MIT
 Multics running during the Big Snow of February 1978.
run unit
 A COBOL concept.  There were some commands whose short names were
 spelled out, rather than pronounced, such as stop_cobol_run_unit.
 CTSS command for text formatting written by Jerry Saltzer.  Ported to
 Multics BCPL.  Eventually replaced by compose.  Ancestor of UNIX
 A set of programs for reconstructing directory and file system
 integrity after a crash.  Until NSS, the Salvager was a separate tape
 booted after a crash; built of Multics supervisor parts and running
 entirely in ring 0, it scanned and repaired the file hierarchy
 instead of coming up to serve users.  Eventually, more and more of
 its functionality was moved to code that can run while the system is
 up.  When a crawlout occurs, locked directories are salvaged before
 returning to the user ring.  [BSG] The salvager does more or less
 what UNIX fsck does.
 Used ambiguously, as in today's operating systems, to denote either
 that piece of software that manages multiprogramming or that
 allocates time slices to users.  Since these are the same program,
 "pxss" (process exchange, switch stack), this was not a problem.
 This very large, complex assembly language module was highly
 optimized, including by many non-modular hooks into page control.
 [BSG] The Multics scheduler began as a Greenberger-Corbato
 exponential scheduler similar to that in CTSS.  About 1976, it was
 replaced by Bob Mullen's virtual deadline scheduler.[TVV]
  Secure COMPuter. Secure front-end processor, done by Honeywell in
 Tampa, first system to get an Orange Book A1 rating.  Used to be
 called SFEP.
 Multics site: SCSI (?)
 (1) System Control Unit.  The multiported, arbitrating interface to
 each bank of memory (usually 128 or 256 KWords), each port connecting
 to a port of an "active unit" (CPU, GIOC or IOM).  On the 645, the
 clock occupied an SCU as well.  The SCU's have their own repertoire
 of opcodes and registers, including those by which system interrupts
 are set by one active unit for another.  The flexibility of this
 architecture was significant among the reasons why the GE 600 line
 was chosen for Multics.[BSG] (2) Store Control Unit.  The 645 and
 6180 instruction instruction that stores an eight-word encoding of
 the processor state (other than register contents and the state of
 the EIS unit on the 6180) at the time of an interrupt or fault.
 Because of potentially lengthy indirect chains and instruction
 modifiers with side-effects (increment-on-reference pointers),
 instructions must be restartable in the middle.  Only some of this
 data is used by the software, and there are bits that are by and
 large not understood by the system staff: most is used by the
 processor upon restart.  With the EIS unit data, the processor state
 took 40 words to encode [BSG].
 Segment Descriptor Word.  An element of a process' descriptor
 segment; the hardware-accessible data element that defines a segment
 and the process' access rights to it.
 Old name for McDonnell Douglas site in Long Beach CA.
search rules
 The dynamic linking mechanism looks for segments in a set of
 directories specified by the user process's search rules.  These
 rules are per-process and stored in the RNT.  In addition to
 specifying a list of directories, there are three special values that
 can be specified: -initiated-segments, specifying the use of already
 initiated segments (this rule should always be first); -working_dir,
 to select the current working directory (which might have changed
 since the search rules were set); and -referencing_dir, which
 specifies "the same directory as the one holding the procedure that
 took the linkage fault." This is a subtle brilliance, that helps
 subsystems find the version of code that they are packaged with.
 Jargon for "(missing) segment fault".  What the hardware takes when a
 segment number is used for which there is no valid SDW.  The latter
 is not necessarily an invalid or error situation, in fact, it is the
 default situation when a segment has just been made known.  Segfaults
 are resolved by looking in the process' KST (table of segments known
 to it) to find out what segment is intended to be referenced, and the
 AST searched for that segment's page table to construct the SDW.  If
 not active, the segment has to be activated, perhaps requiring some
 other segment to be deactivated to make room for its page table.
 When segments are deactivated, segment control invalidates the SDWs
 of all processes having SDWs for it, to start this tale at the
 beginning again.  [BSG]
 A user-visible subdivision of a process's address space, mapped onto
 a storage system file.  Each segment is 1MB long, and has a zero
segment control
 The ring 0 software responsible for the management of segmentation,
 the allocation and deallocation of page tables, the connection and
 disconnection of the SDWs of processes from the page tables, and the
 performing of operations (such as truncation) upon active segments.
 Tightly bound up with, and requesting service of page control, in the
 "New Storage System" (NSS), segment control is tightly bound up with
 VTOC management as well.  [BSG]
 The division of a process' virtual memory into a vector of vectors,
 each such vector being a segment.  The idea came from the Burroughs
 5500 series.  Different segments can have different access rights,
 including for different users, and other differing attributes.
 Multics's use of segmentation is as a basis for what are now called
 "memory-mapped files", hence each segment is a file and each file is
 a segment, in some sense, the basic idea of Multics.  [BSG]
 IBM mechanism for typewriters and computer terminals.  The character
 set was on a plastic "golf ball" that struck the paper through a
 typewriter ribbon.  This mechanism was used in the IBM 1050 and 2741
 terminals, in various third-party terminals, and in the console
 typewriter of the 6180.  There were three grades of this mechanism
 OEM'd by IBM, light, medium, and heavy duty; the 6180 console had a
 heavy duty model.
 Multics site: Societe Europeenne de Propulsion (Vernon, France)
Series 60, Level 68
 Marketing name for a repackaged 6180.  Later called the DPS-68.
 System Environment Test.  Honeywell organization.
 Secure Front End Processor; original name of the machine that
 eventually becameSCOMP.[WEB]
 The Multics command processor used to be called the shell.  This
 program is passed a command line for execution by the listener; it
 parses the line into a command name and arguments, locates the
 command and initiates it, and calls command with arguments that are
 character strings.  It is simple to replace the default system
 supplied shell with a user-provided program, by calling cu_$set_cp
 (see abbrev).  A UNIX shell includes the concepts of both shell and
 listener in the Multics sense.

 The accounting system defines up to 8 shifts, which can start at any
 half-hour boundary in a week, at site option.  User Control charges
 users' resource usage against the slot for the current shift in a
 per-user vector in the PDT for the user's project.
shriek name
 Multics has a convention of converting unique IDs into character
 string names: >pdd>!BqrHmpZZtL was a typical pathname of a process
 directory, generated from a 36-bit process ID.  These were called
 "shriek names," because a colloquial pronunciation of the exclamation
 point was "shriek."  The unique_name_ subroutine reduced the alphabet
 to sixteen characters to eliminate the possibility of obscenities:
 all vowels were removed, "v" because you can use it to look like an
 "u", and "f", of course, and "y" because it's like a vowel, and 2
 others. The initializer's process ID (777777000000) always came out
 !zzzzzbBBBBB, which was thus always the name of its process
 directory.  Rich Lamson suggested that this was Hebrew for "Fly of
 the Lord" (the Initializer's function, in some sense, cf.,
 "Beelzebub", Heb. for "Lord of the Flies.")  [BSG]
 PL/I name for an exception.  The Multics environment maps hardware
 events, e.g. zerodivide, linkage fault, out-of-segment-bounds
 reference, into PL/I signals.  When a signal is raised, the runtime
 searches back up the stack for a condition handler for the signal,
 and invokes it if found.  If no handler can be found, the runtime
 starts over, looking for a handler for "unclaimed_signal."
 Eachlistener on the stack establishes an unclaimed signal handler.
 If invoked, this handler prints a message and "caps" the stack,
 establishing a new "command level" by calling a new listener.  If you
 give the start command, the new listener returns to the signal
 handler, which returns to the point of error and retries.  For
 linkage faults, this setup is ideal: if your program calls a
 non-existent subroutine, the system will come to command level and
 let you write it, compile it, and then type start to invoke it.
 Issuing the use command, followed by start, lets you specify a
 different segment or entrypoint name, so that you can redirect a call
 if you made a simple spelling error.  The on and answer commands
 establish a condition handler and execute a command line under it;
 when a program asks a question by calling command_query_, a signal is
 raised that the answer command can intercept and supply a canned
 MIT Student Information Processing Board.  A student organization
 founded in 1969? by Bob Frankston, Gary Gut, David Burmaster, and Ed
 Fox.  The original purpose was to provide access to computers for
 students, which translated into buying time on the online systems, in
 the days when computers were big and heavy and cost millions of
 dollars.  To be honest, SIPB was the Student IPB when the computer
 center was run by the big IPB.  SIPB used what is now called soft
 money.  Of course, as any organization does, it tended to become a
 social group as well as a service organization.  Many of the young
 Multicians of the late 70's were active SIPB members.  SIPB's
 relationship to Multics was complex: by virtue of being among its
 greatest admirers and promoters, they were at once among its most
 demanding and insistent critics.  Overall they were enthusiastic,
 though SIPB even gave out CTSS time to a user (Paul Green!) for WTBS
 (now WMBR). [BSG, Frankston]
Site Analysts
 Heroes of Multics.  Honeywell employees who worked at the customer
 site and helped the customer use the machine, report problems,
 install fixes.
Site N
 US National Security Agency.  They didn't want it known that they had
 a Multics, so all the lists showed "Site N" and if you had questions,
 you were referred to some guy in FSO.  Bob Morris (see EPL) was
 Principal Scientist at NSA after he left BTL.
 Multics site: St John's University (Jamaica NY)
 Segment Management Module.  Early supervisor module, obsoleted before
 1970; managed reference names.  Sue Rosenbaum worked on it.
 Multics site: Societe Nationale d'Etude et de Construction de Moteurs
 Aeronautiques (France)
 Multics has a sort/merge facility that was done as part of the COBOL
 support.  Very batch-like, as a result of the language definition.
 Multics customer.
 Multics customer.
 System Segment Table.  Supervisor segment fabricated at boot,
 contains AST, and thus, all the page tables of all segments in use.
 Store A (accumulator) Conditional (on memory operand being zero.)
 The 645/ 6180 instruction used universally in Multics to lock locks
 by storing a process 36-bit ID in a zero (unlocked) lock word.  See
 Multics has a stack segment for the stack of each ring of each
 process (that has been referenced), in the process directory of that
 process.  The ring 0 stack is actually (inevitably) a per-process
 data base of the supervisor.  The need for call stacks follows from
 the PL/I basis of the programming environment, which determines the
 stack discipline.  The stack contains data with the PL/I automatic
 storage class.  Procedures have stack frames - there is no
 single-data-item pushing and popping (and no instructions to support
 such).  Stacks are kept to less than the full 256k lest wrap-around
 not be detected.  The base of the stack segment contains a table of
 pointers to critical operators, e.g., the procedure entry
 Store A (accumulator) Conditional on Q (quotient register) (being
 equal to the contents of the memory operand.) Pronounced "stack
 queue". Indivisible RAR instruction used by Multics to unlock locks:
 Multics stores a zero in the word if and only if the content is
 currently the current process's 36-bit process ID; if it is not, the
 supervisor or SCU RAR handling is broken.  STACQ is general enough to
 simulate, with a little software ingenuity, any other real or desired
 indivisible storage update, and was often used to generate unique ID
 tags, event counts, and the like as well as unlocking locks. See
standard service system
 Thecommands and subroutines provided with Multics, necessary for use
 of the system.  Stored in >gt;sss, >gt;sl1, and >gt;unb.  Notice the
 mention of subroutines.  Unlike many other systems, Multics makes
 available a large library of utility routines used to construct the
 standard commands.  These routines are shared by all programs that
 call them by the dynamic linking mechanism.
star convention A convention of representing the names of multiple
 segments in a directory with asterisks.  Each asterisk matches either
 one component of the trailing characters of a component: foo.*.pl1
 matches foo.a.pl1, but not foo.pl1.  ** matches any number of
 components: foo.** matches foo, foo.pl1, and foo.pl1.old.  Although
 there are subroutines to do star matching and searching, it is the
 responsibility of commands to call them; star expansion is not done
 by the shell.  See also equal convention.  [BSG]
 Attached associative processor, built by Goodyear Aerospace, used on
 the RADC 645 and 6180 in the mid 70s.  Had 1000 1-bit CPUs that could
 be combined under program control to do vector operations.  The
 Staran daemon ran with a load setting of 2.
 PL/I storage class.  Storage declared static is initialized once per
static section
 Region of the combined linkage segment where static storage is
 Multics site: Standard Telephones and Cables (New Southgate, London,
 That portion of the operating system which runs in ring 0, a hardware
 concept on the 6180.  The supervisor is loaded from the boot tape,
 and, like the rest of Multics, consists of segments, but most of
 them, although they (mostly) are paged, exist outside of the file
 system.  Having SDWs in every process, the supervisor forms a part,
 the same part, of every process' address space, occupying its lowest
 segment numbers.  The supervisor's SDWs are permanent, and never
 incur segfaults.  Some parts, e.g., the ring 0 stack and the KST, are
 actually different segments in each process, although with identical
 segment numbers.  The supervisor can be thought of as a shared,
 secure domain common to all processes: this gives it the ability to
 develop and store pointers that are valid across processes, a
 capability notably lacking from the Multics user rings.  [BSG]
 Project name for system administrators, the people who registered
 users and projects.
 The Multics project name that daemon processes runs under.
 Project name for system maintainers, the people who installed new
 software on the system.
System M
 Multics system in Phoenix used by Honeywell employees for Multics
 development and for other Honeywell work.
 Test and Diagnostic.  Until late in the 70's, 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.
 Multics used 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.  [BSG]
 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.  
 Text Editor and Corrector.  An editor first written for TX-0 by Dan
 Edwards, then ported to the PDP-1 thru 10, CTSS, Multics, and other
 systems.  Stallman's original ITS EMACS was written as a set of
 editor macros in TECO.
 For "text editor", a powerfully enhanced qedx by Jim Falksen of
 Honeywell Phoenix, mid '70's.  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.  [BSG] The ted editor was added to
 the Multics product line, as an unbundled product, sometime in the
Telefunken TR440
terminal type
 A character string that identifies the kind of terminal device.
terminal operators
 These were the CISL staff who typed in the Multics documentation
 written by the technical writers.  They spent a lot of time
 programming in runoff/compose.
 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.  [BSG]
 A 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
 TransMoGrifier.  Compiler-compiler language created by Doug McClure
 at Texas Instruments about 1964.  Used by Doug McIlroy and Bob Morris
 to write EPL.
 A GE hardcopy terminal that ran at 1200 baud.
 Multics customer.  Two sites in Japan.
 Transaction Processing.  Feature added in MR7.0.
 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.[BSG]
 Trouble Report.  Multics had its own database for tracking and
 reporting on problems.
 Temporary Ring Register - the ring component of the 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 did not
 require "adjust requester 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.[BSG]
traffic control
 The 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 on this subject.
 The management group consisting of the leaders of MIT (Robert M.
 Fano), GE (C.  Walker Dix), and BTL (Edward E.  David Jr.).
 The next-level management group, reporting to the Trinity, of the
 programming managers of MIT (F.  J.  Corbato), 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).
 Cambridge Project feature?
 IBM's time-sharing system for System/360.
 Device interface module for terminals.  Hardcore software that
 handles communications, talked to the FNP.  Pronounced "titty-dim."
 Teletype Model 37.  First terminal to use full ASCII.  150 baud.  See
 message coordinator.
 Multics site: University of Birmingham Computer Centre (Birmingham,
 Multics site: University of Calgary (Calgary, Alberta, Canada)
 Universal Interface Module.  Feature designed but never implemented
 for 645 Multics.
UK file transfer & RJE
UK mail & network addressing
UK Transport Service
 Costs extra.  Some Multics software was not "bundled" with the
 hardware purchase, but instead had an additional charge.  Typically
 there would be several prices: a large amount for a one-time paid-up
 license, or an initial fee and then a monthly license charge.  This
 practice, of unbundling software and leasing it to the customer for a
 monthly fee, was introduced by IBM about 1970, and represented a
 radical shift in computer finance.  Multics took to it reluctantly.
 It led to complications, since we had to avoid dependencies from
 standard software on unbundled products: e.g. we couldn't use MRDS to
 store accounting data and produce reports.  Unbundled software was
 stored in >system_library_unbundled, also called >unb.  [BSG adds:]
 Since division of function by sharing of programs in a single large
 address space is one of the basic features of Multics, unbundling
 threatened this fundamental design goal.  For example, the editor
 could not rely on the "good" mail system, because it might not be
 there.  Major improvements to functionality were relegated to options
 available for a price, and old, inadequate, embarrassingly obsolete
 tools could not be phased out.  The inevitable transition from the
 age of software supplied with hardware to that of the competitive
 software vendor is at the heart of it, though.  Emacs was one of the
 first unbundled products.
unclaimed signal
 If a signal is raised, and the runtime cannot find a condition
 handler for it, it searches for a handler for "unclaimed_signal."
 Universal Network Control Program.  This I/O subsystem ran on a
 DN355.  Honeywell communications software.  Multics worked with it.
unique name
 See shriek name.
 UNIX is a trademark of AT&T Bell Laboratories, or somebody.
 (or UDD, user_dir_dir) Alternate names of the directory
 >user_dir_dir, whose subdirectories are project directories, whose
 subdirectories in turn are users' home directories.  Compare PDD.
User Control
 Subsystem that handled login, user registration, projects, and so on.
 US Geological Survey.  Multics customer.  Had 3 systems, in Menlo
 Park, Reston, and Denver.
 University of Southwestern Louisiana.  Multics customer.  Swamp on
 campus with real alligators.  Used Delta Data 4000's as terminals.
 The Multics DIM that allowed users to access segments with read/write
Video System
 Supported a character based window system and a real-time input
 editor much like the UNIX ksh command line editor.  Followed on the
 heels of Multics Emacs.
 Honeywell video terminal.  Synchronous device, required a controller.
 Lacking insert or delete lines or characters, it was not well suited
 for screen-managed video at less than 9600 baud.  Prior to Emacs,
 video terminals were in general less desirable than good printing
 terminals for any number of reasons.[BSG]
 Honeywell video terminal.  Worked asynchronously or synchronously.
 Complete with insert and delete lines and characters and
 nicely-chiseled high-resolution characters, this was an excellent
 Emacs terminal popular in the Multics development community, although
 its high cost kept it from being used almost anywhere outside
 Honeywell.  Developed by Honeywell in Billerica, MA.  [BSG]
virtual cpu
 The system kept track of "virtual" CPU usage for each user, that is,
 CPU usage not counting overhead.  Interrupt service time was
 subtracted from a process's "real" CPU usage so that a user program
 would incur repeatable CPU charges for running the same program,
 regardless of load.
virtual memory
 As in "The Multics Virtual Memory", a paper by Clingen, Bensoussan,
 and Daley.  A Multics process accesses all the data (it is allowed
 to) on the system as part of a huge, two-dimensional address space
 (see segmentation).  There is no "file I/O", no buffers, no read-in,
 no write-out.  All the data on the system is "virtual memory", paging
 being handled completely transparently.  [BSG]
 Microcomputer spreadsheet developed by Multicians Frankston and
VLSI Design software
 Virtual Machine Monitor.  A virtual machine implementation done by
 Russ McGee of GE Phoenix and a bunch of AEPs.  Users could run
 virtual 645s and 635s, and run GECOS and Multics under control of the
 VMM "Hypervisor."  Comparable to IBM's CP-67.  Never a product.
volume backup
 The volume dumper dumped by physical volumes, like BOS save, but ran
 while the system was up.  Not possible until after NSS.  Programmed
 by Dave Vinograd.
volume pool
 RCP concept.  A volume pool could allocate volumes,
 e.g. "system-scratch-tape."
 Stratus operating system, influenced by Multics, developed by
 Virginia Polytechnic Institute, Blacksburg, VA.  Multics customer.
 Volume Table of Contents.  OS/360 volumes had these, and NSS adopted
 the term for its similar database.  By defining the segment catalogue
 of a disk pack as a fixed-record, fixed-form database, a substantial
 advance in reliability was achieved.
 VTOC entry.  Very like an inode in the UNIX file system.  Contains
 the activation attributes of a segment (date/time modified, page
 fault count, etc.) and its file map.
 Multics site: Volkswagen of America (Troy MI)
 Today called "page-locked".  Said of code or data that is fixed in
 physical memory, either by virtue of being in unpaged segments
 (individual segments can either be paged or contiguous in memory), or
 in segments whose pages are marked as being non-removable.  This is
 done for code and data that must be either be run or referenced at an
 equal or lower conceptual level than the I/O and page management
 routines doing the paging, data actually being transferred to and
 from I/O controllers, or code which must compete with such code for
 resources and its data.  In practice, this means page control, the
 scheduler, the disk routines, low-level I/O control routines,
 interrupt handlers and vectors, page tables, and that subset of the
 PL/I runtime (see pl1_operators_) that is used by any of those
 aforementioned that are written in PL/I.  Except as an experiment,
 code or data was never wired for performance reasons.  [BSG]
 Marketing package for compose plus Emacs.
working directory
 The directory used as the implicit prefix of relative path names.
 See search rules.
working set
 The set of pages, at any time, required in core for a program to make
 reasonable progress.  Defined by Peter Denning.
write bracket
 The range of rings which can write a given segment. If the segment's
 ring brackets are 1, 5, 5, the write bracket is rings 0 to 1. Also
 sometimes used to refer to that upper inclusive limit itself. [BSG].
xforum, xmail
 These were "Executive" versions of the forum and mail commands.  That
 is, they were menu-driven interfaces, slow and simple.  [BWS]
 Unbundled products.
XR Index Register.  The 645 and 6180 each had eight of them.
 Containing only 18 bits, they cannot contain pointers when used in a
 Multics environment.[BSG] See ABR.
 Jerry Grochow's tool for debugging 645 Multics.  Consisted of a PDP7
 on the fifth floor of Tech Square, linked to a special GIOC channel.
 The channel was in a send/receive loop, and the PDP7 sent address
 ranges to the GIOC, received the contents, and displayed them on its
 Honeywell product name for the SCOMP.
 Air Force/MITRE tiger team project that cracked Multics security.
 "Zarf" is Turkish for a coffee cup, applied by the Air Force to those
 white disposable cups that fit into a brown holder with a handle,
 which they called a finjan, also the appropriate Turkish term.
Zero Six Dog
 Field Engineers' jargon for "PRG06D", the 6080/6180 T & D program
 which was initially the only program that knew how to load firmware
 into the "MPC"s (tape/disk/unit record microprogrammed controllers).
 Bringing up and interacting with the T & D environment was extremely
 difficult (as well as requiring the system to be down), and
 initially, no Multicians could do it.  This situation helped impel
 Noel Morris to develop on-line firmware loading for MPC's (a product
 requirement), but that was still of no value for the disk and tape
 controllers on which the system had to be brought up.  That impelled
 Bernie Greenberg (1974) to learn to run "the old dog", decode the T &
 D programs and invent self-loading Multics firmware tapes, which he
 and Noel then in concert developed into self-booting,
 self-firmware-loading BOS tapes.[BSG]