简短的回答是.ko文件是与内核需要的一些内核自动生成的数据结构链接的目标文件。
.o文件是模块的目标文件 - 编译 C 文件的结果。然后,内核构建系统会自动创建另一个 C 文件,其中包含一些描述内核模块的数据结构(名为 your_module_kmod.c),将此 C 文件编译为另一个目标文件,并将您的目标文件和它构建的目标文件链接在一起以创建.ko文件。
内核中负责加载内核模块的动态链接器希望找到内核放在.ko文件中的 kmod 对象中的数据结构,如果没有它们,将无法加载您的内核模块。
简短的回答是.ko文件是与内核需要的一些内核自动生成的数据结构链接的目标文件。
.o文件是模块的目标文件 - 编译 C 文件的结果。然后,内核构建系统会自动创建另一个 C 文件,其中包含一些描述内核模块的数据结构(名为 your_module_kmod.c),将此 C 文件编译为另一个目标文件,并将您的目标文件和它构建的目标文件链接在一起以创建.ko文件。
内核中负责加载内核模块的动态链接器希望找到内核放在.ko文件中的 kmod 对象中的数据结构,如果没有它们,将无法加载您的内核模块。