See reader questions & answers on this topic! - Help others by sharing your knowledge
================================================================= The Multics FAQ continues to improve as people contribute information. Please post updates to alt.os.multics or mail to <firstname.lastname@example.org> ================================================================= Q) What is the purpose of this group? A) This group is for the discussion of the Multics operating system. Discussion sometimes strays onto topics of interest to Multicians, e.g. - Honeywell hardware architecture - CTSS, DTSS and other ancestors - Honeywell management mistakes and if-onlys - PRIMOS, GCOS Timesharing, UNIX, and other cousins and descendants 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. ================================================================= Q) How can I view alt.os.multics via the web? A) Go to http://www.google.com/ and click Groups, then enter alt.os.multics and return. You may wish to sort by date. ================================================================= Q) What other sources are available on-line to find out more about Multics? A1) There is a large set of Multics Web pages available at http://www.multicians.org/ including hypertext versions of the FAQ files, the 250K Multics Glossary, papers, stories, and pictures of Multicians and 6180s. There are 208 HTML pages comprising over 1,000,000 lines and 353 graphic images. Paul Green mirrors this information at Stratus at ftp://ftp.stratus.com/pub/vos/multics/tvv/multics.html A2) There is a closed Yahoo Groups mailing list for Multicians. It currently has 120 members. Apply at http://groups.yahoo.com/group/multicians/ A3) Al Kossow has a large collection of scanned Multics manuals online at http://www.bitsavers.org/pdf/honeywell/multics/ A4) The LinkedIn group "multicians" has been set up for Multicians who use the LinkedIn social networking site. It currently has 184 members. To join it, send mail to the editor. A5) There is a "fan page" for Multics on Facebook, open to any Facebook user. http://www.facebook.com/pages/Multics/47514482155 It currently has 91 fans. ================================================================= 0. FAQ documents posted monthly in alt.os.multics 0.1. Multics General (this Document) (THVV) 0.2. List Of Multicians (in 3 parts) (THVV) 0.3. Multics Chronology (THVV) 0.4. List Of Multics Sites (THVV) 0.5. Multics Bibliography (THVV) 0.6. Multics History (THVV) 0.7. Multics Features (THVV) 1. What was Multics? 1.1. Summary 1.2. Goals 1.3. Notable features 1.3.1. Segmented memory 1.3.2. Virtual memory 1.3.3. High-level language implementation 1.3.4. Shared memory multiprocessor 1.3.5. Multi-language support 1.3.6. Relational database 1.3.7. Security 1.3.8. On-line reconfiguration 1.3.9. Software Engineering 1.4. Influence on other systems 1.4.1. UNIX 1.4.2. GCOS 6 1.4.3. Primos 1.4.4. VOS 1.4.5. Apollo Domain 1.4.6. NTT DIPS 1.4.7. Amber 1.4.8. GEMSOS 1.4.9. Other systems using rings 1.4.10. IBM Systems 1.4.11. TENEX and TOPS-20 1.4.12. Michigan Terminal System 1.4.13. Control Data NOS/VE 1.4.14. Honeywell GCOS7 (nee GCOS64) and NEC Acos4 1.4.15. HITAC 5020 2. Multics today 2.1. Where can I get a Multics account today? 2.2. I'd like to see some Multics source. How? 2.3. Could Multics be ported to a modern micro? ============================================================= 1. What Is Multics? 1.1. Summary 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. Corbato 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: * "Introduction and Overview of the Multics System," F. J. Corbato and V. A. Vyssotsky * "System Design of a Computer for Time-Sharing Applications," E. L. Glaser, J. F. Couleur, and G. A. Oliver * "Structure of the Multics Supervisor," V. A. Vyssotsky, F. J. Corbato, and R. M. Graham * "A General Purpose File System for Secondary Storage," R. C. Daley and P. G. Neumann * "Communications and Input/Output Switching in a Multiplex Computing System." J. F. Ossanna, L. Mikus, and S. D. Dunten * "Some Thoughts About the Social Implications of Accessible Computing," E. E. David, Jr. and R. M. Fano 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. 1.2. Goals As described in the 1965 paper Introduction and Overview of the Multics System by Corbato and Vyssotsky, there were nine major goals for Multics: * Convenient remote terminal use. * Continuous operation analogous to power & telephone services. * A wide range of system configurations, changeable without system or user program reorganization. * A high reliability internal file system. * Support for selective information sharing. * Hierarchical structures of information for system administration and decentralization of user activities. * Support for a wide range of applications. * Support for multiple programming environments & human interfaces. * The ability to evolve the system with changes in technology and in user aspirations. 1.3. Notable features See the Multics Features FAQ for more information. 1.3.1. Segmented memory 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. 1.3.2. Virtual memory 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. 1.3.3. High-level language implementation 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. 1.3.4. Shared memory multiprocessor The Multics hardware architecture supports multiple CPUs sharing the same physical memory. All processors are equivalent. 1.3.5. Multi-language support 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. 1.3.6. Relational database Multics provided the first commercial relational database product, the Multics Relational Data Store (MRDS), in 1978. 1.3.7. Security 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. 1.3.8. On-line reconfiguration 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. 1.3.9. Software Engineering 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 Corbato 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. 1.4. Influence on other systems 1.4.1. Unix 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. 1.4.2. GCOS 6 Honeywell's GCOS 6 operating system for the Level 6 minicomputers was strongly influenced by Multics. 1.4.3. Primos 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. 1.4.4. VOS 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.) 1.4.5. Apollo Domain [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. 1.4.6. NTT DIPS [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. 1.4.7. Amber 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. 1.4.8. GEMSOS [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. 1.4.9. Other systems using rings [Paul Karger] Many other systems since Multics have also used rings including: * VME/B for the ICL 2900 * AOS/VS for the Data General MV8000 * VMS for the DEC VAX 1.4.10. IBM systems 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. 1.4.11. TENEX and TOPS-20 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. 1.4.12. Michigan Terminal System 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. 1.4.13. Control Data NOS/VE 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. 1.4.14. Honeywell GCOS7 (nee GCOS64) and NEC Acos4 [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. 1.4.15. HITAC 5020 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. 1.4.16. Unos [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. 2. Multics today 2.1. Where can I get a Multics account today? 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. 2.2. I'd like to see some Multics source. How? 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. 2.3. Could Multics be ported to a modern micro? 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." 2.4. Writing a Multics emulator new 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. nd peripherals.) The Computer History Museum in Mountain View has images of the contents of Multics boot tapes. or 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.