Это из Википедии ...
Таблица дескрипторов прерываний (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 устанавливает IDT с помощью макроса set_trap_gate (находится в /usr/include/asm/system.h) и инициализирует таблицу дескрипторов прерывания, как показано в таблице «Offset Descriptionis».
Я очень сбит с толку, потому что эти два описания кажутся противоположными ... Первое говорит, что IDT связана с процессором и не зависит от ядра (на самом деле она даже не находится внутри ядра). Во втором говорится, что ядро Linux инициализирует IDT и реализует код для ISR, а весь код для ISR находится внутри ядра.
Кроме того, когда устройство генерирует прерывание для ЦП, за выполнение процедур обработки прерывания отвечает ядро или процессор? Пожалуйста, объясните мне это ... Заранее спасибо