2

Linuxカーネルの制御フローでは、割り込みの位置を持つIDT(例:0x80システムコール)に制御が移ることがわかりました。そして、コントロールは適切なシステムコールに移動します。 IDTは起動時にのみ初期化されることも読んでください。割り込み記述子テーブル(IDT)の変更

実際のカーネルのIDT情報について、その場所などを知りたいと思います。また、知っているように、他の時にそれは変更されているか?

助けてください。

答えて

4

ルーキットを書いていますか?

とにかく、LIDT/SIDT x86命令を使用して、IDTを直接検索して操作することができます。 IDTフックについての情報は、ちょうどこの件名についてのphrack articlesでもご覧になれます。

1

Linuxでは、IRQ処理関数の宣言はinclude/linux/interrupt.hにあります。一般的な処理コードはkernel/irq/にあり、プラットフォーム固有のコードはarch /ディレクトリの下にあります。たとえば、arch/x86/kernel/irq.cとそのディレクトリの他のirq * .cファイルを見てください。

LinuxのIRQに関するロックルールとメカニズムについては、kernel/irc/*。cファイルのコメントを読んでください。他のOSは異なるロックルールを持つことができます。がんばろう!

関連する問題