Интересно, как работает программное обеспечение для виртуализации, такое как VirtualBox или VMWare Workstation? Как они могут создать виртуальную среду, которая используется в качестве отдельного компьютера операционными системами? Я почти уверен, что ответ на этот вопрос очень глубок, но я был бы доволен базовой теорией.
Как работает программное обеспечение для виртуализации?
Ответ 1
Как работает VMWare: http://www.extremetech.com/article2/0,2845,1624080,00.asp
Как работает виртуализация: http://blog.tmcnet.com/voip-enterprise/tmcnet/how-does-virtualization-work-and-why-is-now-a-good-time-to-check-it-o.asp
Часто задаваемые вопросы о виртуализации серверов http://www.itmanagement.com/faq/server-virtualization/
Ответ 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.