10

Новый пользователь Linux. Интересно, будет ли запуск Windows 7 внутри Ubuntu/Linux Mint через VMPlayer таким же, как запуск Windows 7 в качестве основной ОС.

Под "тем же самым" я особенно имею в виду:

  • Будет ли качество графики и видео рендеринга таким же хорошим?

  • Будут ли какие-либо проблемы с оборудованием, такие как использование HDMI или WiDi?

  • Будут ли приложения работать так же гладко, пока выделено достаточно оперативной памяти?

Насколько мощной должна быть машина, чтобы не было заметной разницы? Конкретные характеристики моей машины: http://www.gadgetspecs.info/2011/07/asus-u46e-bal5-review-of-specs-and.html. У меня также установлен SSD.

Предыстория: в настоящее время у меня установлены противоположные настройки для Linux Mint и Ubuntu в Windows 7, и я обнаружил, что качество видео не так хорошее, как в Windows 7.

5 ответов5

10

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

TL:DR: Виртуальные машины - это инструмент, и хотя они предоставляют простую возможность использовать одну ОС в другой, вы должны очень хорошо знать, каким будет ваше основное предназначение компьютера, чтобы полностью использовать систему. ,

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

Основная проблема заключается в том, что для безопасного управления доступом гостевых операционных систем к устройствам (и, таким образом, для предотвращения того, чтобы гостевая ОС топчется на хосте и ломается) все устройства, которые вы хотите использовать, должны быть "эмулированы".

Что это означает, что видеокарта , что ваш гостевой ОС можно увидеть не то же видеокарта , что ОС хоста может видеть. Возможно, вы сможете включить такие функции, как 3D-рендеринг в гостевой системе, но это обрабатывается промежуточным драйвером в вашей гостевой системе, который безопасно передает запросы хосту, чтобы 3D-изображение отображалось там.

Весьма сомнительно, что функции, подобные тем, которые необходимы для безопасного воспроизведения дисков blue-ray на поддерживаемом дисплее HDMI, эмулируются драйверами гостевой видеокарты, и, вероятно, это не будет работать.

По сути, все, что требует аппаратной поддержки на вашем хосте, вряд ли будет работать хорошо, если вообще будет работать с вашим гостем. Я не знаю, как работает WiDi, но если ему требуется прямой доступ к памяти вашей видеокарты, чтобы поделиться ею с телевизором, он не будет работать, если вы не используете его из операционной системы своего хоста (Linux).

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

В начале...

В начале у нас был компьютер, который мог работать только с одной операционной системой. Эта операционная система имела тенденцию работать хорошо только на конкретном процессоре и другом оборудовании, которое было в машине, а другие операционные системы могли работать плохо, если вообще работали, на доступном родном оборудовании.

Чтобы люди могли использовать программное обеспечение для одной конкретной платформы на другой платформе (например, использовать программное обеспечение Pre-OSX MacOS на Commodore Amiga), требовалось нечто большее, чем просто "установка программного обеспечения". Эти две машины использовали совершенно разные процессорные архитектуры и вспомогательное оборудование. Просто одна ОС не могла работать на оборудовании другого компьютера.

эмуляция

Эмуляция похожа на двоюродного брата в виртуализации, они на самом деле связаны и имеют схожие цели. Один родил другого как бы.

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

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

Проблема в том, что этот подход медленный. Проще говоря, вам повезло, если вы смогли достичь 1/10 скорости оригинального оборудования. Вы буквально нуждались в машине в несколько раз быстрее, чем ваша целевая эмулируемая машина, чтобы запустить эмулируемый компьютер практически на полной скорости.

Так что изменилось?

Ну, вот классная вещь. Не очень на самом деле. Единственным большим изменением было то, что аппаратные платформы были стандартизированы. Мы перестали получать нестандартное оборудование для каждой ОС, и все ОС перешли на единую стандартную платформу или были созданы на ней.

Компоненты, составляющие Mac в наши дни, - это в основном те же компоненты, что и ПК. Linux всегда работал на оборудовании ПК, так что ничего нового там нет.

В течение долгого времени эмуляция оставалась нормой, если вы хотели запускать программное обеспечение из одной ОС в другой. Или вы можете выполнить двойную загрузку и запустить любую операционную систему так, как вам хочется, но это сделало вас болезненным и раздражающим, если вы хотите перейти от кодирования в Linux к играм в Windows.

А потом..

Возникла идея, что, поскольку базовое оборудование одинаково, почему обе ОС не могут использовать его совместно?

