Java虚拟机真的是一个与VMWare或Parallels文件同样意义上的虚拟机吗?
Edd*_*die 34
没有.
VMWare和其他实际上虚拟化了机器的硬件.在VMWare容器(或Parallels或Windows的虚拟化容器或Bochs或......)内运行的操作系统具有在虚拟化容器内运行的不同程度的意识.在VMWare中,操作系统不知道它在虚拟容器中运行.虽然通常安装专门的驱动程序(最重要的是视频)以防止出现性能问题,但操作系统根本没有修改.其他一些虚拟机不执行完全硬件虚拟化,而是要求容器内的操作系统对容器进行特殊调用,而不是常规硬件调用.
从根本上说,JVM不是虚拟机.除了处理器之外,没有其他硬件被虚拟化.JVM本质上是一个虚拟化的CPU加上与C++或任何其他面向对象语言一起包含的相同类型的运行时,以及垃圾收集和其他必需品.此外,当然,Java类文件(和JAR文件等)不是机器代码,而是中间字节代码.因此,JVM必须在运行时编译或解释类文件(无论是否包含在JAR文件中),并且能够在运行时动态加载和查找新代码.
JVM称为虚拟机,因为JVM定义定义了抽象机器.这包括寄存器,堆栈等,Java源代码编译的字节代码实际上是该虚拟机的机器代码.然后,JVM将此字节代码解释或编译为本机机器指令.
区别在于JVM是虚拟化处理器,而其他虚拟机是虚拟机(包括视频卡,网络和其他外部设备和硬件寄存器).
| 归档时间: |
|
| 查看次数: |
10748 次 |
| 最近记录: |