カーネルでプロセスを終了します。

カーネルでプロセスを終了します。

使用しようとしていますが、killLinuxカーネル内で使用しましたがsys_kill機能しません。エラーが発生したため、ユーザーコマンドのプロセスの代わりにカーネル内部プロセスを終了するために使用する必要があるものを知っている人はいますか?

だから私の問題は、カーネルのシステムコールを使用する方法とは異なります。

明確にするように求められた人のために…はい、Linuxがネットワークからパケットを受信したときにプロセスを終了しようとしています。したがって、1000個のパケットの後、Linuxはプロセス番号17722を終了する必要があります。私はKill、kill_sysを使用しようとしましたが、ユーザーレベルではなくカーネルレベルにあったので動作しませんでした。

答え1

sys_killシステムコールです。システムコールはユーザースペースアプリケーションはカーネルを呼び出します。

killカーネル内でプロセスを開始するには、以下を見てくださいkill_proc_info

答え2

カーネルがシステムコールを行うことは珍しいことではありません(または少なくとも不明ではありません)。ただし、最初にカーネル仮想アドレスを引数として渡すには、いくつかのハッキングを実行する必要があります(少なくとも他の障害と問題があります)。 、誰もが避けるべきことです(助けることができるなら)。たとえば、割り込みハンドラ内でこれを行うのは良い考えではありません。このブログ投稿合理的な説明が与えられた。

関連情報