Probably the real bug is in libx86 or whatever it's called. If it wants to do *((char *)0) = 0x4f; it needs to ensure that the first page is mapped.