Чем виртуализация отличается от эмуляции с точки зрения структуры?

Кто-то сказал мне, что программа виртуализации, такая как VirtualBox, работает не так, как эмулятор, в том смысле, что она не эмулирует регистры и использует фактические для виртуализированных данных, которые находятся на процессоре. Эмуляторы должны эмулировать регистры, поскольку они в основном предназначены для выполнения программного обеспечения, зависящего от внешней среды (например, эмулятору Genesis требуются регистры и адреса памяти Motorola 68000, поэтому разработчик должен предоставить эти ресурсы в виде эмулируемые регистры).

Мой главный вопрос заключается в том, как развивается виртуализация? Как мы можем позволить всей операционной системе работать как процесс на виртуальной машине, но заставить ее работать независимо, все еще используя фактический процессор? Я знаю только эмуляцию, а не виртуализацию, так что, если бы кто-нибудь мог помочь, это было бы здорово!

PS: Я спрашиваю не только о том, в чем разница, но и о различиях в том, как они запускают программное обеспечение.