@kairos_jason hello!
Good observation! In the current system, we reserve one MPU region to prevent dereferences of addresses around physical zero, even in privileged code. This is intended to catch null pointer dereferences in the kernel, unlikely as they may be.
I felt we needed to do this because many ARM M-profile microcontrollers map valid memory around address zero, so dereferencing null silently succeeds.
If we maintained a separate set of MPU regions for the kernel and swapped them out at context switch, we could free up this region for use by tasks. So far we haven't tried this, and the processors we're using don't make it easy.
Send me any more questions you run into!
#hubris #rustlang