Мы получили QEMU, WiNE и аналогичные программные решения. QEMU долгое время был фаворитом для жесткой эмуляции машин, в то время как WiNE позволяла приложениям Windows работать в Linux, перехватывая и исправляя их вызовы API-интерфейса ОС, и позволяя коду запускаться на процессоре.

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

Это привело к мгновенному увеличению скорости почти для каждой программы на машине, которая сейчас не эмулируется . Программы работали с замедлением, в большей степени зависящим от того, насколько они обращались к "виртуальному" оборудованию, а не от того, насколько хорошо машина могла эмулироваться. Вместо того, чтобы работать на 1/10 скорости, они теперь работали почти с такой же скоростью, как если бы они были изначально.

Итак, если мы сейчас работаем на процессоре, почему моя видеокарта не работает?

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

Однако это означает, что виртуальные машины не могут полностью уйти от эмуляции, по крайней мере, в методе. Им по-прежнему необходимо эмулировать определенные функции в программном обеспечении, например, графическую карту или сетевую карту, которые должны быть представлены ОС, работающей на виртуальной машине, чтобы операционная система "Гость" считала, что она полностью контролирует это оборудование. Основная ОС (по требованиям безопасности) должна защищать себя от программ, напрямую обращающихся к оборудованию, и это накладывает ограничения на гостевую операционную систему.

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

Это означает, что ваша виртуальная видеокарта не может и не будет иметь те же функции, что и ваша настоящая видеокарта. Чтобы добиться максимальной производительности, виртуальное оборудование может быть написано для поддержки наиболее часто используемых функций, а 3D-рендеринг теперь возможен на виртуальной машине, но он по-прежнему отличается от реального оборудования.

Что это означает, что операционная система хоста получает лучшие варианты аппаратного обеспечения, в то время как гостевая операционная система получает общие опции аппаратного обеспечения.

Виртуальная машина не так хороша, как реальное оборудование, это всего лишь инструмент, облегчающий работу с инструментами из одной системы в другую.

Так что мне делать?

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

Если вы хотите играть в новейшие игры на своей мощной видеокарте и использовать те же мощные видеокарты для воспроизведения фильмов в формате 1080p на своем телевизоре с диагональю 400 "HDMI, но только иногда хотите заняться программированием для Linux, то Windows может быть лучшим выбором с Linux в качестве гостя.

Если вы хотите работать с ядром Linux, создавать аппаратные драйверы для устройств на вашем компьютере, а иногда писать какое-то программное обеспечение для Windows и тестировать его на хорошем приближении к "стандартной" системе Windows, то, возможно, вам лучше с Linux в качестве хоста и Windows в качестве гостя.

Если вам нравится простота использования Mac, но вы хотите программировать для Windows (или вам нужен программный пакет, предназначенный только для Windows), то это тоже вариант.

Я не говорю, что Linux не может играть в игры или что MacOS не для программистов, потому что это просто ложь. Просто один человек, который может сказать, какая ОС больше подходит для того, что вы хотите сделать, это вы.

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

Чтобы ответить на ваши вопросы:

Will the graphics and video rendering quality will be just as good?

Нет. Эмулируемая графическая карта может обеспечивать некоторые функции графической карты хоста, но, скорее всего, она не будет поддерживать сложные функции, такие как аппаратное ускорение видео или функции программирования CUDA.

Will there be any hardware issue such as using HDMI or WiDi?

Опять же, эти дополнительные функции, скорее всего, не будут характерны для любого доступного эмулируемого / виртуального оборудования.

Will applications run just as smoothly as long as enough RAM is allocated?

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

8

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

Причина этого в том, что процессор может выполнять только одну инструкцию за раз. Программы обычно состоят из тысяч или миллионов машинных инструкций. Когда машина запускается, она сканирует основную загрузочную запись (MBR) на наличие загрузчика. Затем загрузчик запускает ядро. Ядро является основным процессом, который контролирует все оборудование. Многозадачность, которая заключается в переключении между несколькими задачами, позволяет нам запускать более одной программы одновременно, даже если в данный момент выполняется только одна программа. Большинство процессоров тратят только около 20% своего времени на выполнение математических вычислений. Многоядерные процессоры позволяют извлекать следующую инструкцию, ожидая, пока другое ядро выполнит математику, сокращая время простоя и значительно ускоряя работу системы. Помимо ядра, есть оболочка (которая предоставляет интерфейс для пользователей), службы / демоны (процессы, которые выполняются в фоновом режиме, например, для поддержки системы, безопасности и т.д.) И приложения.

