精华内容
下载资源
问答
  • 虚拟机技术综述-2 硬件虚拟机

    千次阅读 2007-10-07 17:42:00
    硬件虚拟机硬件虚拟机支持在一台计算机上存在多个运行时环境,每个运行时环境可以支持一个操作系统。硬件虚拟机能够使为某种操作系统编写的程序在另外一种操作系统上运行,或者提供比单一操作系统上多进程之间更...
      
    
     
    硬件虚拟机支持在一台计算机上存在多个运行时环境,每个运行时环境可以支持一个操作系统。硬件虚拟机能够使为某种操作系统编写的程序在另外一种操作系统上运行,或者提供比单一操作系统上多进程之间更严格的运行时沙箱。硬件虚拟机现在也被称作虚拟化或者虚拟服务器。
    能提供硬件虚拟机功能的宿主软件也被称作虚拟机监控器或虚拟机管理程序。
    硬件虚拟机软件主要有三种实现方式:
         仿真,整系统模拟,动态翻译全虚拟化。虚拟机模拟完整的硬件,使一个未修改的操作系统可以再在一种完全不同的微处理器上运行。Bochs、DosBox、PearPCQEMUQuickTransitSimicsVirtualPC 7 for Mac。
         半虚拟化。虚拟机管理器提供一个应用程序编程接口供修改后的操作系统使用,能让一个经过修改的操作系统在一种完全不同的微处理器上运行。这个应用程序编程接口是一个抽象的整合硬件功能的接口。Denali、Logic Domains、TRANGOView-OSXen
                   本地虚拟化,全虚拟化。虚拟机模拟部分硬件,使未修改的操作系统能够在隔离状态下运行,但需要该操作系统与底层硬件使用相同类型的微处理器。本地虚拟化用软件方式模拟底层硬件不支持的指令,但最新的Intel和ADM的部分产品已经支持硬件辅助的本地虚拟化。这种虚拟机的实例有VMware公司64位x86操作系统虚拟化和Virtual Iron公司的32位和64操作系统的虚拟化、Virtual Iron
    对硬件虚拟机来说, 一个具有挑战的问题是支持与宿主机硬件上执行的指令集不同的指令集,比如在一种指令集硬件系统之上仿真另一种指令集。
    最直接的仿真方法是解释。解释程序执行目标指令集的取指令来仿真每一个源指令集中的指令。这是一个相对较慢的过程,解释一条源指令可能需要几十条目标指令。
    二进制翻译经常被用来提高性能。二进制翻译是把一段源指令转换成一段目标指令并执行同等的功能。翻译过程本身可能会有相当大的开销,但是如果一段源指令被翻译后的目标指令能够被缓存下来,以后重复执行该段源指令就会比解释执行快。因为二进制翻译是进程级虚拟机最重要的特性,所以有时进程级虚拟机被称为动态二进制翻译器。
     
    解释和二进制翻译有不同性能。解释有着相对较低的启动开销,但指令的每一次模拟执行都要消耗一定的时间。二进制翻译有着较高的启动开销,但每次重复进行会比较快。因此,有些虚拟机使用了经过变形的分段仿真策略,例如,根据程序的行为收集统计信息。开始,一些指令是解释执行的,同时记录下那些经常被执行的指令序列。这些经常被执行的序列使用二进制翻译。一些系统可能会对执行频率非常高的翻译指令做额外的优化。在绝大多数虚拟机执行一段代码中,翻译和二进制翻译都会使用到。
     
    大多数二进制翻译器不仅执行从源代码到目标代码的转换,同时也能执行一些代码优化。这就产生了宿主指令集和客户指令集相同的虚拟机,它的主要功能是二进制代码的优化。所以,相同指令集动态二进制优化器的实现方式与虚拟机非常相似,包括分段优化和优化代码的缓存。相同指令集动态二进制优化器能够在程序执行过程中收集统计信息并利用这些统计信息优化二进制代码。
     
    系统虚拟机为多个进程共存提供一个完整的系统环境。这种虚拟机在20世纪六十年代末七十年代初被开发出来,这些虚拟机也是虚拟机这个术语的来源。使用系统级虚拟机技术,能够使一个宿主硬件平台同时支持多种客户操作系统。在20世纪六七十年代,大型机非常庞大并且价格昂贵,计算机通常被大量的用户共享。不同的用户群可能希望在这个共享的硬件上运行不同的操作系统,而虚拟机不刚好能满足这个需求。但随着工业的发展,硬件变得越来越便宜,桌上电脑也越来越普及,对于系统虚拟机的需求也越来越少。
    但是近来,系统虚拟机正受到更多人的关注。那种庞大的昂贵的大型机现在被作为服务器和服务器群,这些服务器可能被很多用户共享使用。系统虚拟机最大的特点可能是他们提供多种操作系统的同时在一个硬件平台上运行的安全机制。在一个客户系统上运行的软件与另一个客户系统上的软件是完全隔离的,当一个客户系统的安全性受到威胁或者遭受灾难,运行在另一个客户系统上的软件不会受到影响。同时支持多种操作系统的能力可能不被大多数用户来说也是一个很重要的吸引力,例如同时支持Windows和 Linux, 如图1。
    对系统虚拟机来说,平台复制是虚拟机管理器的重要功能,而关键问题是在多个客户操作系统之间分配唯一的底层硬件资源。虚拟机管理器管理着硬件资源,所有的客户操作系统及其上的应用程序都需要经过虚拟机管理器的控制。当执行某些指令,特别是涉及到的共享硬件资源的指令,会通过虚拟机控制器解释这些指令,检查指令的正确性并执行相关操作,客户软件不会感觉到虚拟机控制器的操作。
    从用户的观点来看大多数系统虚拟机都提供了几乎相同的功能,不同的虚拟机其不同之处在于他们是如何实现的。在图2和图3中,可以看到,计算机系统存在多个接口,这就导致系统虚拟机软件可以放置在不同的接口上。下面介绍两种比较重要的实现方式。
    系统虚拟机的第一种实现方式,是虚拟机管理器放在硬件上,虚拟机放在虚拟机管理器之上,如图5所示。虚拟机管理器以最高权限模式运行,所以虚拟机管理器能够解释并实现所有客户操作系统的指令。从某些方面来说,这种虚拟机架构是最有效的,它以几乎相同的方式支持所有的客户操作系统。而缺陷就是,至少对于桌上电脑用户来说,安装虚拟机管理器之前必须完全擦除现有的系统,并且在安装虚拟机管理器之后安装客户操作系统。另一个缺陷,是需要提供针对虚拟机管理器的输入输出设备驱动,因为虚拟机管理器直接和输入输出设备交互。
    图5 虚拟机位于硬件层之上
    另一种如图6所示,虚拟机管理器放在已存在的宿主操作系统之上,这个虚拟机也被称为宿主虚拟机。这样,安装虚拟机的过程就类似于安装一个典型的应用程序的过程。并且,虚拟软件能够利用宿主操作系统提供设备驱动和其他基本服务。而缺陷就是,这样会带来一些性能的损失,因为操作系统的服务要通过更多的软件层次来实现。宿主虚拟机方式被使用在VMware的实现中,它是一个现代的系统虚拟机,运行于IA-32硬件平台之上。
    图6 虚拟机位于操作系统之上
    对于传统的系统虚拟机,所有的系统软件和应用软件都使用与底层硬件相同的指令集架构。但在另外的一些情况下,客户系统和是宿主系统使用不同的指令集架构。例如,基于PowerPC的Apple系统和Windows系统使用不同的指令集架构,这也是两种最流行的桌面系统。因为软件系统和硬件系统紧密地联系在一起,会导致用户需要购买同一软件的针对不同平台的版本,这会使软件支持变得复杂并且会是用户的购买力下降。这种情况导致了对系统虚拟机的需求,这是一个完整的软件系统,包括操作系统和应用程序,它能够支持在宿主系统上运行另一种不同的指令集和操作系统。因为指令集结构不同,应用程序和操作系统代码都需要仿真。对完整系统虚拟机来说,常用的一种实现方法是将虚拟机管理器和客户软件放在一个传统的宿主操作系统上。
    图6描述了一个系统虚拟机,它建立在一个拥有自己的操作系统和应用程序的传统系统之上。这种虚拟机的一个例子是Virtual PC,它能使Windows操作系统运行在Macintosh系统上。虚拟机软件是作为一个应用程序运行在宿主操作系统上,它使用宿主系统的指令集操作。为了实现这种类型的虚拟机,虚拟软件需要仿真整个硬件环境。它必须控制所有指令的仿真,并且需要将客户系统的指令集操作转换成对应的宿主操作系统的系统调用。即使使用二进制翻译,也无法有效利用宿主系统指令集架构的特性,如虚拟内存管理和中断管理。另外,如果客户系统和宿主系统的硬件资源有显著的差异,则会带来实现上的一些问题, 而解决这些问题是实现完整系统虚拟机面临的主要挑战。
    以上所讨论的虚拟机模型, 都是为了功能和移植,包括在同一个平台上支持多种操作系统或者多种指令集架构。事实上, 这些虚拟机都是基于已经存在的某种标准指令集或操作系统开发的。大体上来说,提高性能不是一个目标, 反而降低性能损失常常是一个需要考虑的问题。
    协同设计虚拟机则有不同的目标, 并且有着不同的实现方式。设计这些虚拟机是为了使新的指令集架构或硬件实现能提高性能或提高效率。宿主指令集架构可能是全新的,也可能是基于某种存在的指令集架构增加或删除了部分指令。协同设计虚拟机没有对应的指令集架构应用程序,它本身可以看成是硬件实现的一部分。
    在某些方面,协同设计虚拟机类似于在许多高性能超标量体系结构微处理器中用到的硬件虚拟方法。在这种设计中,将架构中的寄存器重命名为物理上的真实的寄存器,将复杂的指令分解为较简单的指令。
     
      
    ----刘黎明(liuliming2008@126.com
     
    展开全文
  • 虚拟机

    2020-11-26 08:27:56
    虚拟机是一抽象的计算机,和实际的计算机一样,具有一指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。这台虚拟的机器在任何平台上都提供给编译程序一的共同的接口。编译程序只需要...

    虚拟机的概念比较宽泛,通常人们接触到的虚拟机概念有VMware那样的硬件模拟软件,也有JVM这样的介于硬件和编译程序之间的软件。这里所指的是后者。
    虚拟机是一个抽象的计算机,和实际的计算机一样,具有一个指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。

    比较通俗的回答(适合没有电脑基础的朋友)
    虚拟机,顾名思义就是虚拟出来的电脑,这个虚拟出来的电脑和真实的电脑几乎完全一样,所不同的是他的硬盘是在一个文件中虚拟出来的,所以你可以随意修改虚拟机的设置,而不用担心对自己的电脑造成损失,因此可以用来做试验什么的,呵呵,差不多就是这样了,不知道我说的能明白不_,简单说就是一句话,虚拟出来的电脑,你干什么都行。 现在说一下虚拟机的软件,主要是两中,Virtual PC和VMware。软件的选择也是有门道滴,嘿嘿,简单来说,VPC的设置很简单,一路next就行了,VM设置相对麻烦一些,不过也不是麻烦很多,但是VM拥有更好的性能,可以说和真实的电脑性能完全一样,还可以用桥接的方式和现在的电脑互连_,可以研究的东西就更多了,呵呵
    比较专业的回答(适合有一点电脑基础的朋友)
    在一台电脑上将硬盘和内存的一部分拿出来虚拟出若干台机器,每台机器可以运行单独的操作系统而互不干扰,这些“新”机器各自拥有自己独立的CMOS、硬盘和操作系统,你可以像使用普通机器一样对它们进行分区、格式化、安装系统和应用软件等操作,还可以将这几个操作系统联成一个网络。在虚拟系统崩溃之后可直接删除不影响本机系统,同样本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统。同时它也是唯一的能在Windows和Linux主机平台上运行的虚拟计算机软件。虚拟机软件不需要重开机,就能在同一台电脑使用好几个OS,不但方便,而且安全。虚拟机在学习技术方面能够发挥很大的作用。
    虚拟机(virtual machine)
    虚拟机(VM)是支持多操作系统并行运行在单个物理服务器上的一种系统,能够提供更加有效的底层硬件使用。在虚拟机中,中央处理器芯片从系统其它部分划分出一段存储区域,操作系统和应用程序运行在“保护模式”环境下。如果在某虚拟机中出现程序冻结现象,这并不会影响运行在虚拟机外的程序操作和操作系统的正常工作。
    虚拟机具有四种体系结构。第一种为“一对一映射”,其中以 IBM 虚拟机最为典型。第二种由机器虚拟指令映射构成,其中以 Java 虚拟机最为典型。Unix 虚拟机模型和 OSI 虚拟机模型可以直接映射部分指令,而其它的可以直接调用操作系统功能。
    在真实计算机系统中,操作系统组成中的设备驱动控制硬件资源,负责将系统指令转化成特定设备控制语言。在假设设备所有权独立的情况下形成驱动,这就使得单个计算机上不能并发运行多个操作系统。虚拟机则包含了克服该局限性的技术。虚拟化过程引入了低层设备资源重定向交互作用,而不会影响高层应用层。通过虚拟机,客户可以在单个计算机上并发运行多个操作系统。
    微软虚拟服务器2005基于OSI虚拟机结构,主要几种于以下几点:
    主机操作系统,如 Windows Server 2003,主要控制主机系统。
    虚拟机操作系统,如 Virtual Server 2005,包含控制虚拟机的 VMM 虚拟层,为硬件仿真提供软件结构。
    每个虚拟机由一组虚拟化设备构成,其中每个虚拟机都有对应的虚拟硬件。
    客户操作系统和应用程序可以运行在虚拟机上,而不需要提供任何交互作用的网络适配器的支持。虚拟服务器只是物理以太网中的一种软件仿真设备。

    Java虚拟机

    一、什么是Java虚拟机

    Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

    1.为什么要使用Java虚拟机

    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

    2.谁需要了解Java虚拟机

    Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。

    3.Java虚拟机支持的数据类型

    Java虚拟机支持Java语言的基本数据类型如下:

    byte://1字节有符号整数的补码
    short://2字节有符号整数的补码
    int://4字节有符号整数的补码
    long://8字节有符号整数的补码
    float://4字节IEEE754单精度浮点数
    double://8字节IEEE754双精度浮点数
    char://2字节无符号Unicode字符

    几乎所有的Java类型检查都是在编译时完成的。上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。操作这些原始数据类型数据的字节码(指令)本身就已经指出了操作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其操作数类型别是int、long、float和double。虚拟机没有给boolean(布尔)类型设置单独的指令。boolean型的数据是由integer指令,包括integer返回来处理的。boolean型的数组则是用byte数组来处理的。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的较旧的计算机,在运行Java数值计算程序时,可能会非常慢。

    虚拟机支持的其它数据类型包括:
    object//对一个Javaobject(对象)的4字节引用
    returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令
    注:Java数组被当作object处理。

    虚拟机的规范对于object内部的结构没有任何特殊的要求。在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。用Java虚拟机的字节码表示的程序应该遵守类型规定。Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。Java虚拟机由于字节码定义的限制似乎只能运行于32位地址空间的机器上。但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可
    移植性。

    二、Java虚拟机体系结构

    Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。

    1.Java指令集

    Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。
    Java指令集中的指令包含一个单字节的操作符,用于指定要执行的操作,还有0个或多个操作数,提供操作所需的参数或数据。许多指令没有操作数,仅由一个单字节的操作符构成。

    虚拟机的内层循环的执行过程如下:

    do{
    取一个操作符字节;
    根据操作符的值执行一个动作;
    }while(程序未结束)

    由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为:

    第一个字节*256+第二个字节字节码指令流一般只是字节对齐的。指令tabltch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。

    2.寄存器

    Java虚拟机的寄存器用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。

    Java虚拟机的寄存器有四种:
    pc:Java程序计数器。
    optop:指向操作数栈顶端的指针。
    frame:指向当前执行方法的执行环境的指针。
    vars:指向当前执行方法的局部变量区第一个变量的指针。

    Java虚拟机

    Java虚拟机是栈式的,它不定义或使用寄存器来传递或接受参数,其目的是为了保证指令集的简洁性和实现时的高效性(特别是对于寄存器数目不多的处理器)。
    所有寄存器都是32位的。

    3.栈

    Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。

    (1)局部变量区 每个Java方法使用一个固定大小的局部变量集。它们按照与vars寄存器的字偏移量来寻址。局部变量都是32位的。长整数和双精度浮点数占据了两个局部变量的空间,却按照第一个局部变量的索引来寻址。(例如,一个具有索引n的局部变量,如果是一个双精度浮点数,那么它实际占据了索引n和n+1所代表的存储空间。)虚拟机规范并不要求在局部变量中的64位的值是64位对齐的。虚拟机提供了把局部变量中的值装载到操作数栈的指令,也提供了把操作数栈中的值写入局部变量的指令。

    (2)运行环境区 在运行环境中包含的信息用于动态链接,正常的方法返回以及异常传播。

    ·动态链接
    运行环境包括对指向当前类和当前方法的解释器符号表的指针,用于支持方法代码的动态链接。方法的class文件代码在引用要调用的方法和要访问的变量时使用符号。动态链接把符号形式的方法调用翻译成实际方法调用,装载必要的类以解释还没有定义的符号,并把变量访问翻译成与这些变量运行时的存储结构相应的偏移地址。动态链接方法和变量使得方法中使用的其它类的变化不会影响到本程序的代码。

    ·正常的方法返回
    如果当前方法正常地结束了,在执行了一条具有正确类型的返回指令时,调用的方法会得到一个返回值。执行环境在正常返回的情况下用于恢复调用者的寄存器,并把调用者的程序计数器增加一个恰当的数值,以跳过已执行过的方法调用指令,然后在调用者的执行环境中继续执行下去。

    ·异常和错误传播
    异常情况在Java中被称作Error(错误)或Exception(异常),是Throwable类的子类,在程序中的原因是:①动态链接错,如无法找到所需的class文件。②运行时错,如对一个空指针的引用

    ·程序使用了throw语句。
    当异常发生时,Java虚拟机采取如下措施:
    ·检查与当前方法相联系的catch子句表。每个catch子句包含其有效指令范围,能够处理的异常类型,以及处理异常的代码块地址。
    ·与异常相匹配的catch子句应该符合下面的条件:造成异常的指令在其指令范围之内,发生的异常类型是其能处理的异常类型的子类型。如果找到了匹配的catch子句,那么系统转移到指定的异常处理块处执行;如果没有找到异常处理块,重复寻找匹配的catch子句的过程,直到当前方法的所有嵌套的catch子句都被检查过。
    ·由于虚拟机从第一个匹配的catch子句处继续执行,所以catch子句表中的顺序是很重要的。因为Java代码是结构化的,因此总可以把某个方法的所有的异常处理器都按序排列到一个表中,对任意可能的程序计数器的值,都可以用线性的顺序找到合适的异常处理块,以处理在该程序计数器值下发生的异常情况。
    ·如果找不到匹配的catch子句,那么当前方法得到一个"未截获异常"的结果并返回到当前方法的调用者,好像异常刚刚在其调用者中发生一样。如果在调用者中仍然没有找到相应的异常处理块,那么这种错误传播将被继续下去。如果错误被传播到最顶层,那么系统将调用一个缺省的异常处理块。
    (3)操作数栈区 机器指令只从操作数栈中取操作数,对它们进行操作,并把结果返回到栈中。选择栈结构的原因是:在只有少量寄存器或非通用寄存器的机器(如Intel486)上,也能够高效地模拟虚拟机的行为。操作数栈是32位的。它用于给方法传递参数,并从方法接收结果,也用于支持操作的参数,并保存操作的结果。例如,iadd指令将两个整数相加。相加的两个整数应该是操作数栈顶的两个字。这两个字是由先前的指令压进堆栈的。这两个整数将从堆栈弹出、相加,并把结果压回到操作数栈中。

    每个原始数据类型都有专门的指令对它们进行必须的操作。每个操作数在栈中需要一个存储位置,除了long和double型,它们需要两个位置。操作数只能被适用于其类型的操作符所操作。例如,压入两个int类型的数,如果把它们当作是一个long类型的数则是非法的。在Sun的虚拟机实现中,这个限制由字节码验证器强制实行。但是,有少数操作(操作符dupe和swap),用于对运行时数据区进行操作时是不考虑类型的。

    4.无用单元收集堆

    Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java语言具有无用单元收集能力:它不给程序员显式释放对象的能力。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法。

    5.方法区

    方法区与传统语言中的编译后代码或是Unix进程中的正文段类似。它保存方法代码(编译后的java代码)和符号表。在当前的Java实现中,方法代码不包括在无用单元收集堆中,但计划在将来的版本中实现。每个类文件包含了一个Java类或一个Java界面的编译后的代码。可以说类文件是Java语言的执行代码文件。为了保证类文件的平台无关性,Java虚拟机规范中对类文件的格式也作了详细的说明。其具体细节请参考Sun公司的Java虚拟机规范。

    点赞

    评论

    分享

    收藏

    举报
    关注
    一键三连

    点赞Mark关注该博主, 随时了解TA的最新博文
    vmware虚拟机14
    09-07
    由于上传必须要少于220M,我将虚拟机放在百度云上了,里边有一个文本文件是百度云下载地址。里边还有一个是密钥,然后就能用了
    java 虚拟机 转载整理
    CWS_chen
    3858

    1. JVM生命周期 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者…

    优质评论可以帮助作者获得更高权重
    最新超详细VMware虚拟机下载与安装
    隐秀_
    43万+
    作者: seriouszyx独立博客记录了日常学习总结 代码均可在 Github上找到(求Star) VMware下载与安装 一、虚拟机的下载 1.进入VMware官网,点击左侧导航栏中的下载,再点击图中标记的Workstation Pro,如下图所示。 2.根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如下图所示。 3.在1处可以选…
    【VMware】win 10:VMware 15 虚拟机安装 win 7 系统
    顾三殇 —— 博客空间(软件测试)
    8万+
    目录 一、准备虚拟机 二、win7 ghost ISO镜像文件下载 三、VMware新建虚拟机 四、VMware安装win7 五、解决vmware虚拟机屏幕没有适应窗口全屏问题 一、准备虚拟机 查看我的另一博文:【VMware】VMware Workstation Pro15 虚拟机永久激活破解安装教程 二、win7 ghost ISO镜像文件下载 百度网盘下载地址:点击前往下载…
    虚拟机–VMware 学习笔记_王斌的博客-CSDN博客
    10-28
    2.本机系统可以与虚拟机系统网络通信。 3.可以设定并且随时修改虚拟机操作系统的硬件环境。 注:虚拟机占用内存不能超过真实机内存的一半。
    VMware虚拟机_王昭的博客-CSDN博客
    11-17
    虚拟机是一个利用软件来模拟出具有完整计算机系统功能的工具。每个虚拟计算机都是一个能在完全隔离环境中独立运行的完整计算机系统。在不影响本机操作系统和遇到不兼容…
    VMware虚拟机安装详细教程
    一个单纯的程序员的博客
    16万+
    VMware安装好之后,下载好我们要安装的操作系统的镜像文件后此处安装的为centos7版本需要下载镜像的小伙伴可去我的资源处下载,就可以开始安装了。 进入主页选择创建新的虚拟机 这里选择自定义安装,下一步即可。 可以根据需要选择版本 选择完成后,下一步 选择安装程序映像文件,浏览到自己下载的镜像文件,下一步即可 自定义虚拟机名称,以及虚拟机存储在主机的路径,下一步即可 根据需要配置处…
    VMware虚拟机搭建
    接受自己的普通,然后拼尽全力去与众不同
    1万+
    仅此记录Android转大数据开发的每一步~~ 准备工作: 1、VMware版本: 当时下载的是14.0.0。现在最新的是14.1.1 下载地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.1-7528167.exe 2、CentOS…
    虚拟机下载-其它工具类资源
    11-24
    VM虚拟机下载及安装教程 186263目录 一、VMware官方下载 二、虚拟机安装 一、VMware官方下载 首先我们访问官网地址https://www.vmware.com/cn.html 注意:没有账号…
    虚拟机下载_a13425320841的博客-CSDN博客
    9-18
    打开VMware Workstation,选择创建新的虚拟机。 选择自定义(高级),点击下一步。 硬件兼容性选择Workstation 15.x,点击下一步。 选择稍后安装操作系统,点击下一步。
    VM虚拟机下载及安装教程
    糯米
    18万+
    VMware最新官方下载与安装 目录 一、VMware官方下载 二、虚拟机安装 一、VMware官方下载 首先我们访问官网地址https://www.vmware.com/cn.html 注意:没有账号必须先注册才能下载。注册页面https://my.vmware.com/cn/web/vmware/registration 注册完账号后进行以下步骤: 如图,选择下载专…
    如何在mac上安装虚拟机搭载Windows
    树欲静而风不止
    18万+
    一、下载虚拟机 官方下载网址https://www.vmware.com/ 二、下载想要安装的Windows版本 推荐下载网址https://msdn.itellyou.cn/(msdn建议收藏,相当全的系统) 直接将地址复制到迅雷下载即可 三、双击下载完成的vm虚拟机,拖到app中 如果VM提示找不到可以连接的有效对等进程:…
    最新超详细VMware虚拟机下载与安装_公子&小白的博客-CSDN博客
    11-24
    二、虚拟机的安装 1.打开.exe文件, 即可开始安装。 2.安装位置默认在C盘下,在这里我选择安装在F盘,安装路径尽量不要有中文。
    虚拟机软件_weixin_30709061的博客-CSDN博客
    10-30
    虚拟机通过特定的软件模拟现实中具有硬件系统功能的计算机系统,虚拟机运行在一个完全隔离的环境中。真实的计算机称作“物理机”,而通过虚拟机软件虚拟出来的计算机称为…
    VMware虚拟机黑屏解决
    edc370的博客
    7万+
    相信VM( VMware Workstation)虚拟机很多人都在用,不知道有没有人跟我一样也遇到过VM虚拟机黑屏现象 具体表现为:虚拟机可以正常开机,但是屏幕不显示,处于黑屏状态。 之前有一次好像是因为win10更新,然后更新以后发现虚拟机开机以后能听见开机以后的开机音效,但是屏幕始终处于黑屏 昨天,因为一次电脑重启,虚拟机又出现了相同的问题 所以,VM虚拟机可以正常开机,但是黑屏…
    关于VMware虚拟机萌新部分使用说明
    13万+
    1.虚拟机如何开机?双击打开桌面名为VMware图标等待出现以下界面 2.虚拟机如何关机? 3.虚拟机的游戏在那? 4.虚拟机的窗口太小该如何设置? 5.虚拟机如何平铺监控展示? 6.虚拟机没网络了该如何设置?(

    展开全文
  • 更改VMWare 虚拟机硬件设置

    千次阅读 2017-11-20 16:24:00
    在测试环境中,可能需要虚拟计算机多个网卡,调整虚拟机的内存,给虚拟机添加多个硬盘等操作。下面的将会更改虚拟机硬件。 步骤: 1.关闭计算机。 只有关掉计算机才能添加删除硬件。 2.双击“Memory”,可以调整...
    1.1.1 更改计算机的硬件设置

    在测试环境中,可能需要虚拟计算机有多个网卡,调整虚拟机的内存,给虚拟机添加多个硬盘等操作。下面的将会更改虚拟机的硬件。

    步骤:

    1. 关闭计算机。

    只有关掉计算机才能添加删除硬件。

    2. 双击“Memory”,可以调整内存大小。

    clip_image002

    3. 点击“Edit VirtualMachine settings”à“Add”,选择“Hard Disk”à“Next”。

    clip_image004

    4. 选择“Create a new virtual disk”。磁盘选择IDE类型

    clip_image006 clip_image008

    IDE、SATA是普通计算机使用的硬盘,目前SATA2是主流,速度比IDE快,IDE几乎要淘汰了。

    SCIS、SAS都是服务器后者工作站所使用的硬盘类型,SCIS目前还是主流,有独立的控制器,对系统资源占用极少,但很贵。SAS将会逐步取代SCIS,目前,中高端的服务器一般都采用SAS硬盘,价格昂贵。

    5. 指定第二块磁盘文件的名字。指定磁盘大小,点击“Finish”。

    clip_image010 clip_image012

    6. 点击“Edit VirtualMachine settings”à“Add”,选中“Ethernet Adapter”à“Next”,选择“Bridged”à“Finish”。

    clip_image014 clip_image016

    7. 点击“Edit VirtualMachine settings”,选中“floppy”,点击“Remove”,选择“Sound Adapter”点击“Remove”。

    clip_image018 clip_image020

    8. 点击“clip_image022”,启动虚拟机。按“Ctrl+Alt+Insert”键登录虚拟机操作系统。

    9. 登录后,点击clip_image024,打开服务器管理器,点击“磁盘管理”,能够看到新加的硬盘。经过初始化,格式化就可以使用了。

    clip_image026

    10. 打开“控制面板”à“网络和共享中心”。能够看到两个连接。

    clip_image028

    11. 点击clip_image030 VM选择clip_image032。可以看到能够在虚拟系统运行的情况下更改的硬件,选择EthernetàDisconnect断开网络连接,相当于拔掉网线。可以配置CD-ROM使用物理光驱或使用ISO文件,也可以断开CD-ROM连接,相当于弹出光驱取出光盘。

    clip_image034

    12. 观察下图,断开CD-ROM和Ethernet连接,光驱双击打不开,网卡显示红叉,光驱显示红叉。

    clip_image036



    本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1114209,如需转载请自行联系原作者

    展开全文
  • vSphere 计算功能:虚拟机和虚拟硬件 在实际的物理环境中,操作系统直接安装在服务器上,通过驱动程序与服务器硬件进行交互。 每操作系统必须有正确的驱动程序和功能才能支持物理硬件和特定的 I/O 组件,如主机...

    vSphere 计算功能:虚拟机和虚拟硬件

    在实际的物理环境中,操作系统直接安装在服务器上,通过驱动程序与服务器硬件进行交互。 每个操作系统必须有正确的驱动程序和功能才能支持物理硬件和特定的 I/O 组件,如主机总线适配器、网络适配器等。

    一旦操作系统安装在物理系统上,就很难将其移动或迁移至另一台物理主机,这是因为操作系统专门针对该特定硬件进行了配置。

    虚拟机 (VM) 是一个由 vSphere 虚拟化管理程序(也称为“VMkernel”)控制的软件构造体。 所有虚拟机配置信息、状态信息和数据都封装在存储在数据存储中的一组离散文件中。 这使虚拟机具有可移动性,并且易于备份或克隆。

    每个虚拟机都有虚拟硬件,这些虚拟硬件在所安装的客户操作系统及其应用中显示为物理硬件。 每个客户操作系统都能识别出常规硬件设备,但它并不知道这些设备实际上是虚拟设备。 虚拟机具有统一的硬件(少数选项可以由系统管理员控制)。 统一硬件使得虚拟机可以跨 vSphere 主机进行迁移。

     

    虚拟机组件

    虚拟机通常有一个操作系统、VMware Tools 以及虚拟资源和硬件,其管理方式与物理计算机非常相似。 在虚拟机上安装客户操作系统与在物理计算机上安装操作系统完全一样。 您必须拥有操作系统供应商提供的包含安装文件的 CD/DVD-ROM 或 ISO 映像。

    VMware Tools 可增强虚拟机客户操作系统的性能并改善虚拟机的管理,提高您对虚拟机界面的控制力。

    所有虚拟机都有一个硬件版本,该硬件版本指示虚拟机支持的虚拟硬件特性,如 BIOS 或 EFI、虚拟插槽数、最多 CPU 数、最大内存配置和其他硬件特征。 创建虚拟机所用的 vSphere 主机的版本决定了虚拟机的硬件版本。

    虚拟 CPU

    虚拟机至少配置一个虚拟 CPU (VCPU)。 当 VCPU 需要运行时,VMkernel 会将该 VCPU 映射到可用的硬件执行环境 (HEC)。 HEC 即处理器调度一个执行线程的能力,它对应于一个 CPU 核心或一个超线程(如果 CPU 支持超线程)。 超线程或多核 CPU 提供两个或多个 HEC 以调度 VCPU 运行。

    使用 vSphere 的虚拟对称多处理器功能 (VMware® Virtual SMP) 意味着可以为虚拟机配置 1 至 64 个虚拟 CPU。 例如,对于单 VCPU 虚拟机,每次会将其 VCPU 调度到一个 HEC 中。 对于双 VCPU 虚拟机,每次会将其 VCPU 分别调度到两个 HEC 中,以此类推。 可以向一个虚拟机分配的最大 VCPU 数量相当于您的服务器硬件中可用的最大 HEC 数量。

     

    虚拟内存

    尽管数据中心的物理服务器上通常配置了大量内存,但在同一时间一般只有一少部分处于活动状态。 通过在一台物理服务器上合并多个虚拟机,可以获得较高的活动内存使用率。 这种对于内存资源的高效使用可以降低数据中心的资金和运营成本。

    vSphere VMkernel 管理服务器的 RAM。 通过 VMware 设计的若干功能,vSphere 可支持实现 RAM 的高效使用和更高的整合率,包括透明页共享、客户机内存回收和内存压缩。

    最多可以为一个虚拟机配置 1 TB RAM。

     

    份额和限制

    vSphere 使用份额和限制来确保主机上(或集群中)一起运行的虚拟机能够获得足够的资源,如 CPU、内存、网络和存储。

    份额可以保证为虚拟机提供资源(CPU、RAM、网络或存储 I/O)的特定百分比。 默认情况下,每个虚拟机将能够访问相同比例的资源。 例如,如果 vSphere 主机上运行 4 个虚拟机,则每个虚拟机可以访问 25% 的可用 CPU 资源。 如果有多余的容量可用,则虚拟机可以利用更多。

    限制则可以为资源分配提供硬性上限。 即使有更多 CPU 容量可用,您也可以将虚拟机可获得的虚拟 CPU 频率设置为不超过 1 GHz。 限制通常会在客户支付资源使用费的共享基础架构配置中使用。

     
     创建虚拟机时设置的内存量:

    该虚拟机可以使用支配的最大物理内存量,一台ESX Server上部署的多个虚拟机设置的内存量总和可以大于该ESX Server实际拥有的物物理内存量,其之间的资源争夺原则依据设置的share值。

    资源池

    借助资源池,您可以根据业务需要分层次地划分并分配 CPU 和内存资源。 划分并分配 CPU 和内存资源的原因包括维护行政界限、执行收费政策,或者适应地域或部门划分。 资源池还用于向其他用户和组委派权限。

    可以在非集群(独立式)vSphere 主机或为 VMware Distributed Resource Scheduler (DRS) 启用的集群中配置 CPU 和内存资源池。

    与虚拟机类似,资源池都具有相应的 CPU 和内存资源的预留、限制以及份额值:

    • 份额 – 使用份额可以保证为资源池分配特定的 CPU 和内存资源量。
    • 预留 – 这是资源池所需的最小 CPU 和内存资源量。
    • 限制 – 这是为此资源池提供的最大 CPU 和内存资源量。 默认情况下,会为资源池提供对最大资源量的“无限”访问权限。
    • 可扩展预留 – 借助该属性,无法满足预留量要求的资源池可以在其层次结构中查找非预留容量,以满足预留量要求。

    份额、预留和限制也可在虚拟机级别应用,但会受限于每个虚拟机资源池中的资源。

    展开全文
  • IBM System 360、370、CP-40、CP-67[1-4]等系统就已经实现了硬件抽象层的虚拟机技术,它最初是为了弥补系统架构上的不足而发展起来的,而随着技术的发展和对虚拟机需求的增加,硬件抽象层虚拟机在强隔离功能和安全...
  • 虚拟机使用USB硬件设备

    千次阅读 2015-01-19 17:03:26
    VMware虚拟机功能很强大,它也能像主机一样安装使用usb设备,如usb网卡,u盘等。 工具/原料 VMware虚拟机 u盘 方法/步骤 1 首先在【主机】中按Win+R打开“运行”对话框,输入“services....
  • 线程和虚拟机?

    千次阅读 2017-05-18 21:33:01
    作者:贺拔达奚 ...线程和虚拟机。实际工作中,大部分程序员可能几乎不用,但这项技能是你面试所谓高级工程师的敲门砖,也是你在机会到来的时候能否顶上去的弹药库。很多人,把这部看的太高深
  • 虚拟机简介

    千次阅读 2018-04-14 11:49:52
    一、虚拟机概念虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,虚拟机的基本思想是单个计算机(CPU、内存...每个虚拟机都有其自己的虚拟CPU、内存、...
  • 如何判断CPU是否支持硬件虚拟化 linux系统 &...
  • 线程和虚拟机

    千次阅读 2018-03-28 15:19:27
    线程和虚拟机。实际工作中,大部分程序员可能几乎不用,但这项技能是你面试所谓高级工程师的敲门砖,也是你在机会到来的时候能否顶上去的弹药库。很多人,把这部看的太高深,望而却步,我觉得一重...
  • 种方法实现虚拟机检测

    千次阅读 2019-07-23 21:05:36
    所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware、Virtual PC、VirtualBox),你可以在一台物理计算机上模拟出...
  • Java中JVM虚拟机详解

    万次阅读 多人点赞 2017-01-26 19:14:22
    1、 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
  • JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比

    万次阅读 多人点赞 2015-12-31 11:43:14
    简单介绍JAVA虚拟机,安卓Dalvik虚拟机和ART虚拟机,并做简单对比。
  • 虚拟机和容器有什么不同

    千次阅读 2020-07-20 23:00:06
    文章目录什么是虚拟机虚拟机的好处受欢迎的虚拟机提供商什么是容器?容器种类集装箱的好处受欢迎的集装箱供应商虚拟机使用与容器使用虚拟机与...简而言之,它可以在一台计算机硬件上运行看似台单独的计算机。 操
  • 深入理解Java虚拟机-虚拟机执行子系统

    万次阅读 多人点赞 2020-01-04 17:00:27
    Class 文件的版本常量池访问标志类索引、父类索引与接口索引集合字段表集合方法表集合属性表集合字节码指令简介公有设计和私有实现Class文件结构的发展虚拟机类加载机制概述类加载时机类加载过程加载验证准备解析...
  • android虚拟机

    千次阅读 2014-09-28 19:08:03
    首先,让我们来思考下面几问题: 什么是Dalvik虚拟机? Dalvik VM与JVM有什么区别? Dalvik VM有什么新的特点? ...Dalvik VM的架构是怎么样的?...首先,我得承认第一问题...Java虚拟机(JVM)是一虚构出来的计算
  • 文章目录虚拟机的运行架构虚拟机平台产品 虚拟机的运行架构 寄居架构(实验环境、测试环境) a、虚拟机作为应用软件安装...c、在这个虚拟机中可以同时运行多个操作系统 虚拟机平台产品 虚拟机产品 Vmware VMwa...
  • Java虚拟机

    千次阅读 2006-10-06 15:53:00
    Java虚拟机一、什么是Java虚拟机Java虚拟机是一想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。1.为什么要使用Java虚拟机Java...
  • 寄存器虚拟机

    千次阅读 2014-09-06 09:00:12
    前面说到,虚拟机是真机的一种模拟,而栈虚拟机模拟的是基于栈计算的机器,和现在常见的基于寄存器的硬件机器不同,于是相应的也有基于寄存器的虚拟机,不过这个虚拟机可能跟真机差别比较大  首先可以看看真机用...
  • * 增加全自动安装虚拟机功能(仅支持win7,其它后续更新)* 把一些常用的操作,在软件主界面那设置对于的按钮,方便调用 * 增加批量删除虚拟机功能 * 增加批量移除虚拟机功能 (虚拟机镜像文件没去删除,还在电脑里面) * ...
  • 虚拟机相关介绍

    千次阅读 2011-11-19 22:16:18
    虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一完全隔离环境中的完整计算机系统。 定义  虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一完全隔离环境中的...
  • 虚拟机怎么用 虚拟机安装教程

    千次阅读 2014-04-13 20:01:14
    随着电脑配置不断提高,我们多数人都已经步入了电脑性能过剩时代,不过电脑配置性能过剩也并不是什么坏事,我们可以通过在电脑中创建虚拟机实现一台电脑两个人用,我们只需要购买一个显示器即可。非常适合家庭朋...
  • 搭建Linux虚拟机并编写简单程序

    万次阅读 多人点赞 2019-05-28 18:25:43
    现在越来越IT行业公司要求熟练使用Linux平台下的编程技术,因为目前大部分主机使用Linux相关系统(Linux称为内核更确切一些),并且逐年增加。造成这种现象的主要原因是: 免费、开源: 大多数服务器系统采用闭源...
  • 1.1 硬件虚拟机概述 早在上世纪 70 年代, IBM 就实现了硬件抽象层的虚拟机技术,例如 System 360 、 370 、 CP-40 、 CP-67 。它最初是为了弥补系统架构上的不足而发展起来的。后来,随着虚拟机技术的成熟,对...
  • java虚拟机工作原理

    千次阅读 2016-10-12 20:58:28
     jav虚拟机是一想象中的机器,在实际的计算机上通过软件模拟来实现。java虚拟机有自己想象的硬件,如处理器、堆栈、寄存器、还有相应的指定系统。   总结:java虚拟机--处理器、堆栈、寄存器、指令系统。  二...
  • 虚拟机的优势

    千次阅读 2011-05-24 16:27:00
    什么是虚拟机? <br />虚拟机是一种高度隔离的软件容器,它可以运行自己的操作系统和应用程序,就好像它是一台物理计算机一样。虚拟机的行为完全类似于一台...因此,虚拟机具备物理硬件所没有的很独特优势。<b

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,965
精华内容 21,586
关键字:

多个虚拟机的计算机两个硬件要求