在大多数现代操作系统(如 Linux 和 Windows)中,网络 IO 通常是使用 DMA 完成的吗?这与通用以太网控制器有关;我不是在问需要特殊驱动程序的东西(例如许多无线网卡,至少在 Linux 中是这样)。我想答案是“是”,但我对任何资源(尤其是 Linux 内核)以及提供更多一般信息的资源都感兴趣。谢谢。
Yang
问问题
1767 次
2 回答
2
我不知道真的有通用网络接口控制器这样的东西,但我所知道的最接近的东西——由大量廉价控制器实现的NE2000接口规范——似乎至少有一些限制DMA 支持和更复杂的控制器可能包含更复杂的功能。
于 2009-02-22T06:29:21.680 回答
2
问题应该有点不同:
典型的网络适配器板载 dma 控制器吗?
在找到这个问题的答案后(我猜 99.9% 是肯定的),你应该询问每张卡的特定驱动程序。我假设任何体面的驱动程序都将充分利用硬件功能(即我们的例子中的 DMA 支持),但是关于操作系统的问题并不相关,因为没有操作系统可以强制驱动程序实现 DMA 支持。像 Windows 和 Linux 这样的高级操作系统提供了更容易实现 DMA 的原语,但实现是驱动程序的责任。
于 2009-02-22T16:28:50.957 回答