Linux下KVM平台知识详解(1)——KVM基础知识
  H1iS5RmfeTkf 2023年11月02日 38 0

一、虚拟化简介

(一)虚拟化概述

在计算机中,虚拟化技术是一种资源管理技术,可以将计算机的各硬件资源(包括CPU、内存、磁盘、网络)等予以抽象,转换后呈现出来,以供用户更好的使用。系统虚拟化可以将底层物理设备、上层操作系统和软件之间分离,可以在一台物理设备上划分出多台机器。

虚拟化技术种类有很多,包括软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、虚拟机等等。

(二)虚拟化分类

对于在计算机上运行虚拟机而言,一个非常重要的问题时硬件的操控,计算机程序的运行离不开CPU、内存、磁盘等硬件的调用。在现代计算机体系结构中,这些对硬件的直接调用离不开操作系统的操控。一般情况下,不允许应用程序直接调用硬件。操作系统上一般运行着很多程序,当多个应用程序都要调用硬件时,为了防止之间的冲突与相互干扰,因此当应用程序向调用硬件资源服务时,必须通过操作系统。在硬件结构上,现代的CPU可以工作在两种模式上,即用户模式和内核模式,计算机操作系统和计算机应用软件在本质上都是代码,也可以称之为指令。为了区别计算机操作系统和计算机应用软件,CPU将操作系统的指令设置为内核模式,将应用软件的操作指令设置为用户模式。对于CPU而言,会拒绝处于用户模式的指令对硬件的直接调用,这是从底层硬件上实现的,CPU将运行状态分为了ring0到ring3,ring0就代表了内核模式,ring3就代表了用户模式。

那么如果应用程序在执行过程中,如果要调用硬件,就会产生中断,此时该应用程序会放弃对CPU的接管,转而由操作系统控制CPU,这样,CPU就处于内核模式下了,这样就可以调用硬件了。总之,应用程序是处于用户模式的,对应用系统的调用要通过操作系统。

虚拟机对宿主机而言,在本质上也是一种应用程序,运行在虚拟机上的程序,要调用系统硬件时,就相当于虚拟机这个应用程序要调用硬件,这就带来了虚拟化技术的一个重要问题,根据虚拟化技术对这个问题的解决,我们把虚拟化技术分为了三种:

1、仿真虚拟化

仿真虚拟化的思想是借助虚拟机这一平台,将虚拟机操作系统要执行的内核态指令进行“翻译”,最后返回到虚拟机操作系统上。这一套过程需要异常捕捉和异常处理机制,因此速度较慢。虚拟机操作系统认为自己的特权指令执行正常,并不知道自身处于一个虚拟的环境中。在全虚拟化中,虚拟机的用户态执行具有和系统指令执行一样的速度,但是内核态的指令由于要进行处理,因此要花费较多的时间。

2、半虚拟化

半虚拟化的思想是修改虚拟机操作系统,使其指令运行在用户态模式上,将原来的内核态质量采用其他的方式代替。这样一来,虚拟机操作系统就明白自己是在虚拟系统上运行。这样做的缺点是需要修改虚拟机操作系统的内核,与其原有的内核等价,但是能够在用户态模式上运行。XEN是一种典型的半虚拟化技术,但是由于微软的windows操作系统没有这种修改后的内核,因此XEN只支持Linux,不支持Windows。

3、硬件虚拟化

硬件虚拟化,这需要CPU硬件厂商的支持,例如Intel的Intel-VT技术。CPU厂商需要将自己的CPU进行改变,在用户态和内核态的基础上,增加专门用于虚拟机运行的模式,使得虚拟机运行在这种模式上,从而可以直接执行内核态的程序。KVM就是处于硬件虚拟化的模式。

二、KVM简介

KVM,Kernel Virtual Machine的简写,即基于内核的虚拟机。自Linux2.6.20后集成在Linux的各种发行版本中,现已成为学术界的主流虚拟机之一。

KVM的虚拟化实现是使用Linux自身的调度器进行管理,核心源码较少。在KVM中,每一个虚拟机都是由Linux调度程序管理的标准进程。但是KVM虚拟化的实现需要硬件支持(比如Intel的VT技术和AMD的V技术),是基于硬件的完全虚拟化。

KVM官网网址为:https://www.linux-kvm.org/,其主页面如下所示:

Linux下KVM平台知识详解(1)——KVM基础知识_虚拟化

三、QEMU简介

由于KVM使用了类似QEMU的仿模拟处理器,我们再介绍一下QEMU。QEMU是由Fabrice Bellard所编写的一款模拟处理器软件,遵循GPL协议,在Linux平台上被广泛使用。QEMU具有跨平台、高速度的特性,其运行速度能够接近真实计算机的速度。我们很多时候在Linux上安装的KVM平台,基本上都是qemu,可以通过命令去查看。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9JCEeX0Eg8g4   2023年12月10日   30   0   0 应用程序javaApache
H1iS5RmfeTkf