1

Когда я использую виртуальную машину на своем ноутбуке i5, она эмулирует каждую инструкцию или она работает нормально?

На сколько снижается скорость? Особенно меня интересуют QEMU и VirtualBox ; как они работают? Будут ли они запускать игры без проблем?

2 ответа2

5

Это зависит от вашего программного обеспечения для виртуализации. В основном у вас есть три варианта:

  1. Эмулируйте весь компьютер, включая процессор.
  2. Запустите программное обеспечение как есть, используя аппаратное обеспечение хоста, но перехватите несколько системных вызовов и инструкций.
  3. Измените программное обеспечение так, чтобы оно работало на оборудовании хостов, но инструкции, которые были бы перехвачены 2), теперь заменены другими процедурами.

Все три работы. Все три в использовании. Все три имеют разные характеристики производительности.

1) подражать
Это всегда будет самый медленный вариант. У него есть два преимущества:

  • Вы можете эмулировать совершенно другой хост (например, эмулировать компьютеры на базе ARM на AMD64).
  • Вам не нужно никакой аппаратной поддержки.

2) Перехват системных вызовов

Этот ответ в основном основан на AMD64. Современный процессор x86 имеет несколько уровней с разными разрешениями. Это так называемые кольца. Программное обеспечение VM берет на себя кольцо 0 (кольцо с наибольшим количеством разрешений) и получает право делать что угодно на компьютере. Программное обеспечение на компьютере (и хост, и виртуальные машины) этого не замечают. Используя эти права, он гарантирует, что несколько ОС не мешают друг другу.

В результате обычный код работает на полной скорости (тестирование dnetc показало около 99% скорости в виртуальной машине). Код, который выполняет системные вызовы, перехватывается и изменяется, и, следовательно, работает намного медленнее. Обычно чистым результатом этого является потеря скорости на несколько процентов.

3) Модифицированный код

Вместо перехвата системных вызовов в режиме реального времени вы можете заранее изменить программное обеспечение. Таким образом, ваш код может быть немного быстрее, но вам нужно заранее изменить программное обеспечение.


Especially I am talking about QEMU and virtualbox, how are they?

У меня есть друг, который является программистом. Она посмотрела на код QEMU. Рекомендуемый совет - не трогать его. Когда-либо. Даже с 10-футовым шестом. QEMU работает с готовой конфигурацией, но часто выходит из строя, если вы не используете настройки по умолчанию. Он распределяет ресурсы и никогда не проверяет, удалось ли это ... Я мог бы продолжать, но чем меньше упомянуто, тем лучше.

Virtualbox: я использовал virtualbox один раз. Это сработало. Версия для Windows имела приятный понятный интерфейс. Я не проверял ни производительности, ни игр.

Will it run games without problems?

Единственные игры, которые я запускаю, находятся под Vmware (игроком). Это сработало достаточно для 2D игр. 3D-игры обычно ломают мой компьютер (как Vm, так и хост).

1

В VirtualBox, если вы включили расширенные функции и аппаратную виртуализацию, вы предоставляете собственные поддерживаемые функции вашего процессора / процессора для гостевой ОС. Производительность зависит от объема ОЗУ и количества процессорных ядер, которые вы выделяете. Хотя выделение фиксированного объема ОЗУ и ядра ЦП не будет использоваться постоянно, потому что это зависит от того, что вы используете в ВМ или гостевой ОС.

Скажем, я выделил 1 ГБ оперативной памяти и одно ядро процессора. Затем я запускаю интенсивное приложение на гостевой ОС, такое как MATLAB, которое будет использовать все доступные ресурсы. Вы даже можете отслеживать, что потребляет их в диспетчере задач.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .