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