Dune: User-level Access to Privileged CPU Features 笔记
论文的原文在这里 Dune: Safe User-level Access to Privileged CPU Features 1. Introduction Dune 的目标是让用户态程序直接使用硬件特性(例如,获得更好的硬件加速等),不过所谓的 “直接” 还是在虚拟化的环境中。Dune 利用现代 CPU 的虚拟化功能,提供给用户一个 进程的抽象, 而不是一个 虚拟机的抽象。 Dune 是一个内核模块,可以在需要的时候加载到标准的 linux 内核中。 于是一个普通进程可以进入 “Dune Mode”,在这个模式下的进程可以直接访问页表、中断、系统调用表等等。 特点: Dune 进程是一个普通的 linux 进程,唯一的区别是它用 VMCALL 指令进入系统调用。 Dune 内核模块只提供进程级别的抽象,因此相对于 KVM 来说要简单得多。 3. Kernel Support for Dune Dune mode 下的进程运行在 VMX non-root 模式,可以安全的访问特权级硬件。然后看一下 Dune 的整个架构图。 {:height=“300” width=“300”} 如果说前面 1、2 小节读下来仍然云里雾里的话,一看到这个图立刻觉得特别清晰了,因为太像 KVM 的架构了! 同样也是利用 CPU 提供的 VT-x 技术,Dune 更像是一个轻量级的 KVM。 在后续的章节中,作者也提到了 Dune 项目的原型就是在 KVM 的基础上修改的,特别是对 VT-x 操作的部分。 ...