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
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.
what changed (make all these hyper links)
- No gatekeeper; function moved to hardware.
- Use of ring-1 for message segments and secure mail.
- Use of inner ring and ioi_ for TCP/IP. (not clear on this, how did it decide to use ioi or x25)
- IOM instead of GIOC
- (Clock in SCU instead of separate active device.)
- Front-end processing moved to FNP.
- iox_ instead of ios_
- vfile_ instead of FSIM
- removal of paging device (bulk store, drum)
- RNT added
- RCP added
- ioi_ added
- NSS introduced new structures and concepts, replaced FSDCT with fsmap segs
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.