2014-09-17 3 views
0

Я видел программы, такие как загрузчики, которые делают прерывания, такие как int 10, int 13 и т. Д. Очевидно, что эти записи не всегда существовали, и BIOS загружал их? Если да, то какие прерывания загружаются BIOS? Кроме того, можно перезаписать эти записи? Кстати, все это Intel x86.Поддерживает ли BIOS автоматическую загрузку таблицы прерываний?

+0

http://en.wikipedia.org/wiki/BIOS_interrupt_call – NPE

+1

Эти вопросы в наши дни безнадежно неактуальны. Современный UEFI-совместимый BIOS работает в защищенном режиме. –

+0

Спасибо, Ханс, но не Linux стирает прерывания BIOS и заменяет их своими? – user3724492

ответ

0

Yeah BIOS загружает собственную таблицу прерываний при загрузке системы, более конкретно, только когда она находится в реальном режиме, называется IVT (таблица векторов прерываний). Он локализован в самом первом КБ ОЗУ.

Теперь ваш вопрос, какие прерывания загружаются BIOS? он полностью зависит от производителя BIOS, когда впервые была введена концепция прерываний BIOS. Многие производители решили реализовать 1000 вызовов BIOS. Но немногие из них становятся очень стандартными и включены во все BIOS. Лишь немногие из них перечислены ниже

0x10 --> Video 
0x13 --> Disk 
0x14 --> Serial Port 
0x16 --> Keyboard 

порядковый номер: http://en.wikipedia.org/wiki/BIOS_interrupt_call#Interrupt_table

ИДТ в защищенном режиме является аналогом IVT, который сообщает процессору, где ИСР, расположенный в оперативной памяти. Перезапись IVT в реальном режиме - это нормально, пока вы не укажете ее в нужное место, иначе она будет генерировать тройную ошибку и сбросить CPU.

+0

Спасибо, очистил все мои сомнения :) – user3724492

Смежные вопросы