Thanks for another great link, as usual, embodying the field's old wisdom. :) Some thoughts come to mind as I read it.
re Atlas. Didn't know it invented demand paging, supervisors, and VM's! Plus, given description of the paper's "prose," I might have to read it to see for myself. Cool system.
re Burroughs and HLL's. I sort-of disagree about it not being a HLL if you can do low-level stuff. The point of HLL's was to raise our abstraction and/or our level of implementation detail. Going from raw assembly to something w/ HLL syntax and better structure gives numerous improvements. I think it counts as HLL. Just a niche that focuses on higher-level respresentation of low-level operations. Macro assemblers were another example with Bedrock-style stuff (or x86 in Coq macros/tactics) being next level over that.
re Exec II. Modern PC's still don't do steady 90% utilization despite mainframe Channel I/O showing how & doable with cheap chips, too. So, Exec II still kicks ass as does mainframe I/O.
re MULTICS. I found that section totally unfair. They eventually built a usable, reliable system with microkernel and HLL. Got turned into first B2-class system after the pen test. Quite a system. Let's be sure to note failures and mistakes. However, anyone reading that section would've thought it had only one, good attribute and wonder if it was even built as a product. Wonder why he wrote it up that way.
re Titan. That it invented what's become the most influential access-control model for files (and now memory) is new to me. Good work for them.
re UNIX. I'm just going to remain silent on this except to say it was a great architecture and implementation for the PDP 11 and other minicomputers.
"A superior tool like Unix often feels so natural that there is no incentive
for programmers to look for a better one."
(cough) UNIX Hater's Handbook (cough) Well, I tried to be silent.
re THE. Dijkstra shows applying engineering principles to OS's and software produces better results, sometimes nearly flawless. First methodology & exemplar done in 1968. Good to know IT industry kept that stuff in mind, leading to my near-flawless PC...
re RC4000. Credit to Hansen for nucleus approach: foundation of strong, security engineering to this day. Also news to me as I mistakenly thought it started with GEC's Nucleus kernel. So, goes back 1968 w/ first kernelized system running in 1969. And three months of reliability under the conditions of that time & with such radical changes seems impressive to me.
re Boss 2. Concurrent to the core, deadlock free, relatively low overhead, and error free in practice after first year. Great stuff. Replace the semaphores with BeOS's "benafores" and I bet the utilization would go up to levels near other systems.
re Solo. Security result is an amazing statement that we celebrated in late 90's and early 2000's prototypes as well. Being 20+ years ahead on that is another high five to Hansen. Give points to Wirth, too, for Pascal as an aid to this stuff. First to do access checks at compile time and also being able to publish source in one paper were also impressive.
re Alto. The 1-minute, filesystem fix is news. Now I know how much better the DOS's filesystems could've been. (sighs)
re BCPL. That, relaxed restrictions, and so on mark the decline of OS reliability and security at least from the paper's vantage. As I start to type this, I see him say essentially same thing noting that Solo, Pilot, Cedar, etc demonstrated practicality and advantages of using secure languages. Again, appreciate the paper for new examples it gives in addition to Lilith/Oberon, Ada, LISP, and Java examples I had from 80's onward.
re Star. Great rework of existing ideas. Inspired an alternative, desktop OS for Windows users not technical enough for Linux. ;)
re RPC's. Tried to make it faster by eliminating reliability guarantees. Spent several decades exploring all the ways that made it unreliable. Reinvented battles of 1950's. It was kind of stupid in foresight and totally retarded in hindsight.
re Amoeba. Gotta give Unix United, which I didn't know of, credit for getting this sort of thing going. However, Amoeba seems to be the first, true distributed OS with its own style. With capabilities, too! Also introduced us to Tannenbaum and Guido van Rossum: two names that would appear on reliable, solid systems in the future. ;)
"We do not stabilise on something nice and simple and say “let’s do it again,
but do it very well this time.”"
Good conclusion. I'm doing my part in promoting design & implementation strategies that worked. I hope the actual builders do the same. Might also make an interesting student project (err Master's thesis) to prototype THE, RC 4000, Boss 2, or Solo again with small, modern changes.
re MULTICS. I found that section totally unfair. They eventually built a usable, reliable system with microkernel and HLL. Got turned into first B2-class system after the pen test.... However, anyone reading that section would've thought it had only one, good attribute and wonder if it was even built as a product. Wonder why he wrote it up that way.
Indeed, I assume ignorance. When he said "Multics was never widely used outside MIT." ... well, MIT-MULTICS certainly ran more of MIT than the Pentagon's system ran the DoD, but the military appreciated its security, among other things did their budget (or looking at the site linked below, maybe just the Air Force's).
Ford and GM had them, the latter with 17,000 registered users, Honeywell Bull (France) was really fond of it; the Multicians web site lists 84 sites, 30 with histories: http://www.multicians.org/sites.html.
I don't know if it would have succeeded in the long term if Honeywell had ran the project with more intelligence (blamed the decision to microcode the first pure Multics processor on their deciding to can that project because of algae in the cooling system), and without crippling infighting (they tried to slam together their original computer effort, GE's GECOS and Multics and minicomputer? systems, and the SDS/Xerox's), but even with those problems it sold so well on its own merits that Honeywell had to actively kill it off.
Interesting details. That they had to kill it off rather than accept its market-induced death tops off evidence it went somewhere. I think the $7 million price tag along with the politics did more than anything to hurt it.
Of course, seeing what he did with MULTICS, gotta wonder what other huge inaccuracies might be in there. Suddenly goes from a really nice paper to something review just in case.
EDIT: Just noticed the author I'm critiquing is the smart guy I complimented by name in my post for past work. Oh the ironies lol...
re Atlas. Didn't know it invented demand paging, supervisors, and VM's! Plus, given description of the paper's "prose," I might have to read it to see for myself. Cool system.
re Burroughs and HLL's. I sort-of disagree about it not being a HLL if you can do low-level stuff. The point of HLL's was to raise our abstraction and/or our level of implementation detail. Going from raw assembly to something w/ HLL syntax and better structure gives numerous improvements. I think it counts as HLL. Just a niche that focuses on higher-level respresentation of low-level operations. Macro assemblers were another example with Bedrock-style stuff (or x86 in Coq macros/tactics) being next level over that.
re Exec II. Modern PC's still don't do steady 90% utilization despite mainframe Channel I/O showing how & doable with cheap chips, too. So, Exec II still kicks ass as does mainframe I/O.
re MULTICS. I found that section totally unfair. They eventually built a usable, reliable system with microkernel and HLL. Got turned into first B2-class system after the pen test. Quite a system. Let's be sure to note failures and mistakes. However, anyone reading that section would've thought it had only one, good attribute and wonder if it was even built as a product. Wonder why he wrote it up that way.
re Titan. That it invented what's become the most influential access-control model for files (and now memory) is new to me. Good work for them.
re UNIX. I'm just going to remain silent on this except to say it was a great architecture and implementation for the PDP 11 and other minicomputers.
"A superior tool like Unix often feels so natural that there is no incentive for programmers to look for a better one."
(cough) UNIX Hater's Handbook (cough) Well, I tried to be silent.
re THE. Dijkstra shows applying engineering principles to OS's and software produces better results, sometimes nearly flawless. First methodology & exemplar done in 1968. Good to know IT industry kept that stuff in mind, leading to my near-flawless PC...
re RC4000. Credit to Hansen for nucleus approach: foundation of strong, security engineering to this day. Also news to me as I mistakenly thought it started with GEC's Nucleus kernel. So, goes back 1968 w/ first kernelized system running in 1969. And three months of reliability under the conditions of that time & with such radical changes seems impressive to me.
re Boss 2. Concurrent to the core, deadlock free, relatively low overhead, and error free in practice after first year. Great stuff. Replace the semaphores with BeOS's "benafores" and I bet the utilization would go up to levels near other systems.
re Solo. Security result is an amazing statement that we celebrated in late 90's and early 2000's prototypes as well. Being 20+ years ahead on that is another high five to Hansen. Give points to Wirth, too, for Pascal as an aid to this stuff. First to do access checks at compile time and also being able to publish source in one paper were also impressive.
re Alto. The 1-minute, filesystem fix is news. Now I know how much better the DOS's filesystems could've been. (sighs)
re BCPL. That, relaxed restrictions, and so on mark the decline of OS reliability and security at least from the paper's vantage. As I start to type this, I see him say essentially same thing noting that Solo, Pilot, Cedar, etc demonstrated practicality and advantages of using secure languages. Again, appreciate the paper for new examples it gives in addition to Lilith/Oberon, Ada, LISP, and Java examples I had from 80's onward.
re Star. Great rework of existing ideas. Inspired an alternative, desktop OS for Windows users not technical enough for Linux. ;)
re RPC's. Tried to make it faster by eliminating reliability guarantees. Spent several decades exploring all the ways that made it unreliable. Reinvented battles of 1950's. It was kind of stupid in foresight and totally retarded in hindsight.
re Amoeba. Gotta give Unix United, which I didn't know of, credit for getting this sort of thing going. However, Amoeba seems to be the first, true distributed OS with its own style. With capabilities, too! Also introduced us to Tannenbaum and Guido van Rossum: two names that would appear on reliable, solid systems in the future. ;)
"We do not stabilise on something nice and simple and say “let’s do it again, but do it very well this time.”"
Good conclusion. I'm doing my part in promoting design & implementation strategies that worked. I hope the actual builders do the same. Might also make an interesting student project (err Master's thesis) to prototype THE, RC 4000, Boss 2, or Solo again with small, modern changes.