Linux カーネル空間でユーザー プログラム (カーネル モジュールではない) を実行したい場合、どのようなオプションがありますか?
KML (カーネル モード Linux) を見てきましたが、それは IA-32 アーキテクチャに固有のものです。クロスプラットフォームで、組み込み Linux システムで動作するソリューションが必要です。
Linux カーネル空間でユーザー プログラム (カーネル モジュールではない) を実行したい場合、どのようなオプションがありますか?
KML (カーネル モード Linux) を見てきましたが、それは IA-32 アーキテクチャに固有のものです。クロスプラットフォームで、組み込み Linux システムで動作するソリューションが必要です。
ユーザー プログラムはカーネル空間では実行されません。それが、ユーザー プログラムを作る理由です。
カーネル空間でコードを実行したい場合、2 つのオプションがあります。カーネルにビルドするか、カーネル モジュールと共にロードします。
call_usrmodehelper
別の質問で、あなたはカーネルプログラミングの初心者だと書いています。KML の使用は非常に型にはまらず、標準的な方法で行うよりもはるかに複雑になります。それはあなたの学習をはるかに難しくします。カーネル空間でユーザー空間アプリを実行する理由を再評価し、実行しない方法を見つけることをお勧めします。
そのようなことをする正当な理由があるかもしれませんが、その理由が何であるかは私には明らかではありません. カーネル開発で理解しておくべきことの 1 つは、何かが可能であるからといって、必ずしもそれを実行する必要があるとは限らないということです。
クロス プラットフォーム ソリューションが本当に必要な場合は、自分で作成する必要があります。KML でサポートされているアーキテクチャは、IA32 と AMD64 のみです。
FemtoLinuxを見てください。基本的には、組み込みシステムおよびARMやMIPSなどの組み込みプロセッサ用のKMLです。
異なるプラットフォームのカーネルはすべて異なるため、カーネルプログラミングは定義上、ほとんどプラットフォーム固有です。