Я приложил много к моему ответу ниже, но я сохранил свой первоначальный ответ нетронутым для справки.
TL:DR: виртуальные машины являются инструментом, и в то время как они предлагают простую возможность использовать одну ОС в другой, вы должны быть очень осведомлены о том, что ваше предполагаемое основное использование компьютера будет для того, чтобы в полной мере использовать систему.
ваш вопрос, похоже, сильно наклонен в сторону графических и интерфейсных возможностей использования виртуальная машина и поэтому я отвечу по возможности.
основная проблема заключается в том, что для безопасного управления доступом гостевых операционных систем к устройствам (и, таким образом, предотвратить гостевой ОС от вытаптывания хоста и ломать вещи) все устройства, которые вы хотите использовать должны быть "эмулированы".
что это означает, что видеокарта, что ваша гостевая ОС может видеть не та же графическая карта, которую видит ваша хост-ОС. Вы можете быть возможность включения таких функций, как 3D-рендеринг в гостевой системе, но это обрабатывается промежуточным драйвером в гостевой системе, который передает запросы до хоста безопасным способом для 3D-рендеринга там.
очень сомнительно, что функции, подобные тем, которые необходимы для безопасного воспроизведения дисков blue-ray на поддерживаемом дисплее HDMI, эмулируются драйверами гостевой видеокарты, и поэтому это, вероятно, не сработает.
в основном все, что требует аппаратной поддержки на вашем хостинге, скорее всего, не будет хорошо работать, если вообще, в вашем ГОСТе. Я не знаю, как работает WiDi, но если ему требуется прямой доступ к памяти вашей видеокарты, чтобы поделиться им с телевизором, он не будет работать, если вы не используете его из операционной системы вашего хоста (Linux).
кроме этого с точки зрения производительности виртуальная машина может приблизиться к тому, что было бы, если бы это была основная ОС, но всегда будут штрафы с точки зрения доступа к жесткому диску или конкуренции с другими ресурсы, используемые узлом.
в самом начале...
в начале у нас был компьютер, на котором могла работать только одна операционная система. Эта операционная система, как правило, хорошо работает только на конкретном процессоре и другом оборудовании, которое было в машине, а другие операционные системы могут работать только плохо, если вообще на собственном оборудовании.
для того, чтобы люди могли использовать программное обеспечение для одной конкретной платформы на другую платформа (например, использование программного обеспечения Pre-OSX MacOS на Commodore Amiga) требовала большего, чем просто "установка программного обеспечения". Эти две машины использовали совершенно разные архитектуры процессоров и вспомогательного оборудования. Просто не было возможности, чтобы одна ОС могла работать на оборудовании другой машины.
эмулятор
эмуляция как двоюродный брат виртуализации, они на самом деле связаны и имеют аналогичные цели. Один родил другого как бы.
что эти различные аппаратные платформы означает, что если вы хотите использовать одну программу с другой ОС на вашей машине, то все о том, что машина должна была быть проанализирована, чтобы выяснить, как она работает, а затем кусок кода, написанный, который функционировал так же, как аппаратная часть. Это должно быть сделано для каждой части, процессор, графический контроллер, контроллер памяти, все.
после этого все эти части положены вместе, и поскольку каждая часть эмулирует немного оборудования, мы назвали это эмулируемой машины. Затем мы запускаем операционную систему поверх этой эмулированной машины.
проблема в том, что этот подход является медленным. Просто вам повезло, если вы могли бы достичь 1/10 от скорости оригинального оборудования. Вам буквально нужна машина в несколько раз быстрее, чем ваша целевая эмулированная машина, чтобы запустить эмулированный компьютер в любом месте почти полностью скорость.
так что же изменилось?
Ну, вот классная штука. Не так уж и много. Единственным большим изменением была стандартизация аппаратных платформ. Мы перестали получать специальное оборудование для каждой ОС, и все операционные системы переехали или были созданы на единой стандартной платформе.
компоненты, которые составляют Mac в эти дни, по большому счету, те же компоненты, которые составляют ПК. Linux всегда работал на ПК, так что ничего нового.
для хорошего долгое время эмуляция все еще была нормой, если вы хотели запустить программное обеспечение с одной ОС на другую. Или вы можете запустить обе операционные системы, как вы хотели, но это сделало его болезненным и раздражающим, если вы хотите перейти от кодирования в Linux, чтобы играть в игры в Windows.
И Потом..
возникла идея, что, поскольку базовое оборудование одинаково, почему обе ОС не могут его разделить?
мы закончили вверх с QEMU и вином и подобным програмным обеспечением решения. QEMU долгое время был фаворитом для жесткой эмуляции машин, в то время как WiNE позволял приложениям Windows работать на Linux, улавливая и исправляя их вызовы API ОС и позволяя коду работать изначально на процессоре.
QEMU сделал что-то похожее на вино, но сделал на гораздо более низком уровне. Это все еще эффективно эмулятор, но для каждого аппаратного вызова, который был сделан, они использовали метод "исправления и перенаправления", чтобы любые вызовы шли на их собственную эмулированную аппаратную платформу вместо. поскольку большинство работающего кода в программе фактически не включает аппаратные вызовы (большинство-это простые потоки вычислений с вызовом в конце для отображения результатов).
это привело к мгновенному повышению скорости почти для каждой программы в настоящее время не-очень-эмулируется машины. Программы запускались с замедлением, зависящим больше от того, насколько они получили доступ к "виртуальному" оборудованию, а не от того, насколько хорошо машина может быть эмулирована. Вместо того, чтобы работать на 1/10 скорости они теперь бежали почти с той же скоростью, как если бы они были изначально.
Итак, если мы сейчас работаем на процессоре, почему моя видеокарта не работает?
единственная проблема с этими новыми виртуальными машинами заключается в том, что по своей природе операционная система предполагает, что она имеет прямое управление все оборудование которое в компьютере, так, что они смогут обеспечить особенности как управление памяти, и доступ контроля к аппаратура.
Это означает, что виртуальные машины не могут полностью уйти от эмуляции, по крайней мере, в методе. Они все еще должны эмулировать некоторые функции в программном обеспечении, например видеокарту, или сетевую карту необходимо представить к операционной системе бежать в виртуальной машине так, что операционная система "гостя" будет думать она имеет полное контроль этого оборудования. Основная ОС (по требованиям безопасности) должна быть защищена от программ, имеющих прямой доступ скобяными и это накладывает ограничения на гостевую операционную систему.
для того, чтобы сделать это, они должны эмулировать "виртуальные" части оборудования для всего в компьютере. Весь код выполняется процессором изначально, поэтому он не медленный, но каждая из этих частей виртуального оборудования должна быть написана в программном обеспечении, и это влечет за собой как небольшой штраф в производительности, так и потенциально большой штраф с точки зрения функциональности.
что это означает, что ваш виртуальная видеокарта не может и не будет иметь те же функции, что и ваш real видеокарты. Чтобы получить максимальную производительность, виртуальное оборудование может поддерживать большинство используемых функций, а 3D-рендеринг теперь возможен в виртуальной машине, но это все еще не то же самое, что реальное оборудование.
это означает, что хост-операционная система получает лучшие аппаратные варианты, в то время как гостевая операционная система получает generic оборудование опционы.
виртуальная машина не так хороша, как реальное оборудование, это только инструмент, чтобы облегчить работу с инструментами из одной системы на другую.
так что же мне делать?
вы должны выбрать то, что вы хотите, чтобы основная цель вашего компьютера.
Если вы хотите играть в новейшие игры на высокопроизводительной видеокарте и использовать ту же мощность видеокарты для воспроизведения полных фильмов 1080p на 400-дюймовый телевизор HDMI, но только иногда хотят сделать некоторые программирования Linux, то Windows может быть вашим лучшим выбором с Linux в качестве гостя.
Если вы хотите работать над ядром Linux, создавая аппаратные драйверы для устройств на вашем компьютере, а иногда и писать какое-то программное обеспечение для Windows и тестировать его на хорошем приближении "стандартной" системы Windows, то это может быть вам лучше с Linux в качестве хоста и Windows в качестве гостя.
Если вам нравится простота использования Mac, но хотите программировать для Windows (или есть пакет программного обеспечения вы хотите это только для Windows), то это тоже вариант.
Я не говорю, что Linux не может играть в игры, или что MacOS не для программистов, как это было бы просто пакет лжи. Просто единственный человек, который может сказать, какая ОС больше подходит для того, что вы хотите сделать, это вы.
вы действительно должны понять, что вы хотите, чтобы ваш компьютер делать first. Только тогда вы сможете понять, что такое виртуальный машина может сделать для вас.
чтобы ответить на ваши вопросы:
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?
большинств применения (покуда они не требует специальных аппаратных возможностей) будет работать почти так же быстро, как и на реальном оборудовании, до тех пор, пока вы не голодаете ни хозяина, ни гостя памяти.