似乎包含内核模块的文件被称为.o,至少我在看这样的教程时是这样认为的。但是,在我的 debian 挤压盒上,这些文件似乎被称为.ko.
它是否取决于文件的分布(或其版本)是调用.o还是.ko,并且它们或多或少相同,否则?
J. *_*lor 11
我在这里找到了以下答案:
简短的回答是 .ko 文件是与某些内核自动生成的内核所需的数据结构链接的目标文件。
.o 文件是模块的目标文件 - 编译 c 文件的结果。内核构建系统然后自动创建另一个 C 文件,其中包含一些描述内核模块的数据结构(名为 your_module_kmod.c),将此 C 文件编译为另一个目标文件,并将您的目标文件和它构建的目标文件链接在一起以创建 .ko文件。
内核中负责加载内核模块的动态链接器期望找到内核放入 .ko 文件中 kmod 对象的数据结构,没有它们将无法加载您的内核模块。
同样来自该来源,引用tldp:高达 2.4 内核版本,它是“.o”,从 2.6 开始,它是“.ko”。
| 归档时间: |
|
| 查看次数: |
4423 次 |
| 最近记录: |