Multics (Multiplexed Information and Computing Service) is a timesharing operating system begun in 1965 and used until 2000. The system was started as a joint project by MIT's Project MAC, Bell Telephone Laboratories, and General Electric Company's Large Computer Products Division. Prof. Fernando J. Corbató of MIT led the project. Bell Labs withdrew from the development effort in 1969, and in 1970 GE sold its computer business to Honeywell, which offered Multics as a commercial product and sold a few dozen systems.
Multics was introduced in a series of papers at the 1965 Fall Joint Computer Conference:
Many books and papers describe aspects of the system. The influence of Multics on Unix is described in chapter 3 of A Quarter Century of UNIX, for example.
Multics ran on specialized expensive CPU hardware that provided a segmented, paged, ring-structured virtual memory. The system is a symmetric multiprocessor with shared physical and virtual memory. Standard Honeywell mainframe peripherals and memory were used. The operating system was programmed in PL/I.
Elliott Organick's book, The Multics System, an Examination of its Structure, describes the system as it was in about 1968. MIT started providing timesharing service on Multics to users in fall of 1969. GE sold the next system to the US Air Force, and the military use of Multics led to some of the system's security features. Honeywell sold more systems to government, and to auto makers, universities, and commercial data processing services.
In the 1980s, Multics became popular in France; Honeywell's partner Bull sold a total of 31 Multics sites. None are still in use.
Honeywell decided not to create a new hardware generation for Multics in the mid-80s and stopped developing the operating system. Subsequently, Honeywell sold its computer business to Bull, which also chose not to build new Multics hardware, and all sites replaced their Multics systems with more modern hardware.
The last running Multics site, the Canadian National Defence site at Halifax, NS, shut down at the end of October 2000.
As described in the 1965 paper Introduction and Overview of the Multics System by Corbató and Vyssotsky, there were nine major goals for Multics:
See the Multics Features FAQ for more information.
The Multics memory architecture divides memory into segments. Each segment has addresses from 0 to 256K words (1 MB). The file system is integrated with the memory access system so that programs access files by making memory references.
Multics uses paged memory in the manner pioneered by the Atlas system. Addresses generated by the CPU are translated by hardware from a virtual address to a real address. A hierarchical three-level scheme, using main storage, paging device, and disk, provides transparent access to the virtual memory.
Multics was written in the PL/I language, which was, in 1965, a new proposal by IBM. Only a small part of the operating system was implemented in assembly language. Writing an OS in a high-level language was a radical idea at the time.
The Multics hardware architecture supports multiple CPUs sharing the same physical memory. All processors are equivalent.
In addition to PL/I, Multics supports BCPL, BASIC, APL, FORTRAN, LISP, SNOBOL, C, COBOL, ALGOL 68 and Pascal. Routines in these languages can call each other.
Multics provided the first commercial relational database product, the Multics Relational Data Store (MRDS), in 1978.
Multics was designed to be secure from the beginning. In the 1980s, the system was awarded the B2 security rating by the US government NCSC, the first (and for years only) system to get a B2 rating.
As part of the computer utility orientation, Multics was designed to be able to run 7 days a week, 24 hours a day. CPUs, memory, I/O controllers, and disk drives can be added to and removed from the system configuration while the system is running.
The development team spent a lot of effort finding ways to build the system in a disciplined way. The Multics System Programmer's Manual (MSPM) was written before implementation started: it was 3000 or so pages and filled about 4 feet of shelf space in looseleaf binders. (Clingen and Corbató mention that we couldn't have built the system without the invention of the photocopier.) High level language, design and code review, structured programming, modularization and layering were all employed extensively to manage the complexity of the system, which was one of the largest software development efforts of its day.
Ken Thompson and Dennis Ritchie, the inventors of Unix, worked on Multics until Bell Labs dropped out of the Multics development effort in 1969. The Unix system's name is a pun on Multics attributed to Brian Kernighan. Some ideas in Multics were developed further in Unix.
Honeywell's GCOS 6 operating system for the Level 6 minicomputers was strongly influenced by Multics.
Prime's Primos operating system shows a strong Multics influence. Bill Poduska worked on Multics at MIT before founding Prime in 1972, and several other senior Multicians worked at Prime. Poduska referred to Primos as "Multics in a shoebox." The Prime-50 had a segmented address space with rings, gates, dynamic linking, paging, and even active functions on the command line.
Stratus's VOS operating system shows a strong Multics influence. Bob Freiburghouse, former Multics languages manager, was one of the founders of Stratus; many Multicians are still Stratus employees. (Stratus is now called Stratus Technologies.)
[Frederick Roeber] Bill Poduska went on from Prime to help found Apollo, and Domain was known as "Multics in a Matchbox." Apollo's OS shows strong Multics influence. For instance, the basic access to stuff on disk is via a single-level store directly based on Multics. Supposedly some of the motivation for the object-store style of file system came from Multics too. [Jerry Saltzer] In addition, it uses a shared memory model, despite being distributed across a network. If that isn't Multics influence, I don't know what is.
[Carl Hoffman] NTT undertook a massive effort to clone Multics, which led to their DIPS (Denden Information Processing System) series of mainframes. DIPS machines are still in widespread use in Japan today by NTT, but everyone agrees that they are going away. I believe that Intermetrics developed the DIPS PL/I compiler for NTT.
[Jean Bellec] DIPS was an operating system developed by NTT and running on IBM S/370 clone machines built by Hitachi, Fujitsu and NEC. Sure, it was inspired by Multics, but was not a clone, or you would call every multi-user machine built after 1970 a Multics clone.
Multics also influenced
Amber, the operating system produced by the S-1 project at Livermore between 1979 and 1986 or so. The original Amber group was familiar with Multics as users - the original development work was done on MIT-Multics - but I don't believe it included anyone who'd actually worked on the Multics kernel itself.
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. In its later years, Amber made serious strides toward machine independence.
[Jay Pattin] 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.
[Paul Karger] The Gemini GEMSOS secure operating system for the Intel architecture was developed by Roger Schell to support a Multics-style segmented environment in a system designed to meet A1 security requirements.
The GEMSOS kernel is available on an OEM basis from
AESEC Corporation, led by Roger Schell, as of 2005.
[Paul Karger]
Many other systems since Multics have also used rings including:
As for other systems influenced, TSS/360 was strongly influenced by Multics. And IBM's MVS eventually acquired dynamic reconfiguration to add processors and memory without shutting down.
[JHS] The IBM System/38 maps files into the one-level store just like Multics, and so does AIX, down underneath where it is hard to find because it is trying to pretend it is a Unix. Both of these systems are derivatives of IBM FS, which never saw the light of day, but which borrowed the file mapping/one-level-store idea from TSS/360, which in turn got it from Multics.
Multics influenced the paging design of TENEX and the DECSYSTEM-20, and several Multicians provided review and comment on the TENEX design. Dan Murphy has written a fine paper on the history of
TENEX and TOPS-20, available online. In this paper he says:
Multics may be said to have contributed more than just the ideas for virtual memory organization and other specific capabilities. During the design of TENEX, we invited some of the Multics designers and implementors to review our progress and decisions. As is often the case, we had fallen into the trap of trying to do too much in a number of areas and had produced some designs that were quite convoluted and complex. Several people from Multics beat us up on those occasions, saying "this is too complicated -- simplify it! Throw this out! Get rid of that!" We took much of that advice (and could probably have taken more), and I credit these reviews with making the core capabilities significantly easier to understand and program, as well as to implement and debug.
Murphy has also posted the classic 1972 paper on
TENEX by Bobrow, Burchfiel, Murphy, and Tomlinson.
MIT Comp Center and University of Michigan had close ties in the early 60s, and there was an informal group studying virtual memory in 1964 that included MIT and U of M researchers. The paper "Program and Addressing Structure in a Time-Sharing Environment," by Arden, Galler, and Westervelt (CACM, January 1966), was based on these discussions and especially on work by MIT professors Jack Dennis and Earl Van Horn. MIT and U of M participated in discussions with IBM about a virtual memory machine.
The CDC NOS/VE operating system provided a large paged, segmented virtual address space.
Museum Waalsdorp has an interesting site which includes information on their CDC systems.
[Jean Bellec] Multics strongly influenced the Honeywell Level 64 and its successors, the Bull DPS7 and DPS7000, and the derived NEC ACOS4 systems. Those systems used a segmentation mechanism and ring similar to Multics (although they were 32-bit machines instead of 64-bit). Their software used a segment per external procedure and a stack mechanism inspired by Multics.
[JB] GCOS64 was developed by Compagnie Honeywell-Bull in Paris (with Boston participation). It was bootstrapped from a GE-645 installed in 1972 and delivered in 1974. The implementation language was HPL, a subset of PL/I, that was running on Multics as SHPL. Multics also supported other tools for the GCOS64 factory such as a L64 linker and a hardware simulator and its environment (CLANG).
[JB] GCOS64/GCOS 7 uses a "microkernel" implemented by firmware that freeze the concept of threads (called process a la Multics), of semaphores for thread synchronization and I/O interface. GCOS7 is an evolutionary follow-on delivered in the early 80s. The microkernel mechanism has been easily extended to support up to 24 processors. Paging was introduced later on DPS7000 and segments were originally used for managing its virtual memory. The ACOS4 systems evolved by NEC from the original Honeywell Level64 include one of the most powerful mainframe systems, the ACOS3900.
The
Hitachi 5020 system had two-dimensional addressing and rings. It was strongly influenced by Multics. Its descendant, Omicron, has a
home page that includes early (1969 and 1971) papers on the 5020 system.
[Bob Mabee]Multicians Dave Reed and Raj Kanodia developed a novel synchronization mechanism called an eventcount, springing from a Multics-related concern that an observer or recipient of an IPC poke should not need write access to the synchronizer. Their paper appeared in CACM in 1979.
[RFM] Former Multician Jeff Goldberg created an experimental OS using only eventcounts for synchronization, running on a PDP-11 system from Charles River Data Systems (CRDS). CRDS president Rick Shapiro hired Jeff to build full Unix-like OS, Unos, first marketed on then-new 68000 systems in 1981. CRDS enjoyed a long profitable run selling 68K family systems with Unos before eventually dwindling away. Their primary market was OEMs embedding the CRDS unit within a larger pile of hardware, often requiring better real-time response than Unix could deliver.
[RFM] At command level, Unos felt more Multics-like than Unix did. Unix had suffered permanent damage during a period of very bad mechanical terminals so had only obscure two-letter commands and one-letter options, while Unos had the same names and options as Multics. (Of course the market later forced Unos to bend to Unix conventions.) I do not recall missing any particular Multics utilities and would like to be reminded what we're nostalgic for.
[RFM] To the C programmer, Unos was very like Unix. Wherever an interface was a bit cleaner (like passing length of a string buffer), it soon added the dirty version for compatibility.
[RFM] Internally, Unos required memory protection and relocation, so was very robust, unlike some early Unix ports. However, it never supported paged VM. Unlike Multics, multiprocessor support had not been built in from the start, so the kernel remained mostly single-threaded on the few multiprocessor systems built.
UNOS was written in C and supported FORTRAN, COBOL, Pascal, and Basic. User code used 32-bit addresses.
[Lee Parks] My undergraduate thesis was about Magic 6 which was paged, segmented, dynamic linked, operating system for the Interdata series of mini-computers inspired by Multics. Magic 6 was developed by the Architecture Machine Group (now the MIT Media Lab).
The last Multics site shut down as of 31 Oct 2000. Discussion of resurrecting Multics in alt.os.multics has not yet led to a revival of the system. If you want a Multics account, join the revival effort.
Bull HN has made
the entire source of Multics available "for any purpose and without fee" at MIT as of November 2007.
Source for a few programs is available at this site, cross-referenced to the Glossary.
Yes. As a matter of fact, several projects were started to try this in the 80s, as described in alt.os.multics and on the Multics History page. None of these projects finished. Porting Multics would be a big job, and the final product would need further development to match the current state of the art. Paul Green says, "I think it would be easier to try 'improving' existing technology than to resurrect Multics itself."
Now that the Multics source is available, there has been renewed interest in writing an emulator for a virtual machine that could run Multics. Postings in alt.os.multics have mentioned several projects that are in early stages. The CPU manual is available online. (In addition to emulating the CPU, a Multics emulator would also have to emulate the I/O system and peripherals.) The Computer History Museum in Mountain View has images of the contents of Multics boot tapes.
alt.os.multics is a public USENET newsgroup for discussion of the Multics operating system. Discussion sometimes strays onto topics of interest to Multicians, e.g.
For discussions of the history of other operating systems, try alt.folklore.computers or the groups dedicated to these systems.
alt.os.multics is a public unmoderated newsgroup with an estimated readership of thousands. If you have a comment of limited interest, please use e-mail instead.
To view alt.os.multics via the WWW, you can use
Google's Groups service, which indexes USENET postings since the early 90s. On the Google main page, click Groups, then enter alt.os.multics and return. You may wish to sort by date.
The feb_wwide mailing list is for present and former employees of Bull, GE, Honeywell, and related companies. It focuses on computer history and preserving the story of past accomplishments. Apply to Jean Bellec for membership with a brief biography.
The closed Yahoo group multicians has been set up for Multicians to contact each other. It currently has 132 members. To join it, view
http://groups.yahoo.com/group/multicians/
and click "Join this Group." You will need a (free) Yahoo ID. Once approved by the moderator, you can post messages, and can choose to see messages sent to the group as individual emails or a daily digest, or only on the web. You can also use other features of the group, including file and picture storage, chat, databases, and polls. Messages sent to the group are not indexed by search engines, and user mail addresses are not harvestable by spammers. Signing up to the mailing list does reveal your address to other members of the group (unlike registering on the Multicians website).
The LinkedIn group multicians has been set up for Multicians who use the
LinkedIn social networking site.
It currently has 244 members.
To join the group, send mail to the editor.
Group members have a little "multicians" badge on their profile and may contact other members.
There is a public
fan page for Multics on Facebook.
It currently has 197 fans. Any Facebook user may become a "fan" of Multics. Doing so puts you on the list.