Multics 843 entries
13 Apr 2024

Glossary - A

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|
103A
Classic low-speed Bell asynchronous modem. Supported 110, 133, 150, and 300 baud. Used for most Multics terminal connections, to devices like TTYs, 2741s, and TN300s. The standard 103A was a plastic box weighing several pounds, smaller than a breadbox. It was used with a telephone handset with lighted buttons, like a multi-line phone.

Article: Multics Communications and Networking.

1050
First IBM terminal that used the Selectric mechanism. Used on CTSS and Multics. Built into a desk with a desk-side box for the electronics. It had a row of switches above the keyboard for doing things like controlling the paper tape reader. Used a device dependent 6-bit character set related to BCD, but with shift codes to access the larger character set. This was the first terminal used for serious word processing, because it provided high quality upper and lower case output. Transmission speed was 134.5 baud.

1ISG
US Air Force unit that operated the Pentagon AFDSC Multices.

202C6
High-speed Bell asynchronous modem. Used for Multics terminal connections to devices like the ARDS and TN1200. Supported 1200 baud from computer to terminal, and a reverse channel of about 5 baud.

2741
IBM terminal with Selectric mechanism, came after the 1050. Smaller desk, no card reader option, no control switches. Weighed about 200 pounds and cost as much as a new Buick. Used a device dependent 6-bit character set related to BCD, but with shift codes to access the larger character set. Transmission speed was 134.5 baud. Widely used on CTSS and Multics; we used the 963 typeball, which was closest to ASCII. 2741s with the 938 "correspondence" ball were supported too; when you dialed up, dialup_ printed a special message in both dialects: one would be gibberish and the other legible, and if you typed login it chose one translation and if you typed kigub it switched to the other translation and assumed you had typed login. The effect was that you typed "login" and the system detected your character code and logged you in. There were also two special pre-login commands, 963 and 938 that would set up the TTYDIM to understand your typing. The code was simpler because the numbers were the same in both encodings. Most MIT 2741s used tractor-fed paper slightly narrower than printer paper.

In order to work correctly on Multics, 2741s had to have two special features installed: 4608 Transmit Interrupt Control and 5501 Print Inhibit. IBM 2741 Manual.

IBM sold the Selectric "golf ball" mechanism to other manufacturers, who made terminals that sold for about half the price of a real 2741. Some of these were much less reliable than real 2741s; as the industry matured, other brands became acceptable. In the long run 2741s and their clones had too many moving parts and tolerances to compete with simpler mechanisms, such as "daisy wheel" printers, wire matrix heads, and then "glass teletypes" and other video terminals.

6090
[RHG] Model number on the first 6180 as it was delivered to MIT. A new nameplate, along with extensive installation directions, arrived a week or two (maybe longer?) later.

6180
Second-generation Multics machine, with major architectural improvements over the 645. The 6180 CPU was about twice as fast as the 645, about 1 MIPS. The first one was delivered to MIT in January 1972. Also, the generic term for the architecture of all subsequent Multics machines produced by Honeywell.

[BSG] The 6180 processor was among the last of the great non-microcoded engines. Entirely asynchronous, its hundred-odd boards would send out requests, earmark the results for somebody else, swipe somebody else's signals or data, and backstab each other in all sorts of amusing ways which occasionally failed (the "op not complete" timer would go off and cause a fault). Unlike the PDP-10, there was no hint of an organized synchronization strategy: various "it's ready now", "ok, go", "take a cycle" pulses merely surged through the vast backpanel ANDed with appropriate state and goosed the next guy down. Not without its charms, this seemingly ad-hoc technology facilitated a substantial degree of overlap (see Operations Unit) as well as the "appending" (in the dictionary sense) of the Multics address mechanism to the extant 6000 architecture in an ingenious, modular, and surprising way (see Appending Unit). Modification and debugging of the processor, though, were no fun. See Control Unit, port logic.

635
General Electric's competitor to the IBM 7094 in the 1965 time frame. Like the 7094, the GE-635 had a 36-bit word, 18-bit addresses, and programmable data channels with direct memory access.

