作者回复: soimage,
这样说也对,不过砍完之后数据传输其实都是DMA的过程了。
作者回复: 👍
作者回复: yhh同学,
你好,那就不能了,我们需要把数据复制到内存里面来,在用户态用程序进行处理。
作者回复: fcb的鱼同学,
你好,我觉得你在这里把软件和硬件的各个概念混在一起了。
1. CPU是硬件,操作系统是软件。内存也是硬件,数据都是加载到内存里面的。
2. “操作系统内核中的数据”存放在哪里?也是存放在内存里呀。
3. DMAC也是一个硬件,我们这里写的过程,就是直接从硬盘读数据到内存呀。
作者回复: Fstar同学,
你好,我不是一个Web服务器的专家,所以其他Web服务器我不太清楚。不过Nginx的确是可以通过配置sendfile的开关on/off来控制是不是zero copy的
作者回复: 看这个程序怎么写啊,可以走DMA也可以不走DMA。
不走DMA就是要通过user space在内存里面复制中转。
作者回复: 袭同学,
你好,什么叫做“程序到网卡”呢?其实从硬件的角度,只有内存、硬盘、网卡这些设备并没有“程序”这个东西。
需要把软件代码和硬件设备分离开来想这个问题。