[rescue] newest rescue

Peter Corlett abuse at cabal.org.uk
Thu Feb 4 13:36:09 CST 2016

On Thu, Feb 04, 2016 at 09:49:17AM -0500, Nathan Raymond wrote:
> Of the same era (and also 68k), the Amiga lacked memory protection. It did
> have pre-emptive multitasking however (though some like Linus Torvalds have
> argued that the lack of memory protection disqualifies it from being a true
> pre-emptive system).

Vendor of alternative system claims everything else is crap non-shocker :)

> Despite many efforts over the years, nobody has brought memory protection to
> AmigaOS, presumably because the message passing and inter-process
> communication is built on the assumption that there is no memory protection.

Adding that for filesystems and device drivers is "easy": virtualise each
process and then open shared pages as the message goes back and forth. You'll
generate *four* TLB flushes for each dos.library call that actually performs
I/O, which will bite hard. You can migrate filesystems and device drivers into
kernel space and thus avoid the TLB flush, but that also loses some of the
memory protection. (This is more or less the Unix model.)

It gets rather more difficult with applications that use bespoke messages as
it's no longer possible to parse the message structure to determine which
memory areas are being passed around. This would involve a certain amount of
whack-a-mole to identify common uses. I guess AREXX remote-control of programs
would be one.

The killer is the GUI. It was originally intended to be a device driver, but
there wasn't time. So instead it runs as a global shared thread that gets very
incestious with every other process. Even command-line programs can't escape
its tentacles because AmigaDOS may need to pop up the never-gets-old "Volume
Empty is full [OK] [Cancel]" error.

Anyway, the only sure-fire fix would be to do what Apple did with OSX: throw it
away and start again, and provide an emulator for legacy applications that has
slick look-and-feel integration with the new system. This really should have
been done when the OS was ported to PowerPC.

More information about the rescue mailing list