​below....​

On Wed, Dec 7, 2016 at 11:46 AM, Erik E. Fair <fair-tuhs@netbsd.org> wrote:
Which is to say, when did Unix run on (and properly use) computers with memory management units (MMU)?
​Two answers ....   the 11/20 did not have an MMU officially.  ​
 
​DEC's Custom Special Systems (CSS) group (the same group that spliced an 11/15 disk on to the PDP-7 for Bell Labs) build a simple base/limi register device, soon after the 11/20 was released.   Ken and Dennis had one of theses.  So an early version of after the original 11/20 port from the PDP-7 had this however.....

I would look at Warren's First Edition work to see if there were dregs of this in that code base to start to try to date it.

As Noel points out the first "official" PDP-11​with an MMU as standard with it, was indeed the 11/45 (the 11/40 class which included the 35, 60, 34 etc.. came later).  Ken & Dennis got one of the first 11/45s.   It is also noted that the 45 class system (45/55/70/44) had "17th" address bit - i.e. split I/D space.  I believe that this is when  "magic numbers" were really introduced so that could be supported.    I think this is around 3th or 4th edition.  

One imagines that many pointer mistakes (bugs) in assembly or C were discovered and squashed in that version, modulo the historical unhappiness resulting from address zero containing a zero if dereferenced ("NULL pointers") in process address space.

What year did that come about?
​Diomidis is incorrect that SunOS was the first Unix to set page 0 to zero.   This was actually forced by a number of the Unix ports much, much earlier.   The "NUXI" problem and the Page 0 were two of the issues that guys that did the port to the IBM Series/1.  I want to say that was 1979 or maybe 1980 timeframe.   IIRC: that was the Winter Usenix in Boulder CO ("The Black Hole" - conference) when I first remember it being described.

It was a well known issue when many of the 7th edition ports began.   The problem was the some UNIX application bet in it,   The biggest sinner that relied on that behavior for the Bourne Shell and how it did memory management.   Almost every port that could not name page 0 writable and with a 0 in location, had difficulties with their Unix port, although most created some strategy to find and fix the issues.

By the time of SunOS, a number of firms were making it page zero and opton, including BSD itself. By the early 1980s, while I can not claim I invented it, as I had seen other folks do/talk about it previously at USENIX conferences, but thought it was a good idea.   So, I had hacked up the CAD system at UCB's because our team wanted it for debugging some of the codes we were getting from an unnamed computer company who's OS worked different.   It was an optional link and not for production, I thought of it as a debug tool.  I know I gave the hack to Sam at one point, but I do not remember it making it into the mainline.

But by the mid 1980s, a number of firms made it either standard or an option like SunOS - because it was a useful debugging tool.

Clem