Multics Glossary -L- (original) (raw)
Glossary of Multics acronyms and terms. Entries by Tom Van Vleck ([THVV]) unless noted.
Index| A| B| C| D| E| F| G| H| I| J| K| L| M| N| O| P| Q| R| S| T| U| V| W| X| Y| Z|
LALR
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.
LAPB
Flavor of X.25. Multics MCS supports it.
LCPD
Honeywell Large Computer Products Division. Later name for LISD.
LCS
MIT Laboratory for Computer Science. Later name for Project MAC.
A 1975 LCS Brochure has been put online by MIT Prof. Peter Szolovits.
LDBR
[BSG] 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.
LDS
[WOS] Library Data Segment, another archive-like mechanism.
Level 6
Honeywell minicomputer, built by Honeywell at BCO in Billerica, MA, beginning in 1975. It had a single-board 16-bit processor and ran an operating system called GCOS 6. BCO used a Multics machine to write software for the Level 6, using a Multics tool called the Level 6 Software Factory.
[Daniel Bois] The Bull History Site has a good writeup on Level 6.
Level 61
Honeywell minicomputer, designed and built by Bull.
Level 62
Honeywell minicomputer, designed and built by HIS Italia.
Level 64
Honeywell mid-range computer, designed in France by Bull. The system code and microcode for the Level 64 was done by Bull on the Level 64 Software Factory under Multics on a GE-645 at Avenue Gambetta in Paris.
Level 66
Honeywell's designation for the large-scale computers that ran GCOS, a repackaging of the "6000 line," later called the DPS-8/66. built by Honeywell at LISD in Phoenix.
Level 68
Honeywell's designation for the large-scale computers that ran Multics. built by Honeywell at LISD in Phoenix.
Librafile
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. See page multilevel.
"Firehose" was a reference to its high rate of data delivery, 1MB/s. Capacity was 16MB. It was originally called a General Precision Librafile; later on the drum was supported by Singer. These drums were rumored to be used on Polaris guided missile submarines. Story: "Low Bottle Pressure"
[JHS] It was water-cooled, so it was necessary to have the name of a plumber on the emergency call list.
Library tools
Set of programs used by system maintenance staff at various sites to install, upgrade, and maintain libraries of source and executable objects.
LILA
Query language accepted by LINUS.
link
[BSG] (1) (As opposed to branch). A directory entry that describes not a file or a directory, but a text string that 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.
(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](mgt.html#terminate "glossary: Said of a segment. To "make unknown", to remove..."), at which point the link can be "unsnapped" to its original condition.
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 template from the object file is copied into the process's combined linkage segment for the current ring.
Article: Multics Execution Environment.
linker
[BSG] Supervisor facility that implements dynamic linking. Initially, the linker was not part of the supervisor; nothing that it does is privileged in the sense that it can affect any system or process data of any domain more privileged than the ring making the reference. The linker was moved into the supervisor early on (before 1970) for performance reasons, and MIT later undertook a research project to move it back out again, whose results were not used. See search rules. Source code: link_snap.pl1.
LINUS
Logical Inquiry and Update System. Query front end for MRDS. [Unbundled](mgu.html#unbundled "glossary: Costs extra. Some Multics software was not "bundled" with...") product.
LISD
Large Information Systems Division. The GE /Honeywell /Bull division that built large mainframes. Other parts of the Honeywell computer business were BCO, which did the Level 6 minicomputers, and Bull, which did the Level 61 and 64, and GE/Honeywell/Bull, which did Level 62 and Unix systems. Later called LCPD, Large Computer Products Division.
LISP
List processing language invented at MIT in the 50s and developed in the 60s. See MacLisp.
listener
[BSG] 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 can 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.
Attempts to create a new listener level in an absentee process cause the process to terminate.
load control
Multics has elaborate features to handle more user demand than it is able to serve. 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. Load control checks actual CPU load on the system periodically and adjusts maxunits up or down depending on scheduler queue length. A user who gets logged in is protected from preemption for some specified time period, and then becomes eligible for bumping. Load Control assigns different weights to different process overseers so that, for example, a LSS user counts as using half the system resources of a regular user.
lock
[BSG] 36-bit word used as a semaphore to protect data base integrity by serializing access, almost all of which are in the Multics supervisor because the user-ring [block/wakeup](mgb.html#block "glossary: "Block and wakeup" is one of two interprocess synchronization...") facility is ill-suited to this use (the supervisor [wait/notify](mgn.html#notify "glossary: "Wait/notify" is one of two interprocess synchronization mechanisms used...") protocol is used.) Multics locks are "locked" with the STAC instruction and "unlocked" with the STACQ instruction; zero means "clear", the 36-bit process-ID of the process "holding" the lock means "locked".
Locks in the Multics supervisor form a strict hierarchy: the deadlock prevention rule is that it is impermissible to require a process to wait for the unlocking of a "lower" lock if it has any "higher" locks locked. Each directory is protected by its own lock, which is "higher" than the locks on any contained directory, which is required, because [segment faults](mgs.html#segfault "glossary: Jargon for "(missing) segment fault". What the hardware takes...") on a segment, which must be transparent, potentially require locking its containing directory in order locate its VTOC Entry.
Some system data bases (e.g., the AST) have associated locks, which are usually "higher" than any directory lock. In NSS, directories (via their locks) were made multiple-reader-single-writer, and the locks moved out from being in the actual directory segment into a supervisor data base containing only locks of locked directories (the work of André Bensoussan, who also designed the Multics locking strategy), a strategy for reducing writing of directory pages for both performance and reliability reasons.
Supervisor locks can further be divided into wired and not-wired, referring not so much to their storage but the environment of the program locking them. When a process "holds" (e.g., has successfully locked) a "wired lock" (e.g., the PTL), it must assure that it may not take [page faults](mgp.html#pagefault "glossary: Still called that, or "missing page exception." When an..."), [segment faults](mgs.html#segfault "glossary: Jargon for "(missing) segment fault". What the hardware takes..."), or interrupts or otherwise lose the processor. A crawlout or unclaimed signal while holding a supervisor lock usually crashes the system; a crawlout with a directory locked (for writing, in NSS) causes the salvager to be invoked. See [Cow's Stomach.](mgc.html#cowstomach "glossary: The "Coreadd queue" of Release 6.1 and afterward. This...")
Logica
British consulting firm, produced Rapport RDBMS, ported to Multics at STC in the early 80s and later used at several sites.
logical volume (LV)
[BSG] NSS term meaning "a group of disk packs treated as one as a pool for segment allocation". See [physical volume](mgp.html#physicalvolume "glossary: NSS term meaning "a disk pack". The contrast is...").
login
Command interpreted by the answering service to create a process for a user. login was the command name used on CTSS and carried over. TSS/360 used logon instead. Info segment for login command
LOT
Linkage Offset Table. The per-ring table at the head of the combined linkage segment that locates each [known](mgk.html#known "glossary: A segment is "known" in a process if that...") segment's linkage information. Indexed by segment number, each word is a packed pointer to that segment's linkage section.
LP
Cambridge Project software done by R K Scott?
LRK
Compiler-compiler system, used for parser generation. Done by Dave Ward at BCO.
LS TAC
Large Systems Technical Assistance Center
LSS
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.
LUT
Multics site: Loughborough University of Technology 1983-1991. (Loughborough, England)
LVT
Logical Volume Table. NSS table listing mounted volumes.