User Tools

Site Tools


crazy-ideas

Memory Protection

Memory protection on the Amiga is a contentious subject not least because many considers it unnecessary and/or impossible.

This is a proposal of how to layer in MP into AmigaOS or AROS in a way that will minimize impact to existing systems:

  1. Create a “MP enabler” app that will enable the MMU and set up translation tables, and load a library that allows manipulation of the tables. This app will also patch Exec to enable a memory context to be created, and add a page fault handler.
  2. The MP enabler will expose an interface to “boot” a slightly patched AmigaOS (or AROS) as a process. The patched version will inherit some data from the parent (e.g. assigns), and will not run S:Startup-Sequence (but could optionally perhaps load another config file? Or get it's “private” S:)
  3. The booted process will not have direct hardware access. Drivers that access hardware need to have alternative versions written that instead exchange messages with the kernel.
  4. Fine grained access control to devices must be added. E.g. not all processes may be granted access to talk to the disk devices directly, but will rather have to talk to remote versions of the file systems.
  5. A method of dynamically creating “proxies” that translate kernel requests should be added, similar to what Janus UAE does.
  6. Allow direct message passing between processes.
  7. Gradually migrate code out of the “kernel” to separate processes and create an API that allows the kernel to grant access to specific hardware resources to these processes.
crazy-ideas.txt · Last modified: 2011/03/20 15:04 by vidarh