CPU虚拟化技术

简介: 一、Binary Translation 二、Para-Virtualization三、硬件辅助虚拟化四、对比

CPU虚拟化技术

 

目录:

一、Binary Translation

二、Para-Virtualization

三、硬件辅助虚拟化

四、对比

 

 

内容介绍:

cpu虚拟化技术。要介绍一个背景知识,知道在当今世界里边,X86架构是非常非常主流的,从手机到PC再到服务器都在使用X86架构,X86架构,但是X86架构有个天生的缺点,就是设计的时间比较早,比如在上世纪70年代,当时只是为PC设计,没有考虑虚拟化的需求,也就是说很多的指令,都不支持虚拟化,这就会造成在虚拟化的情况下,客户机的操作系统,很多指令没办法运行的。

 

一、Binary Translation

实现复杂 性能损失

最开始由VMware和微软使用

由于X86架构不支持虚拟化,为了能够更好的支持虚拟化,需要用该技术把这些操作不支持虚拟化技术的指令找出来,然后将动态的补丁替换掉。

其特点是需要扫描。所有操作系统的指令,然后进行替换,也会引起很多的问题,如性能损失等。

 

 

二、Para-Virtualization

通过静态的修改,使得之前不支持CPU的指令不想需进行动态化的扫描替换。而不需要再进行动态的扫描过程。

 

该技术大大提高了CPU虚拟化的效率,能够实现98%的虚拟化。

是准虚拟化或者半虚拟化,这个技术是由剑桥大学计算机实验室发明的。

 

通过静态的去修改该死的操作系统的源码,使这些不支持cpu虚拟化的指令,然后能够提前替换掉。而不需要再做动态扫描跟扫描替换,在一定程度上大大提高了cpu虚拟化的效率。


这个技术一出现之后,当时,比如cpu虚拟化的效率是可以做到98%,是要远远高于向banner translation这样这种50%-60%cpu


三、硬件辅助虚拟化

从芯片设计的角度就可以支持虚拟化技术。


2004年因特尔公司和AMD公司先后发布了新的cpu规范,在新的cpu规范里加入了硬件辅助的虚拟化技术,也就是说可以从芯片设计的角度就能够支持虚拟化技术。


设计之初,其实没有考虑对虚拟化技术的支持,那么是否可以通过修改X86架构来实现虚拟化技术?答案当然是肯定的。


2004年的时候,AMD、英特尔公司和AMD公司。然后先后发布了新的cpu规范,在新的cpu规范里边就加入了硬件辅助的虚拟化技术,也就是说。从芯片设计的角度就可以去支持虚拟化技术,这就是后来的VTX技术和SDM技术。

 

四、对比

image.png

 

Final translation技术,它是通过软件的方式去扫描,Cpu里边不支持虚拟化技术的指令,然后动态的替换掉,它的效率相对来说是比较低的,但是它是可以运行未经修改的操作系统。

 

Para Liz Asian是通过修改该死的操作系统的源码的形式,然后静态编译之后可以。提供更加高效的这种cpu虚拟化的方式,但是它有个致命的缺点,就是要必须有操作系统的源码,那对于Windows这种必然的操作系统来说,其实是没办法做到的。

 

ervX技术是真正的从今天的角度去解决cpu。对于虚拟化技术的支持,既可以提高虚拟化的效率,又同时可以支持。

 

未经修改的这种操作系统,也就是不需要修改操作系统,所以说VTX技术,实现了这种cpu虚拟化是一个比较完美的解决方案。

相关文章
|
7月前
|
算法 编译器
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
573 0
|
3天前
|
监控 Java API
使用Java检测当前CPU负载状态的技术博客
使用Java检测当前CPU负载状态的技术博客
7 0
|
1月前
|
异构计算
振南技术干货集:CPU,你省省心吧!(2)
振南技术干货集:CPU,你省省心吧!(2)
|
7月前
|
存储 Linux Docker
跨cpu架构部署容器技术点:怎样修改Linux 的内核版本
在使用Docker 进行跨平台部署之后,我们还可以尝试进行跨架构部署。 从X86 架构上移植到 aarch64 上。
216 0
|
7月前
|
NoSQL Shell Linux
跨cpu架构部署容器技术点:怎么将容器启动时的1号进程挂载到systemctl
--privileged=true:是Docker中的一个参数,用于授予容器的特权权限。当一个容器被设置为特权容器时,它将拥有与主机操作系统相同的权限,可以执行一些高级操作,如访问主机设备、加载内核模块等。
59 0
|
10月前
|
关系型数据库 C语言
VT技术(二)检测CPU支持
1.CPUID指令检测 在进入VMX Opreation之前必须要检测CPU是否支持VMX技术,可以通过CPUID指令进行查询,在执行CPUID指令之后,返回值存入EAX,EBX,ECX,EDX中,查看ECX.VMX[5]位是否为1,否则不支持VMX技术,关于CPUID指令的介绍可以参考Intel白皮书卷二第三章第三节 Instruction-CPUID Identification详细介绍了CPUID的参数
344 0
|
Cloud Native Linux 应用服务中间件
助力Koordinator云原生单机混部,龙蜥混部技术提升CPU利用率达60%|龙蜥技术
龙蜥社区的三大原生技术为 Koordinator 社区提供了强大的 CPU 混部底层技术支持。
助力Koordinator云原生单机混部,龙蜥混部技术提升CPU利用率达60%|龙蜥技术
|
虚拟化 芯片 开发者
CPU虚拟化技术|学习笔记
快速学习CPU虚拟化技术。
508 0
CPU虚拟化技术|学习笔记
|
存储 数据采集 Kubernetes
让容器跑得更快:CPU Burst 技术实践
让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现。我们设计的 CPU Burst 技术既能保证容器运行服务质量,又不降低容器部署密度。CPU Burst 特性已合入 Linux 5.14,Anolis OS 8.2、Alibaba Cloud Linux2、Alibaba Cloud Linux3 也都支持 CPU Burst 特性。
让容器跑得更快:CPU Burst 技术实践