ubuntu10.04 Linuxカーネルで、実行するモジュールをinsmodすると
while(1);
一部、init_module
システム全体が停止します。
while(1);
ただし、部分的に実行される Windows 7 で sys ファイルをロードするとDriverEntry
、システムは遅くなりますが、それでも動作します。
2 つのシステムが異なる理由と、カーネル内で何が起こっているのか、誰か説明してもらえますか? ...
init_module
最初のケース(の無限ループ)では、システムが停止する理由はないと思います。で作成while(1);
しても、ユーザーアプリケーションプログラムinit_module
のコンテキストで実行されているためです。insmod
したがって、フローの無限ループは、ハードウェア割り込み信号によってスケジュールする必要があります。
あくまでも個人的な意見ですので、間違っていたら詳しく教えていただきたいです...