News for hackers. Stuff that matters.
Re:Busy Being Born (2004) by getpost on Sunday May 16, 2021 @09:11PM (#27178995)
Two obscure features of the Lisa that weren't retained on the Mac (IIRC):

Pixels on the Lisa were not square. Tall rectangular pixels made for better font rendering.

The Lisa had virtual memory? Not sure about that, but there was a neat feature that trapped stack overflows. The OS could expand the stack with the overflow trap was triggered.

Re:Busy Being Born (2004) by Taniwha on Monday May 17, 2021 @12:33AM (#27180067)
The Lisa had a base&bounds MMU (a bit like a pdp-11) not a full paging MMU - we ported pre-sysVr2 (ie pre paging) Unix to it
Re:Busy Being Born (2004) by cmrdporcupine on Monday May 17, 2021 @10:51AM (#27184109)
I need to read up on the Lisa MMU some more, it's interesting because my impression was that 68k in general was not friendly to these things as it was not possible to recover from a bus error.

Is the idea that you couldn't demand page, but that there'd be memory protection of some kind through the MMU for the entire process by rewriting addresses?

I remember reading that some workstation vendors ran two 68k CPUs in parallel in order to make it possible to recover from a bus error. Until the 68010 was released with the fix for this.

Re:Busy Being Born (2004) by Taniwha on Tuesday May 18, 2021 @08:39PM (#27203207)
I used to port Unix to 68ks - there were several ways to get around this issue - 68010s could happily take a page fault, or you could use the (tacky and expensive) two 68k thing (few did, it was a real pain).

For a traditional swapping kernel (ie anything prior to SVr2) the only time you ever needed to be able to recover from a page fault was when you did automatic stack extension, there was a simple solution to this, have the compiler emit a "tst n(sp)", or similar instruction at every subroutine entry - because it was an instruction without side effects the kernel could recognise it, extend the stack space (by enough extra to be able to do the next call, hence the 'n') and resume execution by faking the appropriate kernel stack frame