[mod.computers.68k] Re3: Minix to the 68k?

bsteve@ucbvax.Berkeley.EDU@gorgo.UUCP (02/16/87)

In Reply To: Stride 440 User <ihnp4!ucbvax!RELAY.CS.NET!HELLER%cs.umass.edu>

Some thoughts about whether one *really* needs a MMU:

>	First off, UNIX is not so much a multi-tasking system as a
>multi-*user* system:  That is on a typical UNIX system, you are not the only
>user, and it is considered very unfriendly to clobber someone else's core
>image (even inadvertently).  Thus UNIX needs to worry about process memory
>protection.

I don't think that this point is valid. UNIX systems may have started out
as time-sharing systems, but many of them today are single user workstations,
like mine.

>	If one abandons the multi-user idea (which make sense on a *small*
>personal-type system, like the Amiga or ST, or even some of the slightly
>bigger systems like Stride 420s or 440s), then there is not any real need to
>worry about process protection - if a program gets out of control, well you
>can just re-boot (i.e. reset button, power-cycling, whatever), with no great
>loss (well maybe in-core file buffers...).

The idea of hitting reset while various things run in the background leaving
files in multiple states of dis-array is not very pleasant. Even if your
implementation of the system software has guaranteed buffer-cache write-
through, this can be most frustrating.

>On my Stride 440 I run CP/M-68K under Stride's "Multi-user" BIOS.

This is a fundamental kludge to cover the antique architecture of the control
program.

>It is mostly a matter
>of carefull programming. Also, under CP/M-68K a runaway pointer will
>probably clobber the stack and very quickly get you some sort of memory
>access violation (missaligned work/long ref or non-existent memory ref or
>cause a rts instruction to return to the middle of you data area with a
>probable illegal instruction...).

Here is the rub. I don't want to continuously re-boot my system in the
process of debugging new code. This scheme works ok for languages like
lisp or pascal that are interpreted, but for C or assembler it is a real
pain (this is comming from someone who has paid his CP/M dues).

>	Other notes: I believe OS9 works much like Stride MU BIOS (except
>only one copy of the O/S kernel is in memory and the file system knows about
>multiple processes doing I/O).

Sorry, I think that this is fundamentally wrong. The OS9 kernel is a true
operating system designed from the ground up to provide all of the system
services one expects of a real operating system. CP/M has its place, but
it is definately *not* an operating system, and regardless of how much we
hack on the bios, it is still essentially the same schrizonified cruft that
Gary K. wrote on the 8080 in PLM-80 as an answer to the Intel MDS. At one
time I actually considered whipping out an implementation of CP/M for the
uVAX processor, but why bother? The point is that it was designed for uP
architectures that are quite minimal and there is no longer any reason to
ignore the capabilities of more comprehensive uP architectures and resort
to kluginess simply because it is "sufficient" for some applications.

>Given these constraints, it should be posible to implement a
>multi-tasking O/S without having to hassle with a MMU.

nuf said; "You can cut a tin can with it, but you wouldn't want to."


    Steve Blasingame (Oklahoma City)
    ihnp4!occrsh!gorgo!bsteve
    bsteve@eris.berkeley.edu