Традиционно исполняемым файлам назначается фиксированное сопоставление виртуальных адресов во время компиляции. Однако в последние годы стало очевидно, что это плохо для безопасности - злоумышленники могут использовать свои знания о том, где именно находится память, как часть эксплойта. Чтобы помочь смягчить это, можно использовать независимые от позиции или перемещаемые исполняемые файлы, чтобы адрес загрузки был рандомизирован (по крайней мере, в Linux). Однако это связано с недостатком - запуск программы занимает больше времени, так как динамический загрузчик должен выполнять перемещения (либо это, либо есть дополнительные издержки во время выполнения из независимого от позиции машинного кода).
Для ядра ОС дополнительные издержки тривиальны по сравнению с остальной частью времени, затрачиваемого на загрузку; действительно, ядро Windows фактически динамически связывает многие из его компонентов. Таким образом, ядро является очевидным местом для рандомизации адреса загрузки.