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
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.
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....
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.
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.