MIT's GE-635 system was installed on the ninth floor of 545 Tech Square in 1965, and used to support a simulated 645 until the real hardware was delivered.

6.36
Simulation environment for the 645 machine (at first called the 636) on the GE-635 under GECOS. (The idea was that it was "100 times slower" than the real thing.) This environment was used for initial debugging and bringup of Multics in the 1966 time frame.

645
Computer system that Multics first ran on, produced by General Electric. Derived from the GE-635, a 36-bit word machine with accumulator, quotient register, and 8 index registers like the 7094. Basic execution speed was about 435 KIPS. See "System Design of a Computer for Time-Sharing Applications".

645F
[RHG] (645 Follow-on) the name for the 6180 while it was being designed.

7094
IBM's most powerful scientific computer in 1963, the platform for the MIT-developed CTSS system, predecessor of Multics. The standard machine had 32768 36-bit words of memory, accumulator, multiplier-quotient register, and 7 index registers. Separate data channels with direct access to memory supported considerable I/O bandwidth.

Story: "The IBM 7094 and CTSS".

7punch
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.

abbrev
Per-user command line abbreviation facility. Steve Webber wrote this command, which becomes the user process'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 descendant of . SAVED, ("dot saved") on CTSS, written by Noel Morris and Tom Van Vleck. Info segment for abbrev command

ABR
Address Base Register. The "segmentation" registers in the 645 CPU. See pointer register.

absentee
The Multics absentee facility is like traditional batch processing, or the Unix batch and at facilities. A user creates an input file in exec_com language, suffixed by .absin, and submits it using the enter_abs_request command, and the answering service will pick it off the queue and run it later. Info segment for enter_abs_request command

ABSI
[JHS, RHG] Asynchronous Bit Serial Interface (ABSI). The hardware interface to the ARPANet IMP. Designed and built for the MIT 6180 by Rick Gumpertz as an IOM card, for his 1973 MIT undergraduate thesis, replacing the 645's GIMPSPIF.

[THVV] After Rick built the initial hardware for the MIT machine, several other Multics machines wanted one. These were built on contract by a technician at the MIT Research Laboratory for Electronics from Rick's drawings.

[RHG] Doug Wells chose the name "Fred" for the ABSI: we had all sorts of names (my favorite was Multics ArpaNet INterfAce Controller, MANIAC) and Jerry Saltzer finally chose ABSI. During the debates, Doug (who wrote the controlling software for the ABSI) commented, "I don't care what anyone else calls it; I'm just going to call it 'Fred'". I later found out that at about that time his sister was planning to wed a guy named Fred.

[RFC 597] The MIT 6180 connection to ARPANet via the ABSI became operational on 12/17/73.

[THVV] Article: Multics Communications and Networking.

