The first operating system I know of written in a high-level programming language (PL/I). (Actually EPL).

Security in Multics was implemented with 64 rings. In The Aesthetics of Computing (page 62), David Gelernter compared the rings to those of Dante's hell. The comparison was apt, in that moving to a higher-numbered ring gave one lower privileges. You could say "abandon access, all ye who enter here" (my words, not Gelernter's).

Some canonical references are:

F. Corbató, V. Vyssotsky, "Introduction and Overview of the Multics System", AFIPS Conference 27, 1965, pp. 185-196.

F. Corbató, J. Saltzer, C. Clingen, "Multics - The First Seven Years", Spring Joint Computer Conference, 1972, pp. 571-583.

Organick, Elliott, The Multics System: an Examination of its Structure, MIT Press, Cambridge, MA, 1972. ISBN 0-262-15012-3

A good site for information on Multics is www.multicians.org. But do not go there if your operating system sensibilities are easily offended. Multicians are not exactly UN*X friendly (let alone friendly to any other OS).

Then again, if you were a proponent of a system that ran only on 36 bit computer architectures, wouldn't you be a bit bitter?

multician = M = multitask

Multics /muhl'tiks/ n.

[from "MULTiplexed Information and Computing Service"] An early time-sharing operating system co-designed by a consortium including MIT, GE, and Bell Laboratories as a successor to CTSS. The design was first presented in 1965, planned for operation in 1967, first operational in 1969, and took several more years to achieve respectable performance and stability.

Multics was very innovative for its time -- among other things, it provided a hierarchical file system with access control on individual files and introduced the idea of treating all devices uniformly as special files. It was also the first OS to run on a symmetric multiprocessor, and the only general-purpose system to be awarded a B2 security rating by the NSA (see Orange Book).

Bell Labs left the development effort in 1969 after judging that second-system effect had bloated Multics to the point of practical unusability. Honeywell commercialized Multics in 1972 after buying out GE's computer group, but it was never very successful: at its peak in the 1980s, there were between 75 and 100 Multics sites, each a multi-million dollar mainframe.

