Виртуальные машины не понимают, что происходит внутри, они просто моделируют оборудование.
Существует 3 основных метода моделирования ВМ. Наиболее очевидным является аппаратная эмуляция, чем и занимается Bochs. Это просто программный симулятор x86-совместимого ПК без какой-либо более глубокой магии. ПК - это машина для обработки данных, поэтому Bochs просто использует хост-ОС для сбора входных данных и передает их на эмулируемые виртуальные устройства, затем считывает выходные данные с этих устройств и использует хост для их представления. Это именно то, что делают консольные эмуляторы и подобные программы. Bochs не знает, что происходит внутри виртуальной машины, он работает на голом эмулируемом оборудовании. Понятие процессов слишком абстрактно для него, оно не должно заботиться о таких вещах - просто аппаратная эмуляция.
Второй тип виртуальных машин - это то, что было распространено до внедрения виртуализации с аппаратным ускорением. Эмуляция в стиле Bochs медленная, потому что она интерпретирует машинный код побайтово. Запуск голого байт-кода невозможен в работающей ОС из-за того, как работают процессоры (и они работают так по веской причине), но приложение может взять кусок байт-кода и отредактировать его, чтобы сделать его безопасным для выполнения в хост-ОС, затем выполните его как свой собственный код. Этап редактирования служит двум целям: он дезинфицирует код, чтобы сделать его возможным, и подключает моделируемые устройства ввода-вывода к соответствующим источникам данных / целям хоста. Тем не менее, ничего похожего на процессы для ВМ не существует, это просто псевдоэмулируемый код на физическом процессоре, притворяясь, что это код программы.
Наконец, третий тип виртуальных машин - виртуализированные виртуальные машины с аппаратным ускорением. Требуется поддержка аппаратного обеспечения, но она есть у всех современных процессоров. Речь идет о том, что раньше я говорил, что невозможно: запускать низкоуровневый код параллельно с операционной системой хоста. Дело в том, что если он встроен в процессор, вы можете позволить ему правильно обрабатывать код. Это создаст среду песочницы для этого кода, предоставляя хосту контроль над этой песочницей. Таким образом, код виртуальной машины выполняется еще ближе к оборудованию, поэтому он работает быстрее. Это также ближе к использованию аппаратной кольцевой системы, но все еще не представляет точную концепцию процессов. Они всегда обрабатываются гостевыми ОС. Но в виртуальных машинах с аппаратным ускорением вы действительно можете увидеть нечто похожее на переключение контекста, например на хосте. Другие виды виртуальных машин всегда работают как программы уровня пользователя.