词条 | Java Virtual Machine (JVM) |
释义 | 简介Java虚拟机是指解释和执行Java字节码的程序,其中Java字节码由Java编译器生成。在计算机科学中的体系结构里,是指一种特殊的软件,他可以在计算机平台和终端用户之间建立一种环境,而终端用户则是基于这个软件所建立的环境来操作软件。在计算机科学中,虚拟机是指可以像真实机器一样运行程序的计算机的软件实现。 Java Virtual Machine(Java虚拟机),它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。 JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。 Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。 技术硬件的仿真 基于这种虚拟机,用户可以运行任何操作系统,比如可以在他们“个人的”虚拟电脑上运行两个不同的操作系统(也被称为“访客(guests)”)。这样的话,新版的实验性操作系统就可以与旧版的较稳定版本一同在单独的虚拟机上运行。这个过程甚至可以重复(recursive);IBM就在运行于旧版的虚拟机上的虚拟机上调试它新版的虚拟机操作系统,VM。 这个概念的一个早期使用者就是IBM的VM/CMS time-sharing产品,该产品使用的交互式计算单用户操作系统,CMS,相对来说比较简单,运行于VM上。通过这种方式,CMS编写起来就比较简单,就好像只有它一个在运行一样,VM操作系统就在幕后提供多任务以及资源管理服务。 当然,不是每个VM用户都必须运行CMS;有些用户选择在一个或者多个虚拟机上运行某种OS/360(或者MVS),来提供传统上的批处理服务。今天,IBM大型机还在使用VM,许多虚拟机上运行的是Linux操作系统。 VMware、twoOStwo以及SVISTA软件包在现代PC上都在处理类似截获硬件访问,模拟除了处理器以外的任何主板上的器件的事情。 plex86属于另外一种情况,它使用特定的打过补丁的内核,只能运行于Linux下,而且只能在其之上运行Linux。因此,它不是仿真处理器,它利用bochs来仿真主板设备。 现代PC使用的x86处理器架构其实并不能满足Popek和Goldberg虚拟化要求。很明显,这种架构缺少所有特权机器指令都会产生异常的模式,而这种模式可以做到单指令的虚拟化。这导致VMware或类似的x86虚拟软件必须动态地重新编译特权模式代码。这种虚拟技术和运行于如IBM System/370、Motorola MC68020的原生态可虚拟架构上的VM相比,就会多出一些性能上的开销。Intel和AMD都声称计划给未来的x86处理器加入x86虚拟化能力。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。