• 零拷贝不是消灭了拷贝数据这个动作,是指减少cpu参与的拷贝动作

    零拷贝.drawio.png
    一次常规的 readwrite操作涉及到4次用户态到内核态(内核态到用户态的切换),2次DMA拷贝,2次CPU参与的拷贝

    • kernal buf —> user buf
    • user buf —> kernal buf
    • 由于虚拟地址的存在,内核空间地址和用户空间虚拟地址可以映射到同一块物理地址,由于共享,DMA能够直接填充,减少了2次内核buffer和用户buffer之间到拷贝

    image.png