Algorithm - version 1 Kernel and uspace have different requirements Kernel: some MD allocations are fixed address rest is allocated anywhere some allocations require alignment cannot use whole address space Userspace: some allocations are fixed address some allocations are hint address some allocations require alignment can use whole address space i386 is special need randomization need gaps