Программное обеспечение в виртуальной машине выполняется непосредственно на процессоре главного компьютера, в то же время VirtualBox использует набор сложных методик, чтобы не допустить операций, которые вмешались бы в работу хоста.
Всякий раз, когда гость пытается сделать то, что может быть опасным для вашего компьютера и его данных, VirtualBox принимает меры. Для большого количества аппаратных средств, которые использует гость, VirtualBox моделирует определенную "виртуальную" среду, согласно конфигурации виртуальной машины. Например, если гость пытается обратиться к жесткому диску, VirtualBox переадресовывает эти запросы к объекту который вы сконфигурировали как виртуальный жесткий диск - обычно это файл образа диска на вашем хосте.
Существует два способа, которыми VirtualBox реализует "виртуализацию": полностью программный способ или аппаратный используя специальные аппаратные возможности современных процессоров.
Новые процессоры Intel and AMD имеют поддержку так называемой "аппаратной виртуализации". Она помогает программному обеспечению виртуализации, такому как VirtualBox, в прерывании потенциально опасных операций , которых операционная система гостя может пытаться выполнить.
Реализация этих функций различны в Intel и AMD. Intel назвала свою технологии VT-x, а AMD как AMD-V.
На большинстве систем, сначало необходимо включить поддержку аппаратной виртуализацию в BIOS чтобы VirtualBox смог ее использовать
В отличии от других систем виртуализации, VirtualBox не требует, чтобы система хосте поддерживала аппаратную виртуализацию . VirtualBox поддерживает много гостевых операционных систем полностью в программном режиме виртуализации. Это означает, что Вы можете запускать виртуальные машины даже на менее современных процессорах, которые не поддерживают аппаратные средства виртуализации.
Вы можете указать для каждой виртуальной машины индивидуально, должен ли VirtualBox использовать программный или аппаратный способ виртуализации. До версии 2.2 программная виртуализация была значением по умолчанию; начинаясь с версии 2.2, VirtualBox устанавливает аппаратную виртуализацию по умолчанию для новых виртуальных машин, которых вы создаете. (Для уже существующих виртуальных машин смена режима автоматически не происходит, по причинам совместимости, и установленное значение по умолчанию может быть изменено для каждой виртуальной машины.)
Включение апаратной вертуализации необходимо только в двух случаях:
для некоторых редких гостевых ОС, например OS/2 , которые используют специфические команды процессора и которые не реализованы в VirtualBox
если вы хотите работать с 64 битовыми гостевыми ОС (начиная с VirtualBox версии 2.0), большинство 64 битных CPU поддерживают аппаратную виртуализацию - исключая старшие линейки процессоров Intel Celeron и AMD Opteron .
Установка аппаратной виртуализации по умолчанию, вызвана тем что, технологии виртуализации Intel, ADM и VirtualBox значительно улучшились, и аппаратная виртуализация в большинстве случаях производительнее программной.
Не работайте одновременно с другими гипервизорами (программами исполнения виртуальных машин) (open-source or commercial virtualization products) с VirtualBox! Несколько гипервизоров могут обычно устанавливаться параллельно на одной системе, но не пытайтесь выполнить несколько виртуальных машин на различных гипервизоров в одно и то же время. VirtualBox не может проследить за тем, что другой гипервизор пытается сделать на том же самой системе, и особенно если они одновременно пытаются использовать возможности аппаратной виртуализации, такие как VT-X, что может превести к краху всей системы.
Кроме "базовой" аппаратной виртуализации, ваш процессор может поддерживать дополнительные технологии:[1]
Наиболее новая технология "nested paging" позволяет управлять памятью хоста, что позволяет усилить производительность , т.к. не требуется программное управление памятью.
На AMD процессорах, nested paging стала доступна начиная с архитектуры Barcelona (K10) ; Intel добавила поддержку nested paging, которую она назвала "extended page tables" (EPT), в свих процессорах Core i7 (Nehalem).
Технология Nested paging не устанавливается по умолчанию, но она может быть установлена отдельно для каждой ВМ.
Если ваш компьютер поддерживает nested paging (AMD-V) or EPT (VT-x), то вы можете получить значительный прирост производительности используя эту технологию.
Другая аппаратная возможность называется "Virtual Processor Identifiers" (VPIDs) позволяет значительно ускорить переключение контекста Translation Lookaside Buffers (TLBs) процессора, уменьшая количество операции записей на диск . Чтобы использовать эту возможность вы должны использовать командную строку; см Section 8.5, “VBoxManage modifyvm”.
[1] Поддержка AMD nested paging добавлена в VirtualBox 2.0 ; поддержка Intel EPT и VPIDs добавлена в версии 2.1.