linux内核有什么区别:模块还是内置的?

时间:2014-05-18 13:53:53

标签: compilation linux-kernel

在linux中,许多驱动程序(和某些部分)可以直接在内核中编译或作为模块编译。将驱动程序(或某些部分)编译为模块并直接编译它有什么区别吗?它们似乎无论如何都有效。此外,在将其编译为模块或直接编译时是否存在一些利弊

1 个答案:

答案 0 :(得分:1)

如果在linux内核中编译了某些内容,它将永远是二进制文件的一部分。因此,它不会根据需要加载到内核中。基础。因此,假设您的机器上有一块realtek以太网卡,为什么需要英特尔以太网卡的驱动程序?

另一方面,内核模块通常不能引用内核中的函数,除非使用EXPORT_SYMBOL及其变体将其导出到模块。因此,如果您的驱动程序需要引用内核源代码中的函数(反正不应该这样),那么您必须将驱动程序添加到内核源代码树中。