14 comments

[ 1.9 ms ] story [ 41.6 ms ] thread
The bogus delivery story at the end made the whole thing worth it. This day and age it might even merit a visit from Homeland Security!
That's the problem of an OS without proper process isolation and without privilege protection. The bad old days.
So, the OS is to blame here? Not the application programmers?
It's the programmers' fault that their application crashed. It's the OS's fault that the OS itself crashed due to the application's crash.
Ah, the MS OS/2 2.0 fiasco, which was one of my favorite topics. I have a bad opinion against MS for it, and another favorite thing to mention about Win9x back when I was discussing this fiasco was how the dependence on DOS allowed Caldera to continue to sue MS. I once dug out PX00307 and mentioned it here: http://www.vintage-computer.com/vcforum/showthread.php?33838...
Arguably it would be much better to enforce process isolation and priviledge protection statically in the programming language. Currently system calls have a massive performance overhead, which could be eliminated if the compiler could reason about memory access violations and so on. Legacy code and other applications could run in sandboxed virtual machines. Microsoft has done some research in this direction with their Singularity OS and a programming language called M.
There's also Google NaticeClient (NaCl) which tries a similar static approach, but on the assembly level.
I really enjoy reading well written software development stories from 90s, like this one. It just has a different vibe, emotion compared to the 'modern' stories. Makes me wish I was born a decade earlier, in a western country :)
Resisting the urge to put "operating system" in quotes :-)

This kind of nonsense would not have been possible on *nix, OS/2 or VMS back in the early 90s. (written as somebody who had to write a fair amount of C code back then for such things in addition to the scourge of Win16)

Still, hats off for debugging such a goofy work-around with a poorly chosen place for setjmp() to receive a longjmp().

Aaaaand this is where folks that have an MBA joke about engineers ineptitude.
How many MBA's does it take to change a light-bulb? It depends, how many engineers are on their payroll ..