Unmap the page containing NULL, use -fno-delete-null-pointer-checks.
Separate kernel and user code.  Add two simple user-space programs.
A basic MMU.  Allocates physical pages, and maps them to virtual pages.
Add a panic function.
Print the amount of available memory.