これはウィキペディアからです...
割り込み記述子テーブル(IDT)は、x86アーキテクチャが割り込みベクタテーブルを実装するために使用するデータ構造です。IDTは、割り込みと例外に対する正しい応答を決定するためにプロセッサによって使用されます... 8086プロセッサでは、IDTはアドレス0x0000から0x03ffまでのメモリ内の固定位置にあります...
これはhttp://www.linuxjournal.com/article/4048?page=0,1からです
start_kernel(/usr/src/linux/init/main.cにあります)が呼び出されると、trap_init(/usr/src/linux/kernel/traps.cにあります)が呼び出されます。trap_initは、マクロset_trap_gate(/usr/include/asm/system.hにあります)を介してIDTをセットアップし、「OffsetDescriptionis」テーブルに示されているように割り込み記述子テーブルを初期化します。
これらの2つの説明は対照的であるように見えるため、私はかなり混乱しています...最初の説明は、IDTがプロセッサに関連しており、カーネルから独立していることを示しています(実際にはカーネル内にありません)。2つ目は、LinuxカーネルがIDTを初期化し、ISRのコードを実装し、ISRのすべてのコードがカーネル内にあることを示しています。
また、デバイスがCPUへの割り込みを生成する場合、割り込みルーチンの実行を担当するのはカーネルなのかプロセッサなのか。親切に説明してください...よろしくお願いします