Multics 843 entries
20 Apr 2024

Glossary - I

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|
[BSG] Initial ACL. The successor to the CACL scheme, The initial ACL is a "default ACL" used as the ACL for new segments in a directory (there is a separate "Directory IACL" for new subdirectories). From that point on, changes to the IACL have no effect on already extant segments -- access is determined by a segment's ACL alone.

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
[BSG] 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 flash the lights like a railroad crossing; Paul Green changed it to rotate the lights like a string of pearls, rolling one bit at each dispatch into it. The heart of the idle process's code is a DIS (Delay until Interrupt Signal) instruction.

Integrated Firmware and Diagnostics. This tape was distributed with Multics. It contained firmware for multiprogrammed controllers (MPCs) and hardware diagnostics. T&D modules on the IFAD tape were loaded into >ldd>firmware with deckfile_manager and placed on the MST so that online T&D could use them.

Interpret FDUMP. 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).

[BSG] For a while, official Honeywell Multics documentation policy tried to make the use of the term illegal illegal -- if an opcode or command was "not recognized as valid" in a certain circumstance or ever but still lawful in Massachusetts and Arizona, it was invalid, but not illegal.

Inter Multics File Transfer.

Installation Maintained Library, stored in >iml.

Interface Message Processor. This machine, a Honeywell 516 running code provided by BBN, connected Multics to the ARPANet.

Information Multiplexer Unit. A later, programmable version of the IOM. Supported in MR12.0.

Industrial Nucleonics. Multics customer 1977-1991, located in Columbus, OH. Produced industrial process controllers and measurement instrumentation such as thickness gauges. Used Multics as a software factory for Level 6 minicomputers. Controlled 35 Columbus, Ohio paper mills. Later called AccuRay Corporation, later bought by ASEA Brown Boveri.

[RR] Story: about the Industrial Nucleonics sale. Article: Software Factory Backs Up Pulp and Paper Mill, IEEE Computer, 1978.

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 in the early 70s, which printed out information from a tree-structured document.

[BSG] Bit 28 (big-endian) of every 645 and 6180 instruction is labeled "inhibit", and prevents interrupts, connect faults, and timer runouts after this instruction (or pair on the 6180). On the 645, the inhibit bit was only obeyed in master (privileged) mode. On the 6180, user programs can indeed use it, although there is no facility in PL/I to turn it on or off, and multi-CPU systems somewhat reduce its efficacy. A timer in the 6180 CPU limits the length of inhibit to so-many contiguous microseconds; if the timer runs out, the CPU takes a lockup fault.

[BSG] Software mechanisms by which the Multics supervisor is loaded and started from the boot tape and the system brought up.

First process created when Multics is booted. 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.

[BSG] Map into an address space and optionally assign a reference name. 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 .

Multics site: "Institut National de Physique Nuclèaire et de Physique des Particules" (Paris, France). 1983-1988.

[Daniel Bois] It is a Center of fundamental research in Nuclear Particles. Nothing to do with the Atomic Bomb neither Electricity. They are brains doing advanced studies on Particles.

[THVV] Founded in 1971. Formerly called Institut National Nucléaire et Physique des Particules de Paris.

[Daniel Bois] Now they are based in Lyon, which bring the subject of what have they done with the last P of INNPPP ? I do not know ...

Multics site: Institut National de la Recherche Agronomique [INRA] (Jouy en Josas, France), near Paris. 1980-1985.

Multics site: Institut National de la Recherche en Informatique et en Automatique [INRIA] Three sites: Rocquencourt (79-85), Rennes (82-88), and Valbonne (Sophia-Antipolis), France (81-86). The Sophia site had one CPU and shared the machine room with CERAM.

[Daniel Bois] In Rocquencourt there has been one system from 1978 to about 1985 and then two Multics configuration, sometimes merged between INRIA and Bull. Complicate, isn't ?

The French Minestère of Finances had three Multics sites for the Institut National de la Statistique et des Etudes Economiques, in Paris (81-84), Aix (80-84), and Lille (80-84).

[Daniel Bois] For typical MRDS applications and Time-Sharing usage. Basically the three sites ran the same configuration and applications. INSEE is a huge administration and they have seven computer sites altogether. First IBM customer in France.

