DMasterson@cup.portal.com (David Scott Masterson) (05/11/89)
In message <6752@cbmvax.UUCP>, daveh@cbmvax.UUCP writes: >... In order for per- >task protection to work, you'd have to have an MMU table, or at least a part >of one, added on to the context information for each task. Question: Why did the Unix PC 7300 from AT&T seem to work so well with Unix when it was only running a 68000 (at most a 68010)? Just curious, and I'm not to familiar with its internals. Therefore, could something like it did work on the Amiga? David Masterson DMasterson@cup.portal.com
daveh@cbmvax.UUCP (Dave Haynie) (05/12/89)
in article <18226@cup.portal.com>, DMasterson@cup.portal.com (David Scott Masterson) says: > > In message <6752@cbmvax.UUCP>, daveh@cbmvax.UUCP writes: >>... In order for per- >>task protection to work, you'd have to have an MMU table, or at least a part >>of one, added on to the context information for each task. > Why did the Unix PC 7300 from AT&T seem to work so well with Unix when it > was only running a 68000 (at most a 68010)? Just curious, and I'm not to > familiar with its internals. Therefore, could something like it did work > on the Amiga? The 7300 has a 68010 at around 10MHz and a hand-rolled MMU of some sort (don't know the details of that MMU myself). It's not a particulaly fast UNIX machine, but it did run UNIX. A plain 68000 machine won't run anything closely approximating a real UNIX; you need an MMU and a 68010 for a minimal UNIX system (I guess if you were happy with UNIX on a 256K PDP-11, you might get something acceptible working on a 68000, but it wouldn't be what most folks these days consider _real_ UNIX). Virtual memory under the Amiga OS is a different story. The design of UNIX makes VM real easy to include; every task starts at the same location, has it's own private address space, and doesn't get to Forbid(), Disable(), or do much else that's real-time. And the UNIX kernel manages device drivers, which makes it a bear to add a device driver compared to the Amiga system, but much easier to handle a page fault generated swap without the danger of breaking anything. And when a task goes away under UNIX, there's one nice, well defined chunk of memory that just disappears. In the Amiga OS, all tasks run in the same address space. You never know where the memory allocated by a particular task is. This makes the Amiga OS very fast, since inter-task messages can be passed by reference instead of by value. But it opens up two problems [1] resource tracking (which currently isn't done, but would be more complicated than under UNIX), and [2] the current memory allocation mechanism could result in more thrashing on a VM Amiga system when real memory gets tight, as any one task can have memory allocated over several pages, instead of tightly sewn up on a few as under UNIX. BTW, Amigas with MMUs (A2500, etc) make fine UNIX machines. > David Masterson > DMasterson@cup.portal.com -- Dave Haynie "The 32 Bit Guy" Commodore-Amiga "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: D-DAVE H BIX: hazy Amiga -- It's not just a job, it's an obsession