absolute
(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 SDWs, in the DBR, and in PTWs, and during initial system startup.

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

abs_seg
An SDW used by supervisor routines to access absolute memory regions. Such routines patch the SDW temporarily with an address to get access to a piece of raw core. An abs_seg is not a segment at all; it's a segment number used for addressing an arbitrary main memory, disk, or paging device extent.

abs-usable
[AN61] Main memory frame, part of the paging pool, in a system controller that cannot be deconfigured. Only abs-usable page frames can contain abs-wired pages.

abs-wired
[AN61] (1) Of a page. A page in main memory, which not only is wired, but may not be moved around main memory. Pages wired but not abs-wired may be moved around by abs-wiring pages or deconfiguring memory. Used principally for I/O buffers.

(2) Of a segment. A segment having some or all of its pages abs-wired.

accept
[AN61] Of a physical volume. To make those supervisor calls, which, by placing label information in the PVTE for a given drive, establish the binding, or association, between that drive and that volume.

access class
[AG91] An access isolation mechanism attribute that denotes the sensitivity of information contained in a segment, directory, multisegment file, or message in a message segment.

access control
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.

[BSG] User access to segments is enforced by the hardware in bits in the SDW (see REWPUG). Segment control, which keeps track of all of the processes having SDWs for a segment (via a database called the system trailer segment, str_seg) is equipped to revoke access to a segment instantly when the ACL of a segment is changed. The connect mechanism assures that in spite of the associative memories in which access can be cached, access can be revoked in mid-instruction (see EIS) if need be.

accounting
Multics comes with an elaborate accounting system, that summarizes usage and produces multiple printed billing reports, written by Tom Van Vleck.

AccuRay
Later name for Industrial Nucleonics.

ACL
Access Control List. A list of person names and project names in combination specifying individual and group access rights to a segment. First introduced in Multics.

The ACL on a file might look like
rewVanVleck.SysAdmin.*
rBackup.SysDaemon.*
rw*.SysAdmin.*
This ACL has three entries. Each entry specifies the access permission, or mode, for a set of users.

The modes for segments are
rread
eexecute
wwrite
nullno access


The modes for directories are
sstatus
mmodify
aappend
nullno access


Each ACL entry also specifies the Person, Project, and instance tag that selects a set of users, either as an explicit value or as "*" meaning any. Instance tag describes how the user identity was authenticated: "a" means an interactive login, "z" means a daemon, "m" means an absentee job.

The ACL is always sorted, most specific entries first, and the first entry that matches determines access. That is, there are not "deny" entries as well as "permit" entries, which makes searching the ACL for a match fast and simple compared to Posix or Windows NT.

Another Multics design choice is that each user has a single group identifier, and groups cannot contain other groups, so that the matching on group is easy: check for *, check for string match.

Each directory contains two initial ACLs, one for segments created in the directory, the other for directories created in the directory.

See also extended access and mandatory access control.

ACS
Access Control Segment. A segment whose effective access determines access to some other resource. ACSs for peripheral devices are kept in >sc1>rcp and are maintained and used by RCP. ACSs for logical volumes are kept in >lv.

ACTC
Software engineering solutions company in Calgary Alberta, Canada, formerly known as ACTC Inc. Spinout (1983) from the University of Calgary, partly owned by Bull. ACTC did contract maintenance for all Multics sites after Bull abandoned Multics.

Renamed in the 90s to Perigon Solutions Inc. and still later (1998) acquired by CGI Group.

activate
[AN61] To make a segment active. Done by getting an ASTE, reading the VTOCE of the segment, filling in the ASTE, and hashing it into the AST hash table. The parent directory of a segment must be locked in order to activate it.

Source code: activate.pl1.

activation attributes
[AN61] Those attributes of a segment that are read from the VTOCE every time a segment s activated, copied into the ASTE, changed while the segment is active, and updated back to the VTOCE. Examples: current length, maximum length, date-time modified.

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

[THVV] (2) See active device.

[AN61] (3) Of the paging device, or an instance thereof. In use, having pages being allocated, read and written from it. The bit fsdct.pd_active tells whether or not the paging device is active.

active device
In the 635/645/6180 architecture, active devices are CPUs, GIOCs or or IOMs, and bulk store or drum controllers. Memory controllers (SCUs), on the other hand, are passive devices. See connect.

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, the shell executes the command line

delete [files *.pl1]

by invoking the files active function and constructing a delete command line that deletes all PL/I files in the working directory. The term "active function" comes from Calvin Mooers' TRAC language, and was adopted to name a feature called "evaluated commands" in earlier versions of the shell spec.

Ada
Language specified by the US Department of Defense. The project was begun in 1975, and Cii-HB's design was chosen as the language base in 1979. Initial implementations were done using Multics as a tool.

[Col. William Whitaker] "In connection with the language design there was an interpreter produced by Honeywell. This ran on the MULTICS system and fielded at MIT and Rome Air Development Center (RADC) for use in the Test and Evaluation phase. It let a large number of users get hands-on experience over the ARPANET very early, but it was incomplete and very slow." ( Ada History)

additional names
Segments and directories can have any number of entry names in the Multics file system, provided that the names are unique within the containing directory. For example, >user_dir_dir has the additional names >udd and >UDD.

This feature is used to give Multics commands long names and short names: list has the short name ls, copy has cp, and move has mv, as well as page_multilevel_meters having pmlm. (The original convention for short names, "initial letter of each word in a command, augmented by succeeding consonants for a one-word command," is attributed to Don Widrig.)

Commands and subroutines are often bound together by the binder into a large library procedure segment. For example, pmlm is bound into bound_metering_commands_. The binder places additional names on the output segment for each of the components that should be visible to dynamic linking.

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

ADP
Advanced Development Program. Honeywell term for a new system architecture in the late 1970s. Never used for Multics.

AED
Algol Extended for Design. Language developed by MIT's Electronic Systems Laboratory in the mid 1960s, by a team led by Douglas T. Ross. This Algol-58 descendant was notable for having an early form of structures, and for support for information hiding. Compilers for the language were available on the 7094 and on various machines used for aerospace projects.

AEP
Advanced Engineering Program. A GE /Honeywell co-op program. Selected students rotated through jobs in LISD while getting a Master's degree. AEPs referred to themselves as "turkeys."

AFDSC
US Air Force Data Services Center. Located in the Pentagon, Washington DC, this site had 16 CPUs shared among 6 systems (M,D,H,T,U,Z). Two of these systems were multilevel secure. System T was used for unclassified processing, and system U was occasionally used for configuration testing. See the AFDSC site history.

AIM
Access Isolation Mechanism. The underpinnings for multilevel security. This facility is a part of every Multics system shipped. It enforces classification of information and authorization of users, augmenting the Multics ACL-based access control mechanism with a mandatory access control policy known as the Star Property. Each object in the system had a classification level and categories, and each user of the system had an authorization level and categories. Produced by Project Guardian, and crucial in the eventual B2 rating for Multics. Article: B2 Security Evaluation.

[WOS] Used by AFDSC for Secret/TS multilevel, DND, DOCKMASTER to separate proprietary information, Oakland U to keep students from source code, CNO to enforce source code management, and maybe RAE.

AI Tools
[Daniel Bois] Bull had a very good team, called CEDIAG, of more than 30 people in "Artificial Intelligence," led by Jean Rohmer. ("Intelligence Artificielle" in French.) He was very creative and used Multics a lot for creating new products before Unix was there. The team created the KOOL language.

The AI Tools group worked with Bull marketing on the sales to INRA and IRT.

ALGOL 68
Done by HIS UK in the 1980s.

ALGOL 68RS, from Royal Signals & Radar Establishment, Malvern UK, an extension of ALGOL 68 supporting closures, was ported to Multics.

A group at Bath worked on Algol 68 for Multics. Not sure if this is the same one or a different one.

ALM
[BSG] 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 create_data_segment?]

