我在下面的答案中添加了大量内容,但我保留了原始答案以供参考。
TL:DR:虚拟机是一种工具,虽然它们提供了在另一个操作系统中使用一个操作系统的简便功能,但您必须非常了解打算将计算机的主要用途是什么,以便充分利用该系统。 。
您的问题似乎非常倾向于使用虚拟机的图形和界面性能,因此,我将就那里的可能性进行回答。
主要问题是,为了安全管理来宾操作系统对设备的访问(从而防止来宾OS踩踏主机并破坏主机),必须对所有要使用的设备进行“仿真”。
这意味着,该显卡是你的客户操作系统可以看到的是不一样的显卡,你的主机操作系统可以看到。您可能能够在guest虚拟机中启用3D渲染之类的功能,但这由guest虚拟机中的中间驱动程序处理,该中间驱动程序以安全的方式将请求传递给主机,以便在那里进行3D渲染。
来宾图形卡驱动程序会仿真像将蓝光光盘安全地播放到支持的HDMI显示器所需的功能,这些功能令人怀疑,因此这可能无法正常工作。
基本上,任何需要主机上硬件支持的东西都不可能在来宾中很好地工作。我不知道WiDi的工作原理,但是如果它需要直接访问视频卡存储器才能将其共享到电视上,那么除非您从主机(Linux)操作系统上使用它,否则它将无法工作。
除了性能以外,VM可以接近主操作系统,但在硬盘驱动器设备访问或与主机使用的其他资源争用方面始终会受到惩罚。
在一开始的时候...
最初,我们有一台计算机,该计算机只能运行一个操作系统。该操作系统只能在特定的处理器和计算机中的其他硬件上很好地运行,而其他操作系统(如果有的话)只能在可用的本机硬件上运行不佳。
为了使人们能够在另一平台上的一个特定平台上使用该软件(例如,在Commodore Amiga上使用Pre-OSX MacOS软件),不仅需要“安装软件”。这两台机器使用了完全不同的处理器体系结构和辅助硬件。一个操作系统根本不可能在另一台计算机的硬件上运行。
仿真
仿真就像虚拟化的表亲一样,它们实际上是相关的并且具有相似的目标。一个就这样乞求另一个。
这些不同的硬件平台的意思是,如果您想使用计算机上另一操作系统上的一个软件,则必须对该计算机上的所有内容进行分析以找出其工作方式,然后编写一段可在该计算机上运行的代码。与硬件部分相同。必须对每个部件,处理器,图形控制器,内存控制器以及所有部件执行此操作。
然后将所有这些部件放在一起,并且在每个部件都在仿真硬件时,我们将其称为仿真机。然后,我们在此仿真机器上运行一个操作系统。
问题在于这种方法很慢。如果能够达到原始硬件速度的1/10,您很幸运。实际上,您需要一台比目标仿真计算机快几倍的计算机,才能在接近全速的任何位置运行该仿真计算机。
那么,什么改变了?
好吧,这很酷。真的不多。唯一的大变化是硬件平台实现了标准化。我们不再为每个操作系统获取自定义硬件,并且所有操作系统都已迁移到或在单个标准平台上创建。
如今,构成Mac的组件大体上与构成PC的组件相同。Linux总是在PC硬件上运行,因此没有什么新意。
长期以来,如果您仍想从一个操作系统在另一个操作系统上运行该软件,仿真仍然是常态。或者,您可以根据需要进行双引导并运行任何一个操作系统,但是如果您想从Linux编码转到Windows玩游戏,这将使您感到痛苦和烦恼。
接着..
由于底层硬件是相同的,所以为什么两个操作系统不能共享它?
我们最终获得了QEMU和WiNE以及类似的软件解决方案。长期以来,QEMU一直是机器硬仿真的最爱,而WiNE通过捕获和修补OS API调用并让代码在处理器上本地运行,从而允许Windows应用程序在Linux上运行。
QEMU所做的与WiNE类似,但水平较低。它仍然是有效的仿真器,但是对于每个进行的硬件调用,它们都使用“修补程序和重定向”方法,以便所有调用都转到自己的仿真硬件平台。因为程序中的大多数工作代码实际上并不涉及硬件调用(大多数是简单的计算流,并在末尾显示了结果)。
这导致了现在尚未真正仿真的机器中几乎每个程序的瞬时速度提升。程序运行缓慢的情况更多地取决于它们访问“虚拟”硬件的程度,而不是取决于计算机的仿真程度。他们现在的运行速度与其原来的速度几乎没有相同,而不是原来的1/10。
那么,如果我们现在在处理器上运行,为什么我的图形卡不起作用?
这些新虚拟机的唯一问题是,就其本质而言,操作系统假定它可以直接控制计算机中的所有硬件,因此它们可以提供诸如内存管理之类的功能,并控制对硬件的访问。
但这意味着虚拟机至少在方法上无法完全摆脱仿真。它们仍然必须在软件中模拟某些功能,例如图形卡,或者必须将网卡提供给在虚拟机中运行的OS,以便“来宾”操作系统认为它具有对该硬件的完全控制权。主操作系统(根据安全性要求)必须防止直接访问硬件的程序受到攻击,这对来宾操作系统构成了限制。
为此,他们必须为计算机中的所有设备模拟“虚拟”硬件。所有代码现在都由处理器本机运行,因此速度并不慢,但是这些虚拟硬件中的每一个都必须用软件编写,这不仅会导致性能下降,而且功能性可能会下降。
这意味着您的虚拟图形卡不能也不会具有与真实图形卡相同的功能。为了获得最佳性能,可以编写虚拟硬件以支持大多数使用的功能,并且现在可以在虚拟机中进行3D渲染,但是它仍然与真实硬件不同。
这意味着主机操作系统获得最佳的硬件选项,而客户操作系统获得通用的硬件选项。
虚拟机不如真实硬件好,它只是一种工具,可以使从一个系统到另一个系统的工具更容易使用。
那我该怎么办?
您必须选择您想要计算机的主要用途。
如果您想在高功率图形卡上玩最新的游戏,并使用相同的图形卡功率为您的400英寸HDMI电视播放完整的1080p电影,而只是偶尔需要进行一些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?
大多数应用程序(只要它们不需要特定的硬件功能)将以与实际硬件上几乎相同的速度运行,只要您不会饿死内存的主机或客户机。