BIOS автоматически загружает таблицу прерываний?

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


person user3724492    schedule 17.09.2014    source источник
comment
en.wikipedia.org/wiki/BIOS_interrupt_call   -  person NPE    schedule 17.09.2014
comment
В наши дни подобные вопросы безнадежно неактуальны. Современный BIOS, совместимый с UEFI, работает в защищенном режиме.   -  person Hans Passant    schedule 17.09.2014
comment
Спасибо, Ганс, но разве Linux не стирает прерывания BIOS и не заменяет их собственными?   -  person user3724492    schedule 13.01.2015


Ответы (1)


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

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

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

Ссылка: http://en.wikipedia.org/wiki/BIOS_interrupt_call#Interrupt_table

IDT в защищенном режиме является аналогом IVT, который сообщает процессору, где находится ISR в ОЗУ. Перезапись IVT в реальном режиме допустима до тех пор, пока вы не укажете его в нужном месте, иначе это вызовет тройную ошибку и сбросит ЦП.

person amaneureka    schedule 19.10.2014