Почему их 2, и почему надо разделять я быстро нагуглил)
кстати, пока не было виртуализации и всякие vmware должны были применять бинарную трансляцию для запуска гостевых ос, у них использовалось 3 из 4х уровня (0 - их гипервизор, 2-ой кажется гостевое ядро, 3 - гостевой user space). ну и всякие трюки с пределами сегментов, чтобы выход за пределы процесса сразу отлавливать