i suppose he'll have to subscribe to the list. one difference in the plan9 code from the xbsd and especially lunix approach is that the mmu code starts with the view that the system software thinks it would like and gets the hardware-specific code to implement (just) that with the actual hardware, rather than pushing a clutch of hardware-specific (sorry, x86 or vax or sun) properties and data structures throughout the rest of the kernel. it makes porting easier because there's less handbook to fuss over. i look (say) at pages and pages of complex data structures for arm, sparc, and powerpc mmu descriptions, often different in each revision, and i am grateful i need only locate the tiny subset that i really need to use. of course, as with compilers or anything else that needs a portability interface, if there's an enormous mismatch between the portable code and a particular platform, you need to decide whether and what to change, but you still retain the software-oriented structure. in some cases, it's worthwhile completely ignoring the `clever' mechanisms the hardware designer provided, and just programming what you need.