[PG] ALM was Multics' second-generation assembler, the follow-on to EPLBSA. Nate Adleman was the project leader. Rick Gumpertz and I were undergraduate students (freshmen!), working on Multics for credit during the 1969 and 1970 term. We started with a deck of cards images, as I recall, of the EPLBSA assembler, written in GE FORTRAN. It had been written in a big hurry by the guys at Bell Labs who did the EPL compiler. It was a huge program, with many lines of code and many subroutines. Everything had 6-character names, of course. I did most of the mechanical translation from FORTRAN to PL/I using exec_com and edm macros I wrote. I actually rewrote one function (ascevl) into good PL/I, using flow-charts and all to understand it first, but Nate said it would take too long to do the whole assembler that way. Nate supervised the Project and kept us going. Jerry Saltzer and Corby met with us occasionally.

You can blame "label_1010:" and the like on me. I had macros to convert most FORTRAN statements to PL/I statements using the line editor. I had to go back and fix the if statements by hand. Of course, we had to completely redo the declarations. In the end, most of what I did was mechanical; I never did understand the semantics of the assembler very well. Rick Gumpertz did most of the real debugging as a result.

Nate had chosen the name "MAL" (Multics Assembly Language). Corby didn't like that, and suggested "ALM" (Assembly Language for Multics).

Amber
[Jay Pattin] Amber was an operating system produced by the S-1 project at Livermore between 1979 and 1986. The original Amber group was familiar with Multics as users -- the original development work was done on MIT-Multics.

