2 つの Linux カーネル モジュールがあり、そのうちの 1 つは別の機能を提供する可能性があります。ただし、その機能の使用は必須ではありません。最初のモジュールが存在しなくても、2 番目のモジュールは動作する可能性があります (そして動作するはずです)。
最初のモジュールから関数をエクスポートして2番目のモジュールで使用すると、2番目のモジュールはそのシンボルに依存し、最初のモジュールなしではロードできません。
解決策の 1 つは、最初のモジュールの関数について /proc/kallsym を調べるユーザー スクリプトを用意することです。そこに存在する場合、スクリプトはそのアドレスをパラメーターとして 2 番目のモジュールに渡し、それからポインターを作成します。 . しかし、明らかな理由から、私はその解決策が好きではありません。
2番目のモジュールが最初のモジュールのシンボルのアドレスを取得できるようにするより正確でエレガントなソリューションがある場合、ハード依存を回避しますか?