关于虚拟化的框架梳理
需求1:
人们需要在同一套硬件上,运行一台或多台虚拟机,同时这些虚拟机可能是不同的操作系统。
解决方案1:
通过抽象线程,虚拟内存和逻辑卷,可以解决一套硬件支持多台虚拟机的问题。
如果这些虚拟机分属不同的操作系统,也可以通过构建一个通用的虚拟机管理层,捕获并翻译虚拟机操作系统为底层硬件指令。
在Linux系统中,通用的虚拟机管理层,一般称之为VMM(Virtual Machine Manager)。
整个虚拟化的架构是,底层硬件,VMM,GustOS。
解决方案1的问题:
由于所有的指令都需要捕获和翻译,会造成严重的性能问题。
解决方案2:
GustOS直接操作底层硬件。代价是需要硬件层面做支持,以及GustOS的代码区别传统OS代码,定制化相关操作硬件的部分。
这个方案下,VMM仅做初始化,管理工作和少量的特权指令截获和翻译。
硬件层面的支持,包括Intel的VT系列技术。
软件层面的支持,包括QEMU框架等。
QEMU是一套完整的解决方案,virtio提供了其中关于块设备,网络设备,scsi设备部分的前后端实现。
当然,virtio也仅是关于这些设备的通用实现,具体到一个设备还需要做更具体的前后端代码实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!