UNIX 1970/71 was implemented on PDP-11/20s, which had no memory mapping of protection, although BTL research later got an 11/20 with the KS-11 mapping option:
bell-labs.com/usr/dmr/www/pi…
bell-labs.com/usr/dmr/www/od…
bitsavers.org/pdf/att/unix/3… Unsurprisingly as few PDP-11/20s in Bell Labs would have had KS-11s.
dspinellis.github.io/unix-v4man/v4m…
bitsavers.org/www.computer.m…
stackoverflow.com/questions/3211…
Of course, this was not needed for brk(2).
This worked on PDP-11, VAX and others, BUT
caused great grief on early 68K systems
in-ulm.de/~mascheck/bour…
Computers could run faster if they didn't have to worry about exceptions & recovery from them :😃
SSV6/In PDP-11s, stack grew downward from top of address space. I’m pretty sure UNIX V4 did as later. trapped memory accesses below and “near” top of stack, and automatically grew the stack downward.
stackoverflow.com/questions/3211…
Of course, this was not needed for brk(2).
Can you fix & resume? Easily?
Still a thoughtful analysis of assumptions/contracts with signal handlers on aggressive CPUs.
Great paper if you can find copy.
Some of the first part might be a little hardware-heavy, but anyone who works near the hardware-software interface should read this. pp.239-246
If you are designing software tightly-coupled to highly-parallel/out-of-order hardware, think hard about this.