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