5

我经常听到这个词,我有点困惑。

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

  • 当有人编写虚拟机代码时,他们是否基本上着手制作操作系统,而不是直接访问硬件,他们只是调用他们需要的适当陷阱指令?但是,您将无法模拟某些受保护的操作,例如中断,对吗?

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

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

  • Java 虚拟机的意义何在,为什么不做其他语言做的事呢?

干杯

4

4 回答 4

4

那里有很多问题,我将开始解释我使用虚拟机的经验。

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

它们也是保持主台式计算机清洁的好方法。也许我想安装一些测试版软件,或者测试版操作系统,我不想让我的主机不稳定。我可以安装 Windows 8 预览版并随意使用它,然后再将其丢弃。Windows 8 预览版不够稳定,不能作为我的主要机器,但我可能需要对其进行评估。

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

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

虚拟机在这种情况下非常有用,因为您可以克隆、增加内存、减少内存、添加更多服务器等,这些操作都可以很容易地完成。

于 2012-05-22T04:41:33.357 回答
2

来自维基:

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

检查更多

于 2012-05-22T04:44:15.827 回答
2

Java虚拟机和虚拟机是两个完全不同的东西。

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

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

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

于 2012-05-22T04:45:54.810 回答
1

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

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

当有人编写虚拟机代码时,他们是否基本上着手制作操作系统,而不是直接访问硬件,他们只是调用他们需要的适当陷阱指令?但是,您将无法模拟某些受保护的操作,例如中断,对吗?

是和不是。通常为虚拟化提供硬件支持。例如,参见:x86 虚拟化 - 硬件支持

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

很多原因。

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

Java 虚拟机的意义何在,为什么不做其他语言做的事呢?

平台无关。

于 2012-05-22T04:49:47.557 回答