Программное обеспечение для виртуализации - это приложение, которое, как и любое другое приложение, управляется ядром. Таким образом, ядро виртуальной машины должно ждать разрешения от ядра хоста, чтобы сделать что-либо, и будет часто прерываться. Чем больше процессов запущено в хост-системе, тем меньше времени выполнения будет выделено для ВМ, что замедляет работу. Виртуальные машины обычно работают в три-четыре раза медленнее, чем физические машины.

Если вы собираетесь запускать игры или что-то подобное, я бы выделил много оперативной памяти и как можно больше времени на ядро. Несколько процессоров помогают. Однако выделение слишком большого объема ОЗУ замедлит работу системы, так как для доступа к данным потребуется больше времени и может вызвать чрезмерное кэширование жесткого диска в хост-системе. Но, с другой стороны, слишком мало будет вызывать чрезмерное количество кэширования жесткого диска на гостевой. Поскольку Windows так жаждет ресурсов, я бы выделил как минимум от 2 до 4 ГБ ОЗУ, но не выделять более половины ОЗУ для ВМ.

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

6

Так. VMWare Player - это гипервизор типа 2. Это означает, что гость сидит поверх ОС. На гипервизоре типа 1 платформа виртуализации располагается выше аппаратного обеспечения. Именно потому, что VMWare Player находится на гипервизоре типа 2, он будет работать медленнее, чем что-либо на типе 1. Тем не менее, VMWare Player предлагает возможность настроить требования к оборудованию для вашей виртуальной машины. Поэтому, если у вас есть система с четырехъядерным процессором с 4 ГБ оперативной памяти, вы можете позволить себе предложить 1 или 2 ядра, а затем 2 ГБ ОЗУ (минимальное требование для Windows x64), чтобы иметь виртуальную машину, которая работает эффективно.

Например, у меня XPS 14z и Windows 7 на нем. Я также использую виртуальную машину Windows 7 - я выделил ей 2 ГБ ОЗУ и 2 ядра процессора (из моих 4).

Поэтому, когда я запускаю на нем программы (Notepad++, Transwiz, Outlook, Word, Excel и т.д.), Заметного замедления не происходит. Я никогда не пытался запустить на нем интенсивное программное обеспечение (Photoshop и т.д.). Таким образом, в зависимости от того, для чего вы его используете - гипервизор 2 типа может соответствовать или не соответствовать вашим потребностям. Если вы хотите использовать его для игр, это будет зависеть от игры. Я запустил на нем несколько игр Steam, и у меня не было никаких проблем (иногда я пересылаю с моей машины Fedora на свою виртуальную машину), но это действительно будет зависеть от требований игры. Для игр во всех смыслах я бы не использовал виртуальную машину для этого. Я играю на своей машине W7, а затем использую виртуальную машину (на самом деле Fedora) для других целей. Вы хотите, чтобы наиболее интенсивные приложения имели первый доступ к оборудованию.

1

Проблема с технологией VM заключается в том, что она не может обращаться к вашей физической памяти одинаково, если вы работали с реальной ОС, использующей указанную память. Образ виртуальной машины использует логическую адресацию памяти, если он работал с тем же физическим адресным пространством, что вы не сможете запускать обе операционные системы одновременно. Несмотря на то, что современные виртуальные машины прошли долгий путь, вы можете даже сказать, что качество игры составляет 90-95%, но им все еще не хватает возможности запускать ваши игры на полной скорости. Эти 90% -95% направлены исключительно на логическую адресацию по сравнению с физической адресацией памяти вашего компьютера. Теперь, когда речь идет только об аргументе адресации / выделения памяти, другая проблема заключается в том, что Windows использует DirectX, поскольку я знаю, что ни одно программное обеспечение для виртуальных машин, в том числе VMware, не имеет полной поддержки любого из последних DX. Так что, если вы используете что-то кроме DX 9, вы в значительной степени облажались.

QEMU на Linux, вероятно, лучший для игр!

1

Поэтому я установил Windows 7 в Linux Mint 12 через VMWare Player. Видео рендеринг Windows 7 внутри Linux Mint хуже, чем Windows 7 в качестве основной ОС. Я ничего не настроил и не знаю, нужно ли что-то настраивать, чтобы сделать видео рендеринг AVI файлов лучше.

Я обнаружил, что скорость запуска приложений на моей машине с 8 ГБ памяти высока. Это не было проблемой. Тем не менее, я не пробовал ничего сверх интенсивного использования памяти, такого как редактирование видео или фото. Просто обычные офисные приложения.

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