Linux·学习笔记(2)虚拟化与仿真

Linux支持的虚拟化
1.完全虚拟化:为客户操作系统创建一个虚拟机实例,使客户操作系统可以不加修改地运行,虚拟机模拟底层硬件的某些部分,捕捉需要由管理程序(虚拟机监视器)进行仲裁的调用。要求所有的操作系统都是针对统一处理器架构开发的。最大问题是如何处理特殊的特权指令模式。这些指令必须被正确捕捉并且由管理程序处理。通过代码扫描(即在一个未加修改的操作系统中即没有虚拟化硬件的情况下,找出那些调用并转换为管理程序调用)向原始代码中找到的特权捕获指令处插入管理程序 调用代码。
2.准虚拟化:
3.模拟:
(1)系统模拟
(2)语言虚拟机
(3)专用模拟器
4.操作系统的虚拟化:在于更多地在操作系统的层次隔离服务,而非在一个给定的平台上虚拟化两个或更多的操作系统,不如别的虚拟化方式那么可靠,一个用户空间引起系统崩溃,所有用户空间都会随之崩溃,因为共享内核。
/**********************硬件辅助虚拟化*************************/

/***********************开源虚拟化解决方案*************************/
QEMU:平台虚拟化应用程序,全系统模拟器,通过一个应用程序来创建一台(虚拟的)PC,然后模拟指定的操作系统。两种模拟方式:
1.模拟的指令集和主机的相同,由于指令集吻合,模拟过程相对简单。允许客户代码直接在CPU上运行(不对其进行模拟),接近于准虚拟化的解决方案(但有一个模拟的PC环境)
2.模拟其他架构,相对较慢,通过动态翻译过程提高模拟效率。动态翻译过程中对翻译代码缓存备用,不必多次重复翻译。翻译方法采用编译技术从而快速高效地将一种指令集中的指令序列翻译到另一种指令集中
KVM:内核虚拟机,准虚拟化的一个解决方案,将Linux主操作系统转变为一个管理程序,一个可选加载的模块,扩充proc中的文件以支持虚拟化。每个虚拟化内核都作为主操作系统的进程空间中的一个独立进程,此时主操作系统用做管理程序。依赖QEMU进行平台虚拟化

你可能感兴趣的:(Linux·学习笔记(2)虚拟化与仿真)