有人能解释一下虚拟机是什么以及为什么它们有用吗?

时间:2012-05-22 04:36:47

标签: java operating-system virtual-machine virtualization

我听到这个词被抛出很多,我有点困惑。

  • 它只是一个构建在操作系统上的软件应用程序,可以模拟另一个操作系统吗?

  • 当有人为虚拟机编码时,他们基本上是打算制作一个操作系统,而不是直接访问硬件,他们只需要调用他们需要的相应陷阱指令吗?但是,你将无法模拟某些受保护的操作,如中断,对吧?

  • 除了我能够从Windows中远程连接并运行Linux桌面之外,还有其他任何可能有用的原因吗?

  • 什么是“虚拟机监视器”?

  • Java虚拟机有什么意义,为什么不做其他语言呢?

干杯

4 个答案:

答案 0 :(得分:3)

那里有很多问题,我将着手解释我对虚拟机的体验。

它们是在不同操作系统版本上测试代码或应用程序的好方法,例如vista vs windows 7或不同版本的android,2.3 vs 4.0。

它们也是保持主桌面计算机清洁的好方法。也许我想安装一些测试版软件或测试版操作系统,我不想让我的主机不稳定。我可以安装Windows 8预览并用它捣乱,稍后将其丢弃。 Windows 8预览不够稳定,不足以成为我的主机,但我可能需要对其进行评估。

我也可以制作虚拟机并拍摄快照。这意味着如果我想测试一个应用程序,我可以回滚到快照,以便在测试应用程序时知道机器的确切状态。

虚拟机监视器是一个应用程序,我可以在其中查看所有虚拟机的当前状态。也许我正在运行一个运行多个实时服务器的生产系统。如果它们是Web服务器,则它们每个都可以在虚拟机中运行。我可以在虚拟机监视器上查看每个CPU使用的CPU数量。增加内存,添加服务器,删除服务器,安装新服务器等等。

虚拟机在这样的实时情况下很棒,因为你可以克隆,增加内存,减少内存,添加更多服务器等等,这些操作都可以很容易地完成。

答案 1 :(得分:2)

来自维基:

虚拟机(VM)是“在普通主机操作系统中完全隔离的客户机操作系统”。现代虚拟机通过软件仿真或硬件虚拟化或(在大多数情况下)两者一起实现。

查看this了解更多信息。

答案 2 :(得分:1)

Java虚拟机和虚拟机是两回事。

  • Java虚拟机(JVM)是​​一个可以执行Java字节码的虚拟机。
  • 虚拟机(VM)是“在正常主机操作系统中完全隔离的客户机操作系统安装”

虚拟机会捕获中断,并且与您的计算机完全一样。从面向开发人员的角度来看,它们对于测试和调试不同的操作系统非常有用。在服务器环境中,它们非常适合单个大型机的虚拟化。

Java虚拟机(JVM)用于解释Java字节码。 Java被“编译”为中间状态,JVM以完全透明的方式在主机上运行它,供开发人员使用。

答案 3 :(得分:1)

  

它只是一个构建在操作系统上的软件应用程序,可以模拟另一个操作系统吗?

它是基于另一个操作系统构建的硬件平台的软件模拟。

  

当有人为虚拟机编码时,他们基本上是打算制作一个操作系统,而不是直接访问硬件,他们只需要调用他们需要的相应陷阱指令吗?但是,你将无法模拟某些受保护的操作,如中断,对吧?

是和否。通常为虚拟化提供硬件支持。例如,请参阅:x86 virtualization - Hardware support

  

除了能够从Windows中远程连接并运行Linux桌面之外,还有其他任何可能有用的原因吗?

很多的原因。

  • 已经提到过测试。
  • 您已经提到了在主机操作系统中运行不同操作系统的功能。
  • 能够快照运行VM的运行状态。
  • 启动/停止/暂停正在运行的VM的功能。
  

Java虚拟机有什么意义,为什么不做其他语言呢?

平台独立性。