[comp.sys.mac.programmer] VM on PDP 11/70

robinson@prism.gatech.EDU (Stephen M. Robinson) (08/08/89)

In article <13271@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>leipold@eplrx7.UUCP (Walt Leipold) writes:
[Walt noted that unix ran on a DEC PDP 11/70 in just 64K, etc]

>[....] also Unix has virtual memory, so even though you only had
>64K, I think your real memory requirements might surprise you. [....]

While UNIX supports virtual memory, the 11/70 does not.  That 64K is all
you get on an 11/70.  In fact, VAX stands for something like Virtual Addressing
eXtension or some such.  I liked the 11/70 I used to be sysop for (under unix
2.9, mind you, not that *other* DEC OS) but it really only served as a machine
for undergraduate homework and small projects.  64K really isn't much...
-- 
Stephen M. Robinson, AI Group, School of Information and Computer Science
Georgia Institute of Technology, Atlanta Georgia, 30332-0280  404-894-8932
uucp:     ...!{allegra,amd,hplabs,uiucdcs,ut-ngp}!gatech!prism!robinson
Internet: robinson@prism.gatech.edu

dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) (08/08/89)

 [Stephen M. Robinson very gently pointed out that the 11/70 doesn't have
virtual memory.]

  hmmmmm, well then I guess this makes me look pretty foolish.  Guess I
should brush up on computer history.  I've never seen a Unix system without
virtual memory.  And how could you do all of this in 64k??  I would be
interested in how it was to use such a system.  Has Unix grown that much??
I couldn't concieve of using a BSD 4.3 style system in 64K of ram.  Any
comments from people who's used such systems would be appreciated, apparently
I've grown up in a totally different enviroment, and harbor some incorrect
views about what a "basic" unix system is. :-)

  Amazed that we've come so far.... and sorry for any confusion my previous
posting might have caused.
-- 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|/////////////////////////////////////////
David M. O'Rourke____________________|_____________dorourke@polyslo.calpoly.edu
|  God doesn't know, he would have never designed it like that in the first   |
|_ place. ____________________________________________________________________|

oster@dewey.soe.berkeley.edu (David Phillip Oster) (08/08/89)

In article <13277@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:

> [Stephen M. Robinson very gently pointed out that the 11/70 doesn't have
>virtual memory.]

>  hmmmmm, well then I guess this makes me look pretty foolish.  Guess I
>should brush up on computer history.  I've never seen a Unix system without
>virtual memory.  And how could you do all of this in 64k??  I would be
>interested in how it was to use such a system.  Has Unix grown that much??

Sorry to bother the comp.sys.mac.programmer crowd with this. David, don't
be so quick to apologize, Stephen is absolutely wrong.  The PDP-11/70 only
has a 16-bit program counter, so you'd think it can only address 64k. But,
the memory mapping registers map the program counter into one 64k space,
and the data registers into a second 64k space. This was known as split i
& d space.  Each program gets its own pair of i&d space, and the kernel
gets _its_ own space. So, you had virtual memory, but on a whole system
basis. A single program could get no bigger than 128k bytes. Since the
operating system has direct access to the memory mapping registers, it can
be much larger than 128k by accessing other memory spaces as needed.

Now, the Macintosh connection: that Unix system had a huge latency: if you
typed a key, it might be as long as 5 seconds before your job came around
again, and your keystroke got processed. That is okay,if the PDP-11 had a
serial communications card and a high-priority device driver queueing up
characeters for you.

Lets look at the Macintosh. You are in a Paint program, and begin to make
a stroke with the mouse. There is no way you can afford to wait 5 seconds
before that stroke begins to echo.

Unix is okay, but the pipeline components Stephen puts such store by:
sort, ls, grep, awk, and the rest are essentially non-interactive. You
start them up and wait for them to finish. If you want interactive
performance on a wimpy old slow 68000, you don't want unix.

--- David Phillip Oster            --"Unix Version 7 was an improvement not
Arpa: oster@dewey.soe.berkeley.edu --only over its predeccessors, but also its
Uucp: {uwvax,decvax}!ucbvax!oster%dewey.soe.berkeley.edu --successors."

robinson@prism.gatech.EDU (Stephen M. Robinson) (08/08/89)

