From mboxrd@z Thu Jan 1 00:00:00 1970 From: dds@aueb.gr (Diomidis Spinellis) Date: Wed, 7 Dec 2016 19:31:22 +0200 Subject: [TUHS] Unix & Memory Management Units (MMU) In-Reply-To: <12385.1481129198@cesium.clock.org> References: <12385.1481129198@cesium.clock.org> Message-ID: <32c3f08c-9c04-bdeb-82b2-2bfcf1757ddd@aueb.gr> On 07/12/2016 18:46, Erik E. Fair wrote: > 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. I remember Jan-Simon Pendry telling me in the 1980s, that the NULL dereference check was first introduced in SunOS with much pain due to the resulting crashes. In BSD Unix, which preceded it, the VAX MMU was setup with a page in virtual address 0 that would contain the value 0 at that address. (BSD Unix offered memory protection. I assume it had this setup for backward compatibility.)