Как работает программное обеспечение для виртуализации?

Интересно, как работает программное обеспечение для виртуализации, такое как VirtualBox или VMWare Workstation? Как они могут создать виртуальную среду, которая используется в качестве отдельного компьютера операционными системами? Я почти уверен, что ответ на этот вопрос очень глубок, но я был бы доволен базовой теорией.

Ответ 2

В самом основном смысле, программное обеспечение для виртуализации ставит компьютер на другом компьютере... вроде. (Здесь ссылка, которая очень, очень простая: http://blog.capterra.com/virtualization-software)

В более сложном смысле программное обеспечение виртуализации (также называемое гипервизором) абстрагирует характеристики сервера. Это позволяет запускать несколько ОС на одном физическом сервере.

Ответ 3

В простейшем смысле виртуализованная среда относится к родной среде, какой интерпретируемый язык, такой как PHP, Javascript или Basic, относится к скомпилированному языку, например C, С++ или ассемблеру.

Когда скомпилированный двоичный файл выполняется, двоичный машинный код передается прямо в CPU. Однако, когда язык интерпретируется, приложение языка читает в коде, затем оно решает, что это значит, и выполняет двоичные процедуры, чтобы отразить это.

Итак, программное обеспечение для виртуализации, такое как Qemu, в то время как скомпилировано для запуска, скажем, процессор x86, будет читать двоичный файл, предназначенный, например, для Mac, и будет интерпретировать полученный бинар, переключать его с большого, на маленький, а затем знаете, что код op X на mac соответствует операционному коду Y на x86, а этот код op на Mac не имеет эквивалента на x86, поэтому ему нужно вызвать функцию B на x86 и так далее.

Действительно умный бит - это аппаратная интерпретация, где кто-то должен написать драйвер, который будет работать на Qemu, на x86, но представит интерфейс для Mac-лица Qemu, чтобы заставить Mac-приложения думать, что они разговаривая с оборудованием Mac.