5 ms·
I would argue that a major defining characteristic of AmigaOS was that it ran in the same flat address space and privilege level as the applications. As a resul
by basementcat 7y ago
I would argue that a major defining characteristic of AmigaOS was that it ran in the same flat address space and privilege level as the applications. As a result, message passing is lighting fast (just pass a pointer) and applications can easily obtain direct access to hardware. This has obvious downsides as well— unstable app takes down whole system, no security whatsoever.
- joncrane 7y agoYikes! Would never fly today, I don't think.
- basementcat 7y agoA similar architecture is used in embedded operating systems like some versions of vxWorks! And RTEMS.
- NeedMoreTea 7y agoHardware memory protection only came into being with, IIRC the 68030 - Edit: though available as separate coprocessor 68851 chip for 020. Early Windows was no different, limited memory protection first came with the 286, wasn't it? BSOD just as often, instead of Guru meditation - at least a guru let you into a remote debugger. :) Without that it wasn't hard or unexpected for an unstable app to take down the system. Used to happen reasonably frequently on 68000 Unix systems. Certainly for every time that happened you might expect a couple of caught core dumps, but before hardware protection it was still wing and a prayer...
- davedx 7y agoThink it was the 386 that first had protected mode...
- jacobush 7y ago286 had too but no common OS used it. Too limited
- Narishma 7y agoWindows and OS/2 used it. A bunch of Unixes did as well. It was only limited if you wanted to run multiple DOS applications at the same time and switch between them.
- jacobush 7y agoWhatever Windows did, it was not good enough and way too easy to crash 16 bit Windows from within applications. Yes, I remember now I heard about 286 OS/2. But hardly common, even though cool. I was thinking MINIX which IIRC could use memory separation on 286. (But not on 8088/8086.) Still, you could only use 64 kbyte segments, limiting you data set a lot. You could not do the "large" model of up to half a meg or so you could in DOS.
- basementcat 7y agoVersions of MS-Windows before Windows NT used "cooperative multitasking" in which it was the responsibility of each process to yield CPU time to the next process in the task queue. Compare this with "pre-emptive multitasking" employed by UNIX, OS/2 and AmigaOS in which an interrupt causes the OS to save registers, stack pointer, etc and transfer control to another process (if needed) after each quanta. If a Windows 3.1 process failed to yield, it could result in a nonresponsive OS. On Linux, an abusive process would have to try a bit harder to take down the system (fork bomb, hog a bunch of ram, etc). On AmigaOS, a process could just overwrite part of another process or the OS itself to cause a crash.
- jabl 7y agoIndeed it was. And it took until Windows NT and the various PC Unixes to properly utilize it. Windows 95/98/ME were ostensibly running in 32-bit protected mode, but apparently could switch back to the old non-protected 16-bit mode to run old applications and drivers, compromising stability of the entire system.
- Narishma 7y agoNo, the protected mode was introduced with the 286.
- Corrado 7y agoAh, yes, the (in)famous Guru Meditation errors. The Amiga had lots of quirky things like that; it's what really made it special to me.
- philpem 7y agoOther platforms had their own. RISC OS (Acorn) had its infamous "Abort on data transfer" (or "Abort on instruction fetch" if you branched instead of LDR/STR'd). And if you were especially naughty and chased a null pointer, you got "ofla" -- which was the contents of the first four bytes of memory!