看起来它们是完全不同的东西,但每个人都对它们使用相同的术语。
答案1
看起来它们很不一样...但是...
是的。确实令人困惑。
想象一下,以前“内存”有时指 RAM(短期存储),有时指磁盘空间(长期存储)。好吧,这就是我在 Apple 2 时代学到的东西。这些年来,趋势一直在变化。
这两种“虚拟机”都是指非物理的机器,因此它们都是虚拟机。Java 从 20 世纪 90 年代中后期发明时就使用了“虚拟机”一词。它指的是编译器不会编译成用于任何实际物理 CPU 的汇编语言,而是编译成“字节码”,这是虚拟计算机平台的规范。人们很高兴看到软件在多个计算机平台上兼容良好,有些人猜测这种概念设计是否会成为计算未来的重要组成部分。
如今,“虚拟机”一词往往指的是能够模拟大量细节(包括 CPU 寄存器和 RAM)的软件实例,或者执行“更高级别”模拟的软件,该软件能够产生类似的结果,但通常速度更快。
随着技术的变化,我预计一些术语将会改变,特别是如果这些词能够合理地适用于另一个概念。
答案2
带有虚拟化操作系统的虚拟机,当您拥有整个机器的“基础设施”时,就称为虚拟机,即 CPU、RAM、硬盘,并且您可以根据用途对其进行管理。
而像 Java 这样的虚拟机,它被称为 Java 语言的“预处理器”,这意味着它更多的是从编程的角度而不是“基础设施”的角度。