当前位置:首页 > 虚拟化 > 正文

啥是虚拟化


一、什么是虚拟化输入输出?随着现代计算设备的快速发展,很多时候硬件本身的性能,如计算能力、存储、速度等,早已超出了常见应用场景的需求。比如,基于ARM架构的普通千元手机的CPU速度比10年前的千元电脑还要快,一张几十元的TF存储卡的容量就超过了硬盘的容量。10年前卖到几千元。于是人们开始考虑如何最大限度地利用现有的硬件设备来运行更多的软件,为更多的用户提供服务。虚拟化技术就是实现这一目标的方法之一,简单来说,虚拟化技术可以使用同一个硬件设备“虚拟地”创建出几块配置相同或不同的硬件。这些运行虚拟化系统的设备称为主机或物理机,“虚拟化”的硬件设备称为虚拟机或来宾机。一个简单的比喻就是将一台计算机虚拟成两台计算机以同时使用。由于现代设备的运行速度很快,人们在使用大多数软件时几乎感觉不到速度差异,即感觉不到自己正在使用的软件是在虚拟机中运行的。下面将详细介绍虚拟化技术可以实现的具体功能,以及虚拟化方法。
一般来说,采用虚拟化技术的系统可以实现以下功能:
功能1、在同一设备上同时运行多个不同的系统。例如一台电脑上同时运行4个系统:2个Windows系统、1个macOS(苹果)系统、1个Android系统。这个功能一般也被称为系统层面非常开放;
功能2、同时工作的系统相互隔离。如上例,运行在同一台计算机上的两个Windows系统在未经授权的情况下无法访问对方的内存、文件。如果其中一个Windows系统死机或崩溃,完全不会影响另一个Windows系统或Android系统的正常运行;
功能3、同时运行的系统经过授权后可以互相共享资源。如上例,虚拟化软件系统配置并授权后,Windows系统可以与macOS共享部分文件;
如果按照虚拟指令集方式分类,可以分为以下两种::
类型一:指令集虚拟化。也称为指令集模拟,它使用CPU当前的指令集来解释和模拟另一种架构的指令集。比如我们手机使用的CPU是基于ARM架构的,而主流电脑一般都是基于X86架构的,如果需要在主流电脑上运行ARM架构指令集的APP或者游戏,就使用X86。常规计算机上的指令逐条将ARM指令集翻译成一组常规X86指令,然后执行。这种方法效率比较低,通常利用率只有实际处理器的30%甚至更低,因为使用软件翻译指令集是一个耗时且复杂度高的操作;
类型2:指令集透明权限。这种方法相当于模拟了一个具有相同架构CPU的系统,例如我们在普通的X86架构计算机上安装Windows虚拟化软件来运行基于X86架构的Linux操作系统,是非常简单、快速的。。只需将软件中需要执行的任何指令直接转储到当前CPU上执行,然后切换虚拟机的上下文环境即可。这种方式的运行速度基本上可以达到处理器实际速度的92%-98%,这也是大多数虚拟化系统运行的场景。

上一篇:kvm虚拟化

下一篇:描述什么是虚拟化