Linux 驱动程序如何工作以及我在哪里可以找到它们?(尤其是网卡驱动)

Usa*_*agi 12 linux networking drivers

我想知道驱动程序如何在 Linux 下运行。驱动程序是可以编辑的单个文件吗?是否有当前正在使用的驱动程序列表,或者是否有不同的地方可以为每个设备找到它们?

我对了解我的网络适配器的驱动程序特别感兴趣。

如果你知道一些好的文档在哪里,我也很乐意阅读。

Mr.*_*nce 7

驱动程序与任何其他程序非常相似,它们可以由多个源文件组成。Linux 设备驱动程序可以直接编译到内核或内核模块中。内核模块的优点是能够动态加载(即您无需编译新内核即可使用它们)。

显然,您可以随时查看 Linux 源代码,但这起初可能是一项艰巨的任务。但是,与 Linux 驱动程序中的任何内容一样,都是文件。这意味着其他程序通过 VFS 接口访问它们。例如,您可以通过ioctl()调用使用其设备文件来控制 CDROM 。

我强烈建议您查看Linux 设备驱动程序。它是免费提供的,将回答您的问题。特别是,您可以通读第 2 章,该章向您展示了如何创建一个简单的“Hello, Kernel”模块。它可能远远超出您的要求,但您可以阅读您感兴趣的点点滴滴。而且它是免费的。;P