🗓️ 本系列的第一篇文章已经提到,IOMMU 分别有软件和硬件实现方式。软件 IOMMU 就是 SWIOTLB,上一篇文章已经进行过详尽的介绍。而对于硬件 IOMMU,有多个厂商都设计了自己的 IOMMU。由于我的开发机器为 Intel x86 平台,因此接触的是 Intel IOMMU。
刚开始,我也找过网上很多资料,但是它们要么是基于较旧的 Linux 内核版本,要么理解不够深入。因此,即使我并没有深入地掌握 Intel IOMMU 的每一处细节,我还是愿意将自己所了解的知识,以尽可能浅显的形式展现出来。