A UNIX system normally has a memory management unit. It translates the physical address of memory into a pseudo-virtual address for application use. When the applications are compiled, they start at a fixed address and the CPU or the kernel's must find physical memory and make it appear at that virtual address. The kernel and the way the object files are produced and laid out must be changed. The kernel will load the added relocation information into physical memory using the kernel file loader, binfmt_flat.c. A debug option can be used to track progress.

