[net.arch] Unix w/o Memory Mgt.; what the IBM PC could have been

jer@peora.UUCP (J. Eric Roskos) (12/06/85)

In several of the recent postings on IBM PC's, it's been argued that Unix
can/can't run without memory management; counterexamples have usually been
based on unix look-alikes, however.

In fact, Western Electric briefly provided a Unix without a need for any
memory management, called "Mini-Unix", which ran on the PDP 11/03.  This
was done by swapping whole process images to disk each time a context switch
was done, in order to avoid having to do any relocation.

Drawbacks of this Unix were that it tended to be slow on context switches,
and you could overwrite parts of the kernel via an errant user process.

I don't know what became of this project; the point is that Unix can be
made to run very well without memory management hardware if you incur the
extra overhead, and forego the kernel protection.  Actually, using
old-fashioned technologies it would be possible to write a clean, fast
OS for the IBM PC; but as soon as the PC came out, people went for the
64K restriction as a way to differentiate compilers, which pretty much
eliminated any chance of ever implementing such a system.  The problem
was that people tried to jump from machines like the Apple II (which was
sort of like a PDP-8) to a "micro-mainframe" (everyone wanted a VAX) without
taking the intermediate step.

--------

[Please try to minimize "not enough technical content" flames.  If you
want to discuss this topic, I can explain the old ideas; though I suspect
most people familiar with "mainframe" machines know them, and I don't want
to write long tutorials of little interest, when writing them takes *so
long*.  Basically, you could have partitioned the memory, using the
segment registers as base registers, assumed a fixed 64K bound on process
size, and written your compilers using the small memory model.  The system
would not be secure (since assembly-language routines could just change
the segmentation registers and bypass the whole thing), but it would be
possible to demonstrate that programs written in a HLL would be reasonably
safe, as long as they didn't modify their code.  The result would have
been something like a single-CPU, multitasking 8080.  Such approaches may
seem impossible to the "do your own thing" hacker, but were quite common
in early machines; they simply required discipline in programming.]
-- 
UUCP: Ofc:  jer@peora.UUCP  Home: jer@jerpc.CCC.UUCP  CCC DNS: peora, pesnta
  US Mail:  MS 795; CONCURRENT Computer Corp. SDC; (A Perkin-Elmer Company)
	    2486 Sand Lake Road, Orlando, FL 32809-7642

tg@sfmin.UUCP (T.Glinos) (12/08/85)

> In several of the recent postings on IBM PC's, it's been argued that Unix
> can/can't run without memory management; counterexamples have usually been
> based on unix look-alikes, however.
> 
> In fact, Western Electric briefly provided a Unix without a need for any
> memory management, called "Mini-Unix", which ran on the PDP 11/03.  This
> was done by swapping whole process images to disk each time a context switch
> was done, in order to avoid having to do any relocation.

SCO has a version of UNIX called XENIX which does run
on an IBM-PC. It does it very nicely by the way.
XENIX System V should be available some time soon.

(Of course all the standard disclaimers apply)
	tom glinos

crandell@ut-sally.UUCP (Jim Crandell) (12/18/85)

In article <1825@peora.UUCP> jer@peora.UUCP (J. Eric Roskos) writes:
>  Basically, you could have partitioned the memory, using the
>segment registers as base registers, assumed a fixed 64K bound on process
>size, and written your compilers using the small memory model.  The system
>would not be secure (since assembly-language routines could just change
>the segmentation registers and bypass the whole thing), but it would be
>possible to demonstrate that programs written in a HLL would be reasonably
>safe, as long as they didn't modify their code.  The result would have
>been something like a single-CPU, multitasking 8080.

Congratulations.  You've just invented PC/IX.
-- 

    Jim Crandell, C. S. Dept., The University of Texas at Austin
               {ihnp4,seismo,ctvax}!ut-sally!crandell

gemini@homxb.UUCP (Rick Richardson) (12/19/85)

>Jim Crandell, C. S. Dept., The University of Texas at Austin writes:
>In article <1825@peora.UUCP> jer@peora.UUCP (J. Eric Roskos) writes:
>>  Basically, you could have partitioned the memory, using the
>>segment registers as base registers, assumed a fixed 64K bound on process
>>size, and written your compilers using the small memory model.
>
>Congratulations.  You've just invented PC/IX.

Nope, you invented Venix/86.  PC/IX didn't arrive for several more months.

Rick Richardson, PC Research, Inc. (201) 922-1134
..!ihnp4!houxm!castor!{rer,pcrat!rer} <--Replies to here, not to homxb!!!