回答:
私はここに次の答えを見つけました:
簡単に言えば、.koファイルは、カーネルが必要とする自動生成されたデータ構造にリンクされたオブジェクトファイルです。
.oファイルは、モジュールのオブジェクトファイルです。Cファイルをコンパイルした結果です。カーネルビルドシステムは、カーネルモジュールを記述するいくつかのデータ構造(your_module_kmod.c)を含む別のCファイルを自動的に作成し、このCファイルを別のオブジェクトファイルにコンパイルし、オブジェクトファイルとそれが一緒にビルドしたオブジェクトファイルをリンクして.koを作成しますファイル。
カーネルモジュールのロードを担当するカーネルの動的リンカーは、カーネルが.koファイルのkmodオブジェクトに配置したデータ構造を見つけることを期待しており、それらがないとカーネルモジュールをロードできません。