1.VMware

它将Intel 80x86硬件抽象为独立的虚拟机。

下图,以Linux为主操作系统,并安装FreeBSD、Window NT、Windows XP的虚拟机。虚拟层是VMware的核心,因为它将物理硬件抽象为独立的作为客户操作系统的虚拟机运行。每个虚拟机都有它自己的虚拟CPU、内存、磁盘驱动、网络接口等。

2.Java虚拟机

JVM是一个抽象计算机的规范。它包括类加载器( class loader 和执行与平台无关的字节码的Java解释器。如下图,类加载器从Java程序和Java API中加载编译过的.class文件,以便为Java解释器所执行。

在装入类之后,验证器会检查.class文件的有效性,否则会导致非法内存访问等问题。

如果类通过验证,那么就可以为Java解释器所执行。

JVM通过GC(垃圾回收)来自动管理内存。

JVM可以在主机操作系统之上的软件中实现,比如Windows、Linux或Mac OS X,或者作为Web浏览器的一部分。或者,JVM可以在专门设计为运行Java程序的芯片上的硬件中实现。

如果JVM是在软件中实现的,Java解释器会一次解释一个字节码操作。

一个更快的软件技术是使用即时(JIT)编译器。

这里,第一次调用Java方法时,将方法的字节码转换为主机系统的本机语言。然后缓存这些操作,以便使用本机机器指令执行方法的后续调用,而字节码操作不需要再重新解释。

一种可能更快的技术是在一个特殊的Java芯片上运行JVM,它将Java字节码操作作为本机代码执行,从而绕过了软件解释器或即时编译器的需求。

results matching ""

    No results matching ""