Natural language database query product from Artificial Intelligence Corporation (AIC) written in 1977. Generated MRDS queries. The lead guy was Dartmouth Prof. Larry Harris.

interactive message
Facility for sending one-line messages between users, including the commands accept_messages, defer_messages, delete_message, immediate_messages, [last_message], [last_message_time], [last_message_sender], send_message, send_message_acknowledge, send_message_silent and send_message_express. Info segment for send_message command

A logged-in user can enable this facility to cause messages to type out on the user's terminal as soon as they arrive. The initial version of this facility was written by Bob Frankston: it used shared memory segments writeable by everyone (with access coordinated by a simple lock) and an event call channel that woke the process up and caused the message to print.

When ring-1 message segments were introduced, the interactive message facility was rewritten to pass the messages securely in the user's mailbox.

A feature of the I/O daemon allows a user to request an interactive message from the printer daemon when output is printed, giving the physical printer selected and the print job sequence number.

[BSG] Technique of placing alternate word-pairs or word-quads of the system's physical memory (core) address space in alternate SCUs, to allow instructions accessing blocks of memory to overlap memory access. The CPUs and GIOCs/IOMs were capable of doing this, by means of a queue in their Port Logic.

[BSG] 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 processes. See SCAS.

Standard Multics output formatter, ancestor to C 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. There were multiple priority queues for daemon requests, and different charges for each queue.

IOI (ioi_)
[BSG] 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's proudest masterpieces.

Input/Output Multiplexer. The 6180 architecture's replacement for the 645 system's GIOC, except that IOMs didn't have terminal channels, so each system had a DN355 attached to the IOM to handle terminal I/O.

I/O module
[AG91] Program that processes input and output requests directed to a given switch. It may perform operations on other switches, or call the supervisor.

[BSG] 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 iox_.

I/O Switch Interface Module. See iox_.

I/O switch
[AG91] Path in the I/O system through which information is sent.

I/O Table Compiler. In 645 Multics, a tool for generating device descriptions for the IOCT.

[BSG] 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.

[THVV] Some SIPB members referred to iox_ as Honeywell Brain Damage.

(1) Information Processing Center. MIT organization that ran the campus computer center. Part of the IPS organization. See the MIT Site History for more information.

(2) Inter-Process Communication. The facility for interprocess queueing and transmission of wakeups and associated 72-bit data through a system queue.

(1) Independent Project Review. A General Electric and Honeywell management process, 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) process.

ARPA Information Processing Techniques Office. Funded Multics development at Project MAC in the 1960s.

Initial name of INRIA.

Multics site: Institut de Recherche des Transports, Arcueil, France, near Paris. 1980-1986.

[DGRB] The ISL (InterSystemLink) hardware and software, by means of which files could be transferred directly between GCOS and Multics, was developed at STC.

Isolated OnLine Test System. Online CPU diagnostics extracted from the FED diagnostic tape run by TOLTS. See AU77, Multics Online Test and Diagnostics Reference Manual.

[CAnthony] ISOLTS runs the GCOS code on a misconfigured 2nd CPU with a private 128KW memory block at location 0 in absolute mode; the test suite would run on any GCOS machine.

ISOLTS is built by reading the GCOS generated test suite tape into a library segment; when the test is running it intercepts the test suite attempts to read tests for the test tape and copies the test from the library segment into the private memory. The CGOS test code has no idea that Multics is out there.

[BushJA] I wrote the ISOLTS wrapper in the late 70s. ISOLTS is a wrapper for the GCOS based test suite. It is mainly a MME fault catcher which resolves the MME operands and performs the appropriate Multics system calls to satisfy them.

Internal Static Offset Table. A per-process table that defines the location of the internal static section for each procedure segment. See LOT.

The Multics shell supports iteration over command arguments. For example, you can say

delete (a b c d).fortran

and this is expanded by the shell into

delete a.fortran
delete b.fortran
delete c.fortran
delete d.fortran

See command language.

[BSG] (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.

(2) Incompatible Time Sharing (a pun on CTSS, the Compatible Time-Sharing System), a PDP-10 operating system built by the MIT Artificial Intelligence Laboratory in the '60s and 70s, which was an intellectual source of ideas relating to Emacs, video, and networking.