Subject: Re: more on dinode
To: Chris G. Demetriou <cgd@pa.dec.com>
From: Jukka Marin <jmarin@pyy.jmp.fi>
List: tech-kern
Date: 12/04/1997 07:40:19
On Wed, Dec 03, 1997 at 01:29:36PM -0800, Chris G. Demetriou wrote:
> > The Mac had to use PIC - after all, the original system was based on the
> > Motorola 68000, and an MMU was an extra-cost chip that they felt they didn't
> > need.
>
> They could have gotten by with something MMU-like, but not a real MMU
> as we know it. The 68000 coudln't restart instructions, and therefore
> to do real Virtual Memory MMU functionality you'd need the gross
> dual-68000 hack (as i'm sure you're aware). I suppose they could have
> done something like linking CODE segments at fixed addresses, and
> loading the pseudo-MMU (really just some circuitry to do translation)
> to point the right addresses to the right memory when the CODE
> segments were locked (rather than locking them then fixing up the CODE
> 0 jump table)...
This REALLY doesn't belong in here, but... :) The Amiga used a 68000
originally as well, but it was / is able to run PIC and non-PIC programs.
When the OS loads executable code into memory (using LoadSeg() system
call), it relocates the code to the real address (I guess it's kind of
a run-time linker). PIC was a bit smaller, because there was no relocation
information needed in the executable files, but the OS never required you
to use PIC. It was all transparent to the user.. The Amiga also had
fully dynamic memory and resource allocation (no fixed size lists), true
pre-emptive multitasking.. Uh, I'll have to stop now or I'll end up bying
myself yet another Amiga. ;-)
-jm