Multics was introduced in a series of papers at the 1965
Fall Joint Computer Conference:
- "Introduction and
Overview of the Multics System," F. J. Corbató 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. Corbató, 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 centuryof UNIX, for
example.
Multics runs on special expensive CPU hardware that provides a
segmented,
paged,
ring-structured
virtual memory.
The system is a symmetric
multiprocessor
with shared physical and virtual memory. The operating system was programmed
in PL/I.
Elliot
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 quite 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.
As described in the 1965 paper
Introduction and Overview of
the Multics System by Corbató 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.
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, 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
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.
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, and several other senior
Multicians worked at Prime. Poduska referred to Primos as "Multics in a
shoebox."
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.
[JHS]
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.
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
- the Hitachi 5020 time sharing system (first with hardware rings)
1.4.10. IBM systems
As for other systems influenced, TSS/360 was strongly influenced by
Multics. And IBM's MVS eventuallyacquired dynamic reconfiguration to add
processors and memory without shutting down.
[Jerry Saltzer] 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.
Susan Topol wrote an article on the history of
MTS,
available online.
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.
GCOS64 was developed by Compagnie Honeywell-Bull in Paris (with Boston
participation). It was bootstrapped from a 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).
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 folow-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.
All Multics sites 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.
Source for a few
programs is available at this site, cross-refernced to the Glossary.
The intellectual property rights to the Multics software are owned by
Group Bull. Bull HN Information Systems in Billerica, MA, USA is in charge
of these rights.
Yes. As a matter of fact, several projects were started to try this in
the 80s, as described in alt.os.multics. None of these
projects finished. Porting Multics would be a big job and risky, and the
final product would need further development to match current state of the
art. Paul Green
says, "I think it would be easier to try 'improving' existing technology
than to resurrect Multics itself."
alt.os.multics is a USENET newsgroup
for 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.
To receive alt.os.multics via mail, send email to
majordomo@oakland.edu with the
following line in the body of your message (please leave the Subject: line
blank):
subscribe multics your_full_name <your_mail_address>
for example:
subscribe multics Jeff Marraccini <jeff@oakland.edu>
(some folks report trouble posting via this route)
Another option is
Google's
Groups service, which indexes USENET postings since the early 90s.
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 JBellec@compuserve.com for
membership with a brief biography. |