I have nothing against this for ref, just that it appears to be an eternally unsolved problem.
I have nothing against this for ref, just that it appears to be an eternally unsolved problem.
I can't say I ever "loved" it nor found it reliable. By 1998 it looked quaint compared to NT4 etc.
Stop right there. Multitasking without memory protection and reliability do not go well together. It was a fun machine, but reliable it was not.
Stop deluding yourself, Commodore had a ton of reliability problems. Amigas came from factory with electrolytic capacitors soldered backwards! (and afaik they were also backwards on the factory diagram).
Difficult problem to solve...
Things like Datatypes (gaining instant ability to read any image format into any viewer or editor by dropping a library into the right directory), XPK (gaining instant support for any compression library everywhere), pervasive AREXX support (Linux is slowly getting something similar with dbus, but in comparison to AREXX ports dbus is overcomplicated), screens (sort of like virtual desktops/spaces, but could be private or public and named), responsiveness (e.g. by default widgets and input handling were running in different tasks/threads to the applications, and so would remain responsive even when your app was doing stupid stuff), or the device/filesystem model which was frequently exploited (e.g. the editor FrexxEd exports the open buffers in a custom filesystem, so that on limited memory systems you could process the content of the buffers with external programs - like your compiler - without having to save it to T: (the equivalent of /tmp), which was usually assigned to the ramdisk), or assigns - creating dynamic drive/volume labels (less important now, but I could e.g. "list music0:" and get prompted specifically for the disk with the label "music0"), or "joining" multiple paths together under a single name. E.g. LIBS:xpk.library would find xpk.library in whichever path it was as long as that path had been added to the LIBS: assign.
There are many little things. None of them sufficient for me to be willing to use AmigaOS now, but many of them things I still miss.
It would be interesting to try and forward-port these aspects of AmigaOS to an ARM system.
Some of them certainly expect single-user. I think Linux etc. loses out quite a bit by not differentiating between single user (in terms of "person in front of the machine is most important, regardless of uid) and multi-user systems.
Some of it could be emulated by tweaking priorities. But others require a large change in how you think about applications. E.g. the widget ("gadget" in Amiga-speak) responsiveness largely comes from the OS threads carrying out updates of them. To do the same in an X app for example, you'd need your app to explicitly start a separate thread to forward events to your main thread, and have a mechanism for giving it higher priority. It's not that hard to do, but without libraries providing wrappers for it, it won't happen often.
Other things, like the assigns could be implemented easily enough with a filesystem driver. Coupled with namespaces you certainly can do this transparently in a multi-user system.
Memory protection helped reducing the cost of context switches, and certainly there has been a variety of sins carried out as a result of it being possible to pass data all over the place without paying much attention to it. But it's not that integral to the things that make AmigaOS unique.
With respect to ARM systems, AROS runs on ARM (and x86, PPC, m68k) and AROS is relatively close to parity with the lastest AmigaOS releases (including features from the 4.x series for PPC). I think at least one AROS distribution has images for Raspberry Pi for example. If nothing else it's a good place to get a feel for how some of it works.
But I was hoping for something with a little more of the design rationale. Maybe this is what I'm looking for. http://www.amazon.co.uk/The-Future-Was-Here-Commodore/dp/026...
Yet my android tablet routinely freezes for 30 seconds for whatever reason.
And yes, app crashes could take the machine down, but it was typically back up in a usable desktop within 6 seconds. And later on (mid 90s), they seem to have become far more rare.