In article <30466@ucbvax.BERKELEY.EDU> oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) writes:
>In article <13277@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>
>> [Stephen M. Robinson very gently pointed out that the 11/70 doesn't have
>>virtual memory.]
>
>>  hmmmmm, well then I guess this makes me look pretty foolish.  Guess I
>
>Sorry to bother the comp.sys.mac.programmer crowd with this. David, don't
>be so quick to apologize, Stephen is absolutely wrong.  The PDP-11/70 only
>has a 16-bit program counter, so you'd think it can only address 64k. But,
>the memory mapping registers map the program counter into one 64k space,
>and the data registers into a second 64k space. This was known as split i
>& d space.  Each program gets its own pair of i&d space, and the kernel
>gets _its_ own space. So, you had virtual memory, but on a whole system
>basis. A single program could get no bigger than 128k bytes. Since the
>operating system has direct access to the memory mapping registers, it can
>be much larger than 128k by accessing other memory spaces as needed.

Whoa...  Alright, yes, an 11/70 has separate instruction and address space.
However, this does *not* constitute virtual memory with all the requisite
disk space, paging mechanism (and caching, etc).  Not only that but "i-space"
cannot be used for data and vice versa.  You *are* limited to 64K of program
and 64K of data in user applications.  I thought the kernel was similarly
limited but I guess not.  Sorry David, now *I* look somewhat foolish, eh?
(But then I don't really care.)

>Now, the Macintosh connection: that Unix system had a huge latency: if you
>typed a key, it might be as long as 5 seconds before your job came around

We never had this kind of slow reponse, not even with 25-30 users logged on.
Now our old VAX used to get really slow when 18-20 were logged on .....

[.....]

>Unix is okay, but the pipeline components Stephen puts such store by:
[Hey, where did i "put store by" these things in my message? I didn't, but in
fact pipelining is one of unix's big wins for me so you must have read
between the lines :-)]
>sort, ls, grep, awk, and the rest are essentially non-interactive. You
>start them up and wait for them to finish. If you want interactive
>performance on a wimpy old slow 68000, you don't want unix.
What about on a 68030 or 040?  What's a Sun anyway?  You can't run VM on
a 68000 (that's why sun2's had 68010's in them) anyway, so that's not the
problem.  I think the Mac OS is great for cetain kinds of document preparation
and for novices/infrequent users but not for many kinds of program development,
etc.  I own a Mac+ myself and love to use it for my paper writing, etc.  But,
I'd rather have a Sequent or Sun4, etc and Unix or better yet a Symbolics
for Lisping anyday for programming, data analysis, etc.  Enough rambling -
I'm way off the original posting about running unix on small machines, etc.
[I promise the comp.mac.pgmming crowd I won't post again on this subject...]
-- 
Stephen M. Robinson, AI Group, School of Information and Computer Science
Georgia Institute of Technology, Atlanta Georgia, 30332-0280  404-894-8932
uucp:     ...!{allegra,amd,hplabs,uiucdcs,ut-ngp}!gatech!prism!robinson
Internet: robinson@prism.gatech.edu

km@cadre.dsl.PITTSBURGH.EDU (Ken Mitchum) (08/08/89)

Don't forget BSD 2.9. We used to run it on an 11/34 with 5 mb total
disk space and 256K ram. The wonderful 18-bit address space.

 Ken Mitchum
 km@cadre.dsl.pitt.edu

wilson@ucbarpa.Berkeley.EDU (James E. Wilson) (08/09/89)

In article <1404@hydra.gatech.EDU> robinson@prism.gatech.EDU (Stephen M. Robinson) writes:
>Whoa...  Alright, yes, an 11/70 has separate instruction and address space.
>However, this does *not* constitute virtual memory with all the requisite
>disk space, paging mechanism (and caching, etc).  Not only that but "i-space"
>cannot be used for data and vice versa.  You *are* limited to 64K of program
>and 64K of data in user applications.  I thought the kernel was similarly
>limited but I guess not.  Sorry David, now *I* look somewhat foolish, eh?

Yes, you are looking very foolish indeed, since David is correct that the
PDP-11 supports virtual memory.  The PDP-11 has a segmented memory architecture.
It supports 8 segments of up to 8K each.  The virtual addresses used by the
CPU are translated into a physical address for accessing memory, by way of the
segment tables.  Caches and paging are not necessary for virtual memory.
The key point is that although the CPU uses 16 bit virtual addresses, a PDP-11
could have any amount of physical memory (up to 4 Megabytes on later models)
because of the address translation hardware (i.e. virtual memory).

Also, I would like to point out that the 64K address limit has nothing to
do with virtual memory.  After all, *ALL* machines have addressing limits,
the PDP-11's just happens to be smaller than most.  That is why DEC came out
with the VAX (Virtual Address eXtension), the VAX did not add virtual memory
(the PDP-11 already had it), what it did was eXtend the address range, and
make paging easier to implement.

Jim
wilson@ucbarpa.Berkeley.EDU

jimc@iscuva.ISCS.COM (Jim Cathey) (08/09/89)

In article <13277@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>... I've never seen a Unix system without
>virtual memory.  And how could you do all of this in 64k??  I would be
>interested in how it was to use such a system.  Has Unix grown that much??

I had a roommate who had a Morrow Decision 1 computer a few years back
that ran a derivative of version 6 Unix called Micronix.  It required
at least 128/192K of RAM to work.  It wasn't any speed demon, but it
ran, and you could use it to get work done.  The most interesting part
is that the MD1 computer had a 4 MHz Z-80 as the CPU!  No virtual there
you can bet.  (You needed 192K of RAM to run the CP/M emulator -- 128K
would get the system up, but it wasn't very usable that way.  For more
than 1 user you had to add more RAM if you didn't want to thrash the disk.)

Regarding wimpy 68000's running Unix and having lousy interactive performance
-- that's what I'm writing this on now.  Specs:  7 MHz CPU, 1M RAM, no disk
(file server), clone of System 5 Unix.  Runs just fine, we're basing
our product line on this puppy.  By the way, the graphical window
manager and a few support programs run on the 512K RAM version of this
workstation without any problem (you really need the 1MB version to use
a shell and the like, but [like X] you can run your programs anywhere
and put the display anywhere else).  The kernel takes just about 256K
of RAM, the video 38K (monochrome), leaving the rest for normal tasks.
F--k Berkeley and the 4MB kernel they slithered in on.  It _is_ possible
to get performance and features without doing it in virtual hog-heaven,
you've just got to put a little work into it.

Just a proud papa.

+----------------+
! II      CCCCCC !  Jim Cathey
! II  SSSSCC     !  ISC-Bunker Ramo
! II      CC     !  TAF-C8;  Spokane, WA  99220
! IISSSS  CC     !  UUCP: uunet!iscuva!jimc (jimc@iscuva.iscs.com)
! II      CCCCCC !  (509) 927-5757
+----------------+
			"With excitement like this, who is needing enemas?"

dbb@aicchi.UUCP (Ben Burch) (08/11/89)

In article <13277@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>
> [Stephen M. Robinson very gently pointed out that the 11/70 doesn't have
>virtual memory.]
>
>  hmmmmm, well then I guess this makes me look pretty foolish.  Guess I
>should brush up on computer history.  I've never seen a Unix system without
>virtual memory.  And how could you do all of this in 64k??  I would be
>interested in how it was to use such a system.  Has Unix grown that much??
>I couldn't concieve of using a BSD 4.3 style system in 64K of ram.  Any
>comments from people who's used such systems would be appreciated, apparently
>I've grown up in a totally different enviroment, and harbor some incorrect
>views about what a "basic" unix system is. :-)
>
>  Amazed that we've come so far.... and sorry for any confusion my previous
>posting might have caused.
>-- 
>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|/////////////////////////////////////////
>David M. O'Rourke____________________|_____________dorourke@polyslo.calpoly.edu
>|  God doesn't know, he would have never designed it like that in the first   |
>|_ place. ____________________________________________________________________|

Well, understand that this is from memory, but:
 
The PDP-11/70, while it did not have "virtual memory", did have a paged memory
management architecture which allowed the remapping of 8kb segments of a
tasks 64kb addressing space into a much larger physical addressing space.
I believe that one could shove 4Mb into an 11/70.  This is additionally
compicated by there being executive, supervisor, and user mode addressing
contexts, and seperable I and D spaces.  The current release of RSX-11M+,\
DECs hot OS for this architecture, makes extensive use of these features.
The only data I have on the original Unix implementations for the PDP-11
indicate that paged overlay to disk (explicit, not virtual) was made use of.
Indeed, this is commonly the method on RSX-11M[+] systems, since memory
resident overlays must be swapped in such large segments.  Note that there
are many wierd control bits in the memory management hardware on these
systems which were never used by DEC software, and which seemed to make
a virtual memory system possible with much software assistance.  I have
heard that a Chicago typesetting firm, "Datalogics" (?) did such a hack
to an old version of DOS-11...
 
-Ben Burch
(aicchi!dbb)

gt0818a@prism.gatech.EDU (Paul E. Robichaux) (08/14/89)

Why don't we move this discussion elsewhere?
e

-- 
Paul E. Robichaux                  |          REMEMBER the HOSTAGES!!
Georgia Institute of Technology    | (and don't let that SOB Obeid go, either)  
GT PO Box 30818; Atlanta, GA 30332 |============================================
Internet: gt0818a@prism.gatech.edu |   All opinions in this message are mine.