3
我試圖劫持定時器中斷。一位同事告訴我IDT(中斷描述符表)上的中斷0x08是定時器。詛咒我檢查,看到兩個可能的答案:this其中說,8是real clock timer
和this說這是Double Fault
中斷 - 我決定相信他,而不是浪費時間進一步檢查。在最終控制了IDT並替換了中斷8之後,什麼也沒有發生。什麼是觸發0x08中斷?
- 那麼是怎麼回事?
- 從定時器到雙重故障,這個中斷是否隨時間改變了它的用途?
- 這個中斷在ARM/Intel /等上有不同的用途嗎?
我的代碼是一個內核模塊,它劫持中斷8,每次中斷到來時都會執行一個printk
命令。我跑了大約25分鐘 - 沒有輸出在dmesg
。
萬一它很重要:我在VM上運行Linux內核3.8的Linux Mint。主機有一個Intel i5。
內核是否已經使用它來執行進程調度? – falstro
也許 - 我期待內核崩潰,然後調用我的函數原始函數(代理原始處理程序)。但現在看來什麼都沒有發生。 –
@roe:在大多數現代內核中,[APIC timer](http://wiki.osdev.org/APIC_timer)用於此目的。更加靈活和精確,而且是每個CPU而不是全局的。 – duskwuff