Multics
20 Apr 2024

Architecture

General

  goals of architecture
  1. minimize cost
  2. benchmarking
  3. efficient use of resources
  4. system and user software time to market, cost to develop, cost to maintain
  5. flexibility and extensibility of system and user programs
  6. compatibility with legacy
  7. open/closed
  8. security
  
  hardware
  0. functional units: CPUs, Memory controllers, memory, I/O controllers, FNPs, MFCs, etc
  1. memory adressability
  2. CPU instruction set
  2.5 faults and interrupts
  3. CPU addressing modes and privilege levels
  4. interconnect, synchrony
  5. reset/clear/boot/halt
  6. clocks and timers
  
  software structures
  1. processes
  2. call side, calls between privilege levels
  3. interrupts

  inner OS
  1. kernel
  2. trap side, call side
  3. i/o management
  4. mdularization, interconnection
  5. boot, initialization
  6. updating
  7. security
  8. integrity
  9. failure recovery

  outer OS (TCB)
  1. daemons
  2. communications and networking
  3. administration
  4. hardware maintenance
  5. software maintenance

  library
  1. what is provided by system to user code

  user software
  1. how user software is created
  2. security
  3. privacy
  

Multics on the GE-645

Here is a diagram showing the major modules of Multics and their interconnection at the end of the GE-645 era, somewhat after Organick's book and after Bell Labs left the Multics project.

Repository document M0132 (click to zoom in)

narrative explaining the big ideas

The picture was drawn by M. Miyazaki, a visitor to Project MAC in 1972, from rougher drafts and explanations by Bernie Greenberg, who was then a graduate student.

[BSG] I was still a grad student at MAC. I forgot Mr. Miyazaki's first name. He was a visiting researcher or perhaps grad student himself, from Japan, who came to MAC to "learn about Multics" (there were countless foreigners visiting us for that reason in those days), and I was in a position to explain it (even having arrived a mere year earlier, I had already dived the deep end into Multics). 17.11 is whatever-the-underscore was current on the 645 at the time.

[BSG] Perhaps I am obliged to reveal my earlier "childhood trauma" of seeing the huge white OS/360 pointer-and-block wall-hanging-diagrams that IBM supplied with that OS, which, needless to say, thrilled me and beckoned me to master that morass (an opportunity I never got), so I was subconsciously motivated to compose something impressive enough (by those standards) to stand its own in that company....

Multics on the Honeywell 6180

The change to the 6180 architecture about 1972 made substantial differences in Multics. The next diagram shows Multics as of mid-1983, ten years later.

Similar drawing showing approximately MR10, not done yet

what changed (make all these hyper links)

Make the point that many of the changes were SIMPLIFICATIONS. Moved stuff out of ring 0. Made it more reliable. etc.

Of course some were complications. The ring0 multiplexers. The failure to move the linker and so on out of ring 0. We should be candid. The idea is, what really was the architecture. We could make a third diagram of what would the architecture be ideally.