Apakah BIOS secara otomatis memuat tabel interupsi?

Saya telah melihat program seperti bootloader yang membuat interupsi seperti int 10, int 13, dan seterusnya. Jelas sekali entri-entri ini tidak selalu ada, jadi apakah BIOS memuatnya? Jika ya, interupsi manakah yang dimuat oleh BIOS? Selain itu, apakah boleh menimpa entri ini? Omong-omong, semua ini adalah Intel x86.


person user3724492    schedule 17.09.2014    source sumber
comment
en.wikipedia.org/wiki/BIOS_interrupt_call   -  person NPE    schedule 17.09.2014
comment
Pertanyaan-pertanyaan seperti ini sudah tidak relevan lagi saat ini. BIOS modern yang kompatibel dengan UEFI berjalan dalam mode terproteksi.   -  person Hans Passant    schedule 17.09.2014
comment
Terima kasih, Hans, tetapi bukankah Linux menghapus interupsi BIOS dan menggantinya dengan miliknya sendiri?   -  person user3724492    schedule 13.01.2015


Jawaban (1)


Ya, BIOS memuat tabel Interupsinya sendiri ketika sistem di-boot, lebih spesifik, hanya ketika berada dalam mode nyata, yang disebut IVT (Tabel vektor interupsi). Itu dilokalisasi di KB pertama memori RAM.

Sekarang pertanyaan Anda interupsi mana yang dimuat oleh BIOS? baik itu sepenuhnya tergantung pada pabrikan BIOS, Ketika konsep interupsi BIOS pertama kali diperkenalkan. Banyak produsen memutuskan untuk menerapkan 1000-an Panggilan BIOS. Tetapi hanya sedikit dari mereka yang menjadi standar dan disertakan di semua BIOS. Beberapa di antaranya tercantum di bawah ini

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

Referensi: http://en.wikipedia.org/wiki/BIOS_interrupt_call#Interrupt_table

IDT dalam mode Terlindungi adalah bagian dari IVT yang memberi tahu CPU di mana letak ISR di RAM. Menimpa IVT dalam mode nyata tidak masalah sampai Anda mengarahkannya ke lokasi yang benar, jika tidak maka akan menghasilkan kesalahan rangkap tiga dan mengatur ulang CPU.

person amaneureka    schedule 19.10.2014