The most important Multics influences were writing the operating system in a high-level language, the single-level storage system, and an emphasis on security, although rings were not present on the last generation of S-1 machine. Amber was heavily influenced by critiques of Multics such as the Multics Kernel Redesign Project.

The developers hoped to make it "Multics done better," as reported in a DATAMATION article. Jeff Broughton co-wrote the compiler for the Pastel language used for Amber.

AML
Author Maintained Library, stored in >aml. Programs provided to the community (source and object) but not supported officially by Multics development. Sometimes these programs were obsolete but still useful; other times they were good ideas but not completely conformant with system standards and metaphors.

AN61
Multics Storage System Program Logic Manual, Honeywell Order No. AN61. 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 passwords.

answering service
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. Info segment for login command

[BSG] 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 and Benson Margulies continued its improvement.

AOS
[BSG] Add one to storage, opcode on 600 and 6000 CPUs, 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, and so could be used for some kinds of synchronization.

APL
Interpreted language, defined by Ken Iverson of IBM, that used many special operators. Used the Selectric 988 typeball. Unbundled product.

[PG] Maxim G. Smith designed and wrote the first APL Interpreter for Multics (later known as Version 1 APL). He worked for GE /Honeywell at the time. It followed the original APL\360 pretty closely. Max had a unique PL/I coding style that made for interesting reading. This interpreter was horribly slow; it did far too much data copying, and had an inefficient parsing algorithm.

Daniel Bricklin, David A. Moon, Richard S. Lamson, G. Gordon Benedict, and Paul Green designed and wrote the Version 2 APL interpreter as a summer project in 1973. We were all MIT undergraduates at the time, and all very familiar with Multics. The project was funded by Honeywell FSO (Earl Boebert) on behalf of Rome Air Force Development Center (RADC). As I recall, Dan and Dave were the overall architects. Dan designed and wrote an elegant, reduction-based, parser. David, Gordon and Richard wrote the operators and functions. I wrote the APL IOSIM that translated our internal codes to and from device codes. (I figured out a way to run APL on a TermiNet 300, using ordinary ASCII characters; we needed this because we only had one true APL terminal; a Tektronix 4013 storage tube terminal).

William M. York, Benson I. Margulies, and I maintained the interpreter over the years. Bill York added a file system interface and rewrote the editor; I added the execute and format functions. Bernard S. Greenberg added the ability to load TSO APL workspaces.

Version 2 APL was much faster, much more complete, and much more maintainable than the original. We modeled its features after the IBM APL SV and the I. P. Sharp APL. David Kennerly wrote the APL manual (AK95, available online at bitsavers.org.).

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

Appending Unit
[BSG] Or APU. That part of a 6180 CPU responsible for paging and segmentation and the management of CPU registers (e.g., the DBR) related to them. (The corresponding entity on the 645 was called the "Base Frame".) The APU is not present in a GCOS CPU, and it is what makes Multics Multics, as it were. Strategically interposed between the Control Unit and the CPU port logic (which latter includes the cache), the APU can intercept, divert, and issue memory requests as well as memory data and "data ready" acknowledgments and thus present the illusion of a "virtual memory" to the other processor units.

Typically, the CU issues a request for a "memory location" by 18-bit address, with a "return address" of itself some or other processor unit who wants that data: the APU intercepts (i.e., hijacks) that request, interprets it as being in some "segment", perhaps issues possible requests for an SDW and PTWs, receives and interprets memory data for the latter, composes a 24-bit "final address", and sends that instead to the port logic with the internal "return address" originally supplied by the CU. APU address computation activity is thus per CU cycle, with potentially many APU (memory access) cycles per expectant CU cycle.

The APU contains the associative memories, and the ring and segment portions of pointer registers, carefully snooping on control unit activity and "correspondence" to keep these registers in sync. See also ITS.

APT
Active Process Table. The scheduler/dispatcher hardcore data structure.

APU
See Appending Unit.

archive
Command that 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. The Multics archive command is descended from the CTSS command ARCHIVE, originally written by Barry Wolman. The main benefit of archiving files is savingspace due to unused space at the end of small files.Multics also had a tape_archive (ta) command, which maintained an archive of files on tape,perhaps the source of the name and function for the Unix tar command.

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