One of the former Multics developers from Bell Labs was Ken Thompson, and Unix deliberately carried through and extended many of Multics' design ideas; indeed, Thompson described the very name `Unix' as `a weak pun on Multics'. For this and other reasons, aspects of the Multics design remain a topic of occasional debate among hackers. See also brain-damaged and GCOS.

MIT ended its development association with Multics in 1977. Honeywell sold its computer business to Bull in the mid 80s, and development on Multics was stopped in 1988. Four Multics sites were known to be still in use as late as 1998, but the last one (a Canadian military site) was decomissioned in November 2000. There is a Multics page at http://www.stratus.com/pub/vos/multics/tvv/multics.html.

--The Jargon File version 4.3.1, ed. ESR, autonoded by rescdsk.

All Multics documentation and books prior to 1974 or so are pretty much wrong. Multics was actually written in PL/1, EPL was used for only the early systems, while waiting for the full PL/1 compiler.

When they moved from the GE 645 (software rings, etc.) to the GE 6185 (hardware rings, etc.) they went to 8 rings. By the end of Multics releases, the OS was quite mature, supported databases, and pretty much erverything that UNIX would like to have (Multics didn't have pipes, though).

About 1972 or so, the General Electric division that built GECOS and Multics computers was putchased by Honeywell. The GECOS operating system was renamed GCOS, and they continued to build hardware in Phoenix, Arizona and write software there and in Cambrige, Mass.

Multics is the successor to CTSS, the Compatible Time-Sharing System*, and the direct ancestor to Unix. Unix was called UNICS early in its life because its name started out as a pun: Multics was the MULTiplexed Information and Computing Service, so the much smaller and more primitive UNICS would naturally be the UNiplexed Information and Computing Service. This was more apt when UNICS was essentially a single-user OS written in assembly and running on a PDP-7 that was obsolete even then.

Note that the final word in the expansion is 'Service', not 'System'. The goal of the Multics project was to provide computing power as a utility, much like the phone service and electrical power. They set out to craft a system that would give extremely reliable, secure service to large numbers of people connecting via terminals to high-end mainframes. They achieved an amazing amount, especially given the limitations of the era.

Multics was written in PL/I, which was a programming language crafted with goals as ambitious as those for Multics. PL/I was intended to be the one true programming language, the one that included every feature anyone would ever need implemented in a modern, Algol-derived syntax to forever bring us out of the bondage to line-oriented languages like FORTRAN and COBOL. PL/I was in some ways the Java of its era: It was designed to be portable, complete, easy-to-use, and suitable for building any kind of software. (Of course, nobody would write an OS in Java.) The fact that PL/I, so widely hailed and so talked-about in its own time, has completely sunk beneath the waves should give us pause and make us consider which current crazes are going to evaporate like the morning dew.

(Very little in computing ever completely dies. According to FOLDOC, PL/I is still widely used internally at IBM. There have been many variants and subsets to see serious use, as well: A stripped-down variant called PL/M was used to implement CP/M, and PL/M will live on as long as there is a CP/M hobbyist community.)

Multics racked up an impressive array of firsts:

  • The first hierarchical file system. Every directory tree today owes a debt of gratitude to Multics.
  • The first filesystem with ACLs on every entry. This is essential if you want a multi-user system that even pretends to be secure. (Access control lists control access to files and prevent unauthorized tampering.)
  • The first OS to get a B2 security rating from the US government. This is due to the above point.
  • The first modern shell. By this I mean that the command interpreter was a normal userland program, not wired-in to the OS. Unix took this idea and ran with it, giving us shells from ash to zsh and Holy Wars beyond measure.
  • The first modern command lanugage. The Multics shell recognized a language recognizably similar to that recognized by a DOS, Unix, or VMS shell: Most commands launched programs, instead of the prior practice of making all commands built-ins and requiring a specific command to run another program.
  • The first commercial relational database product. Oracle owes its business model to Multics.

According to multicians.org ( http://multicians.org/myths.html#hll ), Multics was not the first OS to be written in a high-level language. The Burroughs system for the B5000 was written in Algol and preceded Multics. Algol is a seminal language in its own right, introducing the concept of block-structuring and defining the general look and feel of most mainstream programming languages to come.

Multics was only mildly commercially successful, and never lived up to its full potential in the real world. It was, however, used for decades in niche roles: The last Multics system, used by the Canadian military, was shut down in 2000. Technically it was almost 100% successful: The only flaw in that regard is that it was never quite as reliable as the phones or electrical power, a goal no OS before or since has set out to achieve. What killed Multics was corporate politics and the large-scale replacement of mainframes with minicomputers and then microcomputers.

Unix is the heir to Multics despite being its near-polar opposite in original intent and design philosophy: Unix was created for cheap machines, as opposed to the expensive mainframes Multics required, and it was aimed at becoming a usable system as quickly as possible, whereas Multics was meant to be highly reliable and generally flawless. Unix has achieved enormous success despite, or perhaps because of, never fully replicating the Multics feature set. Computing has moved on since Multics, and it's easier to take a small system in a new direction than a large one. Linux, a Unix clone, is in TiVos around the world now; Multics would never have lived in a set-top box.

* What was CTSS 'Compatible' with? A FORTRAN batch system that could run in the background at nearly full efficiency while CTSS ran in the foreground. It's a testament to how quickly interactive computing caught on that Multics and Unix never had to share their machines with background batch systems. (On the other hand, batch held on for years after Unix was relatively well-established and some IBM operating systems (such as MVS) are still optimized to run batch jobs at high efficiency.)

Multics was an early operating system, a sort of spiritual ancestor to UNIX. It was one of the first operating systems that focused heavily on interactive operation, rather than executing batch jobs like the GE and IBM mainframe systems of the day. It never achieved the level of success that was hoped for, and ended up sold to Honeywell. Honeywell proceeded to neglect it for the next several years, focusing on the GCOS system they had acquired from GE. Multics did influence the GCOS systems, with GCOS 6 and GCOS 7 being more or less direct descendants of it, but as a standalone product was gradually phased out in the 80's. It lives on today in the forms of NEC ACOS-2, Bull GCOS 7, and Stratus VOS, all of which are direct descendants of the Multics operating system. The main programming environment on Multics was (and to some extent still is) PL/I, which hasn't exactly helped its continuing legacy.

Log in or registerto write something here or to contact authors.