-2

Linux カーネル モジュールを Python にインポートして、ビルドしたいアプリケーションでその機能を使用できるようにするにはどうすればよいですか。

私の目標は、Raspberry Pi で構成されるメッシュ ネットワークのルーティング目的で 2.6 以降 Linux カーネルに含まれている、Better Approach To Mobile Ad-Hoc Networking (BATMAN) カーネル モジュールを使用することです。すべてのネットワーク プログラミングに Twisted を使用します。

4

2 に答える 2

2

カーネル モジュールをロードしたくありません。カーネル モジュールには非常に奇妙な特性が多数あります (たとえば、一部の命令はノーオペレーションとしてコンパイルされ、プロセッサによってはロード時に置き換えられます)。

代わりに、Python から呼び出すことができるユーザー空間ライブラリにコードを再コンパイルする方がはるかに簡単です。

さらに単純に、batmand と呼ばれる BATMAN アルゴリズムの「ユーザー空間」ブランチを取得して、それを使用することもできます。http://www.open-mesh.org/projects/open-mesh/wiki/BranchesExplained

于 2013-04-28T03:16:55.973 に答える
0

そのモジュールのカーネルへのロードをトリガーします。これをユーザー空間プロセスにロードすることは、おそらく無駄です。理論的には、カーネル モジュールのソースを使用して C で Python モジュールを構築できますが、それでもハードウェア アクセスなどは得られず、カーネル インフラストラクチャの大部分もエミュレート/コピーする必要があります。悪い考えのように聞こえます。

于 2013-04-27T17:36:53.310 に答える