大多数现代内核是否将DMA用于通用以太网控制器的网络IO?


1

在大多数现代操作系统(如Linux和Windows)中,网络IO通常是使用DMA来完成的吗?这涉及通用以太网控制器;我并不是在询问需要特殊驱动程序的东西(比如许多无线卡,至少在Linux中)。我想答案是“是的”,但我对任何来源(尤其是Linux内核)以及提供更多一般信息的资源感兴趣。谢谢。

2

我不知道,真的有这样的事,作为一个通用网络接口控制器,但我知道最近的事情 - NE2000接口规范,由大量廉价的控制器来实现 - 出现至少有一些有限的DMA支持,而更复杂的控制器可能包含更复杂的功能。


2

的问题应该是有一点不同:

是典型的网络适配器DMA有对 板载控制器?

找到有关这个问题的答案(我猜在99.9%这将是),你应该问每个卡的具体驱动程序。我假设任何体面的驱动程序都将充分利用硬件功能(即我们的情况下为DMA支持),但关于操作系统的问题并不相关,因为没有操作系统可以强制驱动程序实施DMA支持。像Windows和Linux这样的高级操作系统提供了一个简单实现DMA的基本原则,但实现是驱动程序的责任。