в чем разница между IVT и IDT?

в системе Linux, в чем разница между таблицей векторов прерываний (IVT) и таблицей дескрипторов прерываний (IDT) ?

3 ответов


Это не имеет ничего общего с Linux. Это структуры ЦП, которые инициализирует ОС для обработки прерываний и исключений. В режиме реальной адресации структура просто содержит адреса ISR. Этот формат известен как IVT. В защищенном режиме структура является более сложной и называется IDT. Руководство CPU от Intel или AMD расскажет вам все подробности об обработке прерываний.

современные ОС работают почти полностью в защищенном режиме и, следовательно, используют IDT. Этот IVT необходим только при загрузке ОС, потому что это происходит в реальном режиме.


IVT действителен только в реальном режиме, а IDT действителен в защищенном режиме

в архитектуре x86 таблица векторов прерываний (IVT) является таблицей что указывает адреса всех 256 обработчиков прерываний, используемых в реальный режим [подробнее...]

таблица дескрипторов прерываний (IDT) специфична для I386 архитектура. Это защищенный режим аналог реального режима Таблица векторов прерываний (IVT), указывающая, где прерывание Услуга Расположены подпрограммы (ISR). [подробнее...]


обработка прерываний в Реальном Режиме В реальном режиме Нижний 1K памяти содержит структуру данных, известную как таблица векторов прерываний (IVT). Номинально в этой таблице 256 записей. (Начиная с 80286, IVT не требуется иметь 256 записей или начинать с физического адреса 0. База, адрес и длина IVT определяются путем просмотра регистра таблицы дескрипторов I**nterrupt**.) Каждая запись содержит указатель far на процедуру прерывания службы. Любой тип маршрутов прерываний к соответствующей процедуре обслуживания прерываний через эту таблицу. Процессор индексирует номер прерывания в этой таблице; нажимает текущие CS, IP и флаги в стеке; и вызывает указатель far, указанный в IVT. Обработчик обрабатывает прерывание, а затем выполняет инструкцию IRET для возврата управления в место, где процессор выполнялся во время прерывания.

обработка прерываний в защищенном режиме В защищенном режиме прерывания обрабатывается аналогично реальному режиму. Таблица дескрипторов прерываний (IDT) делает то, что IVT делает в реальном режиме. IDT состоит из массива 8-байтовых сегментных дескрипторов, называемых gates. Регистр таблицы дескрипторов прерываний (IDTR) содержит базовый адрес и предел IDT. IDT должен существовать в физической памяти и никогда не должен переключаться в виртуальную память. Это связано с тем, что если прерывание должно было произойти во время замены IDT, процессор создаст исключение, требующее IDT, чтобы получить обработчик для обработки этого исключения, и так далее, пока система не разбилась. Ворота в IDT могут состоять из трех типов: ворота прерывания, ворота ловушки и ворота задачи. Мы не будем останавливаться на деталях ловушки и врат задания. Дополнительные сведения см. В документации по процессорам Intel.

http://www.reverse-engineering.info/SystemHooking/hooksoft.htm