精华内容
下载资源
问答
  • 虚拟机本质理解

    千次阅读 2019-03-27 14:55:48
    虚拟机只是一个软件,在真实的操作系统(比如WIN10)运行,但是这个软件可以模拟一台虚拟的计算机,然后在这台虚拟计算机上安装需要的操作系统,就好像在物理硬件上安装系统一样。 虚拟机软件——word 虚拟机中的...

    虚拟机只是一个软件,在真实的操作系统(比如WIN10)运行,但是这个软件可以模拟一台虚拟的计算机,然后在这台虚拟计算机上安装需要的操作系统,就好像在物理硬件上安装系统一样。

    虚拟机软件——word
    虚拟机中的操作系统——.doc的word文档
    虚拟机软件运行其中的虚拟操作系统——word软件打开word文档进行编辑等操作

    真实操作系统——word软件——word文档(.doc文档)
    真实操作系统——虚拟机软件——虚拟操作系统(以VMware虚拟机为例,其虚拟系统的存储文件后缀是.vmx、.vmdk等)

    一个虚拟机镜像只是一个文件,即“磁盘镜像”。

    展开全文
  • 虚拟机是软件 对于第一次听说虚拟机(Virtual Machine,VM)的人来说,可能以为还要再花钱买一台计算机,这恐怕是他们最...总之,你在真实的计算机上能做什么,在它里面一样可以那么做。使用虚拟机,你会发现,在Wi...

    虚拟机是软件

    对于第一次听说虚拟机(Virtual Machine,VM)的人来说,可能以为还要再花钱买一台计算机,这恐怕是他们最担心的。所谓虚拟机,就是在你的计算机上再虚拟出另一台计算机来。这台虚拟出来的计算机,和真正的计算机一样,可以启动,可以关闭,还可以安装操作系统、安装和运行各种各样的软件,或者访问网络。总之,你在真实的计算机上能做什么,在它里面一样可以那么做。使用虚拟机,你会发现,在Windows操作系统里,居然又可以拥有另一套Windows。然而本质上,它只是运行在物理计算机上的一个软件程序。

    如图1所示,整个大的背景,是Windows 7的桌面,它安装在一台真实的计算机上。图中的小窗口,正是虚拟机,运行的是Windows Server 2003。像这样,我们就得到了两台“计算机”,而且它们都可以操作。

    虚拟机仅仅是一个软件,运行在各种主流的操作系统上。它以自己运行的真实计算机为模板,虚拟出另一套处理器、内存和外围设备来。它的处理能力,完全来自于背后那台真实的计算机。

    尤其重要的是,针对某种真实处理器所写的任何指令代码,通常都可以正确无误地在该处理器的虚拟机上执行。实际上,这也是虚拟机具有广泛应用价值的原因所在。

    在这里插入图片描述

    在过去的若干年里,虚拟机得到了广泛应用。为了研制防病毒软件、测试最新的操作系统或者软件产品,软件公司通常需要多台用于做实验的计算机。采用虚拟机,就可以避免反复重装软件系统的麻烦,当这些软件系统崩溃时,崩溃的只是虚拟机,而真实的物理计算机丝毫不受影响。

    虚拟机利用软件来模拟完整的计算机系统,无须添加任何新的设备,而且与主计算机系统是隔离的,在虚拟机上的任何操作都不会影响到物理计算机上的操作系统和软件,这对拥有大量计算机的培训机构来说,可以极大地节省维护上的成本。

    参考:X86汇编语言-从实模式到保护模式。作者李忠

    学习探讨加:
    qq:1126137994
    微信:liu1126137994

    展开全文
  • JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java虚拟机包括一套字节码指令集、一组寄存器...

    JVM简介

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域

    JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码 (字节码),就可以在多种平台上不加修改地运行。

    JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

    JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。

    JVM作用

    Java中的所有类,必须被装载到JVM中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中

    JVM对中央处理器(CPU)所执行的一种软件操作,用于执行编译过的Java程序码(Applet与应用程序)。

    JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。*(也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。)

    当然只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。

    JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行

    JVM特性

    • 移植性
      实际上,由于Java和OpenJDK项目的开源,我们正在看到越来越多的平台的衍生,因此JVM的移植性也将越来越棒。
    • 成熟
      JVM已有超过15年的历史,在过去的这些年里,许多开发者为它做出了许多贡献,使得它的性能一次又一次地提升,让JVM变得更加稳定、快速和广泛。
    • 覆盖面
      VM已不再是Java一个人定制规则。JVM正在构建成为类如JRuby等项目的优良平台。
    展开全文
  • JVMjava虚拟机什么?

    2021-05-13 10:19:22
    什么是JVM?虚拟机概述虚拟机的体系结构java虚拟机的必要性虚拟机的内存管理java虚拟机的特性java垃圾回收机制GC 什么是JVM? JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真...

    什么是JVM?

    • JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
    • 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译(java可跨平台的原因是各个平台都安装了各自的Java虚拟机)。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

    虚拟机概述

    • Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。
    • Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是==“一次编译,多次运行”==。
    • Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(JVM)和Java API类库。

    虚拟机的体系结构

    • 每个Java程序都离不开Java虚拟机,Java程序的运行依靠具体的Java虚拟机实例。在Java虚拟机规范中,分别用子系统、内存区、数据类型以及指令这几个术语来描述的。这些组成部分一起展示出一个抽象化的虚拟机内部的抽象体系结构。
    • Java虚拟机主要分为五大模块
      (1)类装载器子系统
      (2)运行时数据区
      (3)执行引擎
      (4)本地方法接口
      (5)垃圾收集模块
    • Java虚拟机不是真实的物理机,它没有寄存器,所以指令集是使用Java 来存储 中间数据,这样做的目的就是为了保持Java虚拟机的指令集尽量的紧凑,同时也便于JAVA虚拟机在那些只有很少通用寄存器的平台上实现。另外,JAVA虚拟机的这种基于栈的体系结构(栈中的执行速度是非常快的),有助于运行时某些虚拟机实现的动态编译器和即时编译器的代码优化。

    java虚拟机的必要性

    • Java语言的一个非常重要的特点就是平台无关性。而使用Java虚拟机是实现这一特点的关键。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

    虚拟机的内存管理

    • 对于Java运行时涉及到的存储区域主要包括程序计数器、Java虚拟机栈、本地方法栈、java堆、方法区以及直接内存等等程
    • 序计数器主要是取下一条指令,在Java里面主要是取下一条指令的字节码文件(从而达到计数的目的);
    • Java虚拟机主要是利用栈先进后出的特性存储局部变量表(是变量标识符也就是变量名字而非局部变量),动态链接等。
    • java虚拟机内存主要包括堆内存和栈内存,对于程序员内存分析而言是特别重要的。
    • 本地方法栈与上边的栈基本作用差不多,只不过这里是为Java方法而服务。
    • Java堆是内存管理中最大的一块,所有的线程共享这一块内容,同时该部分也是垃圾收集器的主要区域
    • 方法区存放方法的区域

    java虚拟机的特性

    • 移植性
    • 发展成熟
    • 覆盖面广

    java垃圾回收机制GC

    • 虚拟机的垃圾回收机制是完善的,动态内存分配和回收是比较成熟的,在内存管理机制中,大部分都不需要我们考虑内存回收,只有Java堆和方法区需要我们考虑处理内存问题。一般的对于内存回收首先就是判断某一个部分是生存还是死亡,主要是通过下面二种算法:
    • 引用计数算法,本算法实现简单,判定的效率也是比较高的,很多的软件都使用了该算法,但是主流的Java并没有选择该算法,核心的问题是该算法难以处理对象之间相互调用的问题。
    • 可达性分析算法,该算法核心思想是依靠判断对象是否存活来实现的,本算法是通过一系列的GC ROOTS的对象作为起始点,采用搜索的算法遍历引用链,如果搜索过程中没有发现该节点,则认为该节点是不可达的,即可回收的,在Java里面,一般可以使用该算法处理问题。
    • 碎片回收Java类的实例所需的存储空间是在上分配的。解释器具体承担为类实例分配空间的工作。解释器在为一个实例分配完存储空间后,便开始记录对该实例所占用的内存区域的使用。一旦对象使用完毕,便将其回收到堆中。在Java语言中,除了new语句外没有其他方法为一对象申请和释放内存。对内存进行释放和回收的工作是由Java运行系统承担的。这允许Java运行系统的设计者自己决定碎片回收的方法。在SUN公司开发的Java解释器和Hot Java环境中,碎片回收用后台线程的方式来执行。这不但为运行系统提供了良好的性能,而且使程序设计人员摆脱了自己控制内存使用的风险
      在这里插入图片描述
    展开全文
  • 什么是虚拟机

    2020-05-15 22:56:20
    虚拟机(Virtual Machine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质上和 VS、QQ 这些应用程序一样。 所以,只要我们在电脑(PC 或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的...
  • 到底什么是虚拟机

    2020-05-08 16:38:25
    我们都知道在 Windows 系统上一个软件包装包是 exe ...为什么不同系统上的软件无法安装,这是因为操作系统底层的实现是不一样的。对于 Windows 系统来说,exe 后缀的软件代码最终编译成 Windows 系统能识别的机器...
  • emmmmm,大概还算简洁的一段代码吧hhhhh(这不是重点) ok,上节介绍Java为什么是半编译半解释型的语言的时候,我们知道了这样的一段代码想要运行,需要经过一次编译,转换成字节码文件,然后通过Java虚拟机的解释...
  • Java虚拟机虚拟机

    2020-06-27 08:02:23
    一、Java虚拟机栈是什么?? Java虚拟机栈(Java Virtual Machine Stack) ,早期也叫Java栈。每个线程在创建时都会创建一虚拟机栈,其内部保存一个个的栈帧(Stack Frame) ,对应着一次次的Java方法调用,是线程私有...
  • Android虚拟机

    千次阅读 2018-01-23 23:07:06
    1 什么是Dalvik虚拟机  Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种...
  • 理解Android虚拟机结构

    千次阅读 2018-06-18 10:51:52
    1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩...
  • 究竟什么是虚拟机

    2020-12-24 05:26:16
    refer:操作系统,虚拟机 虚拟机 Virtual Machine 是什么?虚拟机原理、用途、类型介绍 首先来个定义: ...我们从这三个问题出发 好好来理解一下什么是虚拟机。 首先 我们为什么需要虚拟机这个玩意? 就是
  • vmware workstation和virtual box就不是基于内核的虚拟机吗? 它这样做有哪些好处呢?对于物理机和虚拟机而言分别有那些好事呢? ++++++++++++++++++++++++++++ 作者:in nek 链接:...
  • 文章目录Docker - 相较于虚拟机的优势,以及为什么要使用docker1、docker 解决了什么问题2、相比于传统虚拟机,docker有什么不同1、启动速度的不同2、占用资源的不同3、相比于传统虚拟机,docker有哪些优势1、更快速...
  • 这里引用《Kubernetes in Action》中的两个图片,这两张图片很细节的对比了docker和虚拟机的运行机制,比网络上的其他图更能反映本质。 首先,虚拟机在宿主机操作系统(host os)上运行一个管理程序(称为hypervis.....
  • 什么是java虚拟机

    2019-03-25 10:25:22
    对于 java 虚拟机我们并不陌生,但是不知道有多人对于java虚拟机的基本概念很清楚,到底什么是java虚拟机? 为什么虚拟机有那么多种? java虚拟机和jdk之间有什么关系?java运行与平台无关的原因与jvm 有关 又是为什么...
  • 我们都知道在 Windows 系统上一个软件包装包是 exe ...为什么不同系统上的软件无法安装,这是因为操作系统底层的实现是不一样的。对于 Windows 系统来说,exe 后缀的软件代码最终编译成 Windows 系统能识别的机器码...
  • 1.虚拟化技术层级分类 1.1硬件级虚拟化 在这一级别中,常见的就是虚拟内存,和虚拟机VMM(Hypervisor)。 虚拟内存:在操作系统的请求分页机制,和硬件MMU基础之上构建出虚拟内存,为每...Q:为什么需要Hypervisor? A...
  • 针对杀毒软件中指令虚拟机的特点,研究虚拟环境与真实环境的差异,在深入分析指令虚拟机和计算机病毒木马本质特征的基础上,理论与实践研究相结合,给出目前杀毒软件中指令虚拟机的脆弱性分析。
  • 网络技术的不断发展促使着虚拟化技术越发成熟,像如今我们经常使用的游戏模拟器和虚拟机都是虚假技术的产物,从本质上讲,虚拟机和模拟器没有区别,它们都是用PC的CPU内存和硬盘空间模拟出一个新的环境,只是它们...
  • 在我看来,增加内存对Host OS及Guest OS的性能都有本质上的提升,而相对于CPU和磁盘来说内存的成本是最廉价的。通过增加内存,我们可以分配更多的内存给每个虚拟机,以防止Host OS与Guest OS过多的数据和资源交换。 ...
  • 从云计算服务的三层架构可以看出,传统的IaaS层、虚拟机是基础组成部分,而虚拟机都是基于Hyper-V架构的,也就是说,每一个虚拟机都会运行一个完整的操作系统,一个操作系统至少需要占用5GB左右的磁盘空间,但是操作...
  • 参考 docker是如何通过内核的系统调用模拟出一个虚拟机的。 docker底层的简介 怎么理解docker就是一个进程?
  • 虚拟机迁移原理

    2020-12-13 22:07:28
    我们常常遇到需要迁移虚拟机的问题,比如需要维护某台设备,会将设备上的一切应用迁移到另一台设备。但是如何将虚拟机进行迁移呢?好比说,虚拟机中正在运行一个程序,这个程序有源源不断的数据访问,怎么使得在不...
  • Refer:docker容器与虚拟机什么区别? 大概两年前 当自己屁都不会的时候 就遇到了docker的概念,两年过去了 别的东西多多少少都理解一些了 但是docker究竟是什么还是不明白。加上又想到了当时安装那些docker什么的...
  • JVM是Java Virtual Machine的简称,本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编译成的...
  • 前不久我参加了一个国外程序员的讲座,讲座的副标题很有趣,叫做:“我如何学会停止恐惧,并且爱上 Java 虚拟机”。 这句话来自一部黑色幽默电影《奇爱博士》,电影描述了冷战时期剑拔弩张的氛围。 程序员之间的...
  • 最后,让我们回顾一下,到底什么是虚拟机?其实 Java 虚拟机就是一个字节码翻译器,它将字节码文件翻译成各个系统对应的机器码,确保字节码文件能在各个系统正确运行。 转载于:...
  • 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三...
  • JVM学习-04:JVM之虚拟机栈详解

    千次阅读 2020-07-12 00:39:08
    一.虚拟机栈概念 1.概念 由于跨平台性的设计, Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为...Java虚拟机栈是什么? Java虚拟机栈(Java virtual Machine stack) ,早期也叫Java栈。每个线程在创建
  • 虚拟机什么,Jvm,Dalvik(DVM)与Art三者之间的区别 JVM和Android虚拟机的区别 区别一: dvm执行的是.dex格式文件 jvm执行的是.class文件 android程序编译完之后生产.class文件,然后,dex工具会把 .class文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,891
精华内容 41,556
关键字:

虚拟机的本质是什么