《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

333 阅读3分钟

本文已参与 [新人创作礼] 活动,一起开启掘金创作之路。

1.1 虚拟化简介

1.1.1 虚拟化思想

知识提炼:

  • 虚拟化的主要思想

虚拟化的主要思想是:通过分层将底层的复杂、难用的资源虚拟抽象成简单、易用的资源,提供给上层使用。底层的资源或者通过空间的分割、或者通过时间的分割,将下层的资源通过一种简单易用的方式转换成另一种资源。本质上,计算机的发展过程也是虚拟化不断发展的过程。

  • 虚拟化思想的具体体现

CPU:从机器码、汇编语言到C语言,再到高级语言,其本质就是一个不断虚拟的过程,将底层复杂的接口转变成了上层容易使用的接口。

磁盘:硬盘物理细节经过操作系统的抽象,变成了文件与目录的概念,使得复杂的硬盘数据管理变得简单方便。应用程序能够通过文件管理的接口方便地创建、读取、写入文件,这本质上也是一种虚拟。

TCP/IP协议栈:网卡设备传递的都是二进制数据,经过网络层、运输层的抽象之后,应用程序不需要直接跟网络数据包的收发细节打交道,只需要关心协议最上层的接口;也不需要关心其它使用网卡设备的程序,只需要将要发送的数据和地址提供给协议栈。

进程:每一个进程都是对计算机的抽象,进程都认为自己独占整个计算机系统的资源,有着独立的CPU和内存。操作系统通过在各个进程之间共享CPU,为每个进程创建独立的虚拟内存,这不仅能够实现资源的充分利用,也能够实现进程之间的安全隔离。

接口:操作系统或提供一组接口给应用程序,方便开发者编写应用程序。这种抽象本质上也是虚拟化的一种体现。开发者者只需要关注上层的接口而不需要关心底层的细节实现。这样底层的实现即使发生了变化,也不会影响上层应用程序的运行。

  • 操作系统基本原理的三方面

虚拟化思想、并行和持久化。

1.1.2 虚拟机简介

知识提炼:

  • 虚拟机

虚拟机(Virtual Machine,VM),顾名思义,其重点在“机”上,即机器。理论上讲,完成用户指定任务的对象都可以叫做机器。

  • 虚拟机的多种角度

进程:进程是最简单的虚拟机。进程可以看作是一组资源的集合,有自己独立的进程地址空间以及独立的CPU和寄存器,执行程序员编写的指令,完成一定的任务。每一个进程都可以看成是一个独立的虚拟机。

模拟器:模拟器是另外一种形式的虚拟机。模拟器可以使为一种硬件指令集(Instruction Set Architecture,ISA)编译的程序运行在另一种硬件指令集上。模拟器可以通过解释来实现;也可以通过二进制翻译实现。

高级语言虚拟机:高级语言虚拟机在模拟其的基础上更进一步,将源ISA和目标ISA完全分离开。在高级语言虚拟机中,通常会设计一种全新的虚拟ISA,并在其中定义

1.1.3 系统虚拟化的历史