[WOS] Hardly a "bogus mini filesystem", they are a reflection of the inability of the operating system (NOT the commands) to deal with hierarchies as both collections of distinct components and collective wholes. The inability of most Multics programs to cope with archives and MSFs was a problem of many years' standing--the tardy introduction of archive_ and expand_pathname_$component came too late to help much..

ARCS
Academic & Research Computing Services, the application programming organization at MIT's IPC

ARDS
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 5 baud reverse channel. Some models had a joystick.

area
PL/I data type that acts like a free storage pool. A datum of type AREA can have other variables allocated and freed within it. If a program allocates data without specifying a target area, the "system area" segment for the current ring is used.

ARPA
Advanced Research Projects Agency of the US Department of Defense. This agency contributed substantial funding to MIT Project MAC for the development of Multics. Harvard psychologist J.C.R. Licklider headed ARPA's Information Processing Techniques Office and suggested the formation of Project MAC in November 1962.

[Kenneth Flamm] ARPA was started in 1958 to oversee the military space program; its name was changed to DARPA in 1972. IPTO was established in 1961 to build a number of "centers of excellence" for basic research in computer science that would improve military command, control, communications, and intelligence systems. ARPA funded a large number of time-sharing projects in the late 60s, including Project Genie at Berkeley and TENEX at BBN.

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

[RFC 252] The MIT 645 was connected to the ARPANet (host #6) in October 1971 using a board called the GIMPSPIF.

[RFC 597] The MIT 6180 was connected to the ARPANet on 12/17/73 (host #44) using a board called the ABSI.

[THVV] Article: Multics Communications and Networking.

ASCII
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.

ASEA
Multics customer. First and only Multics in Sweden. Västerås, Sweden, near Stockholm. See the ASEA site history.

[Charlie Spitzer] ASEA bought a Multics because they had contracts with various governments to track paperwork that went into building a nuclear power plant. These documents were produced on a minicomputer and then uploaded to Multics. Some of the documents were actually robot programs to do automated testing of parts being built.

[THVV] Also has a subsidiary, ASEA Brown Boveri, in Columbus, Ohio, formerly called AccuRay and before that Industrial Nucleonics, which used Multics as a software factory for Level 6 machines.

An apparently unrelated company called Accuray was incorporated in California in 1990. It sells surgical robots and cancer treatment.

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. Also called a TLB or Translation Lookaside Buffer. Described in US Patent 3,412,382 by John F. Couleur and Edward L. Glaser.

AST
Active Segment Table. Hardcore table of ASTEs, one per active segment. Upper part of the SST.

AST hash table
[AN61] Table, kept in active_sup_linkage, holding the heads of hash threads, so that the UID of any segment may be used to find its ASTE, if it is active, or the fact that it is not active.

AST pool
[AN61] There are four sizes of AST entries, those containing page tables of 4, 16, 64, and 256 PTWs. Those of each size form four pools, that are managed separately.

AST trickle
[BSG] Supervisor mechanism that periodically and slowly traverses the lists of AST entries (see page table) to update their VTOCEs (or branches, before NSS) as a hedge against crashes.

ASTE
Active Segment Table Entry. Contains a page table and some segment attributes.

ASU
Multics site. Arizona State University (Tempe AZ, USA). Had a Multics for a while in the 80s, from 1981 to September 1985. Replaced by a GCOS system.

attach
[AG91] The act of associating an I/O switch with another I/O switch, file, or device. For example, the normal output I/O switch, user_output, is usually attached to the terminal, but may be attached to a file via the file_output command.

audit
(1) The process of peer code review practiced at CISL. See Code Auditing.

(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.

(3) the hardcore code that records security-relevant actions. See MTB-692 A New Ring-0 Auditing Mechanism (1984-11-07)

Avon
Multics site. Avon Universities CC (Bristol, England). Consortium of the Universities of Bristol and Bath. Operated AUCC, also known as SWURCC. See the Avon site history.

[RR] See also the Honeywell User News article about the sale.