2

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

その場所など、実際のカーネルからの IDT 情報について詳しく知りたいです。また、他の時点で変更されているかどうかを知りたいですか?

助けてください。

4

2 に答える 2

5

rooktitを書いていますか?

とにかく、LIDT/SIDT x86 命令を使用して、IDT を直接見つけて操作できます。また、まさにこのテーマに関する優れたphrack 記事で、IDT フックに関する情報を見つけることもできます。

于 2011-01-11T15:59:44.497 に答える
1

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

Linux の IRQ に関するロック規則とメカニズムを理解するには、kernel/irc/*.c ファイルのコメントを読む必要があります。他の OS では、異なるロック規則を使用できることに注意してください。幸運を!

于 2011-01-11T07:22:58.603 に答える