什么是SEV
SEV是由AMD提出的安全虚拟化Secure Encrypted Virtualization技术的英文首字母的缩写。简单来说就是主内存控制器具备了加密功能可以对虚拟机内存数据进行保护。在真正介绍SEV之前,我们首先要弄清楚两个关键的基本概念:SVM、SME。下面先简单了解一下SVM和SME。
什么是SVM
SVM即AMD Secure Virtual Machine的缩写。这是由AMD提供的虚拟化技术,用来X86上支持基于硬件的虚拟化技术,通过硬件提供的辅助加速功能,可以有效提高虚拟化性能。Intel也提供了与之对应的虚拟机技术及VT-x。
为了支持虚拟化技术,AMD虚拟机框架做了以下设计:
- 提供VMM(即Hypervisor)和Guest(即虚拟机)之间的快速切换机制。
- 拦截虚拟机中特定指令和事件的能力。
- 对内存提供外部(DMA)访保护。
- 辅助中断处理和虚拟中断(Virtual Interrupt)支持。
- 对属于Guest和Host(宿主机)的TLB使用标签来减少虚拟化的开销。
关于SVM技术的更多细节本文不展开介绍,有兴趣的同学可以查看AMD APM卷二的第15章。这里对上面列出的五项内容稍微说明一下:
- 硬件虚拟化,简单点说就是虚拟机的代码指令能够在宿主机上运行直接运行,无需进行软件转换或者翻译。但是,硬件(主要是CPU)需要维护Hypervisor和Guest的运行上下文环境,确保互相不产生影响。因此,AMD提供了一组虚拟化相关的指令(如VMRUN、