Kernel-Modules
核心模組:.o 與 .ko
似乎呼叫了包含核心模組的文件
.o
,至少我在看這樣的教程時是這樣認為的。但是,在我的 debian 擠壓盒上,這些文件似乎被稱為.ko
.
.o
文件是否被稱為or是否取決於分佈(或其版本).ko
,否則它們或多或少相同嗎?
我在這裡找到了以下答案:
簡短的回答是 .ko 文件是與核心需要的一些核心自動生成的資料結構連結的目標文件。
.o 文件是模組的目標文件 - 編譯 c 文件的結果。然後核心建構系統會自動創建另一個 C 文件,其中包含一些描述核心模組的資料結構(名為 your_module_kmod.c),將此 C 文件編譯為另一個目標文件,並將您的目標文件和它建構的目標文件連結在一起以創建 .ko文件。
核心中負責載入核心模組的動態連結器希望找到核心放在 .ko 文件中的 kmod 對像中的資料結構,如果沒有它們,將無法載入您的核心模組。