門描述符(gate descriptors)總結



在保護模式下,中斷描述符表(IDT)中的每個表項由8個字節組成,其中的每個表項叫做一個門描述符(Gate Descriptor), “門”的含義是指當中斷髮生時必須先訪問這些“門”,能夠“開門”(即將要進行的處理需通過特權檢查,符合設定的權限等約束)後,然後才能進入相應的處理程序。而門描述符則描述了“門”的屬性(如特權級、段內偏移量等)。在IDT中,可以包含如下3種類型的系統段描述符:

  • 中斷門描述符(Interrupt-gate descriptor): 用於中斷處理,其類型碼爲110,中斷門包含了一個外設中斷或故障中斷的處理程序所在段的選擇子和段內偏移量。當控制權通過中斷門進入中斷處理程序時,處理器清IF標誌,即關中斷,以避免嵌套中斷的發生。中斷門中的DPL(Descriptor Privilege Level)爲0,因此用戶態的進程不能訪問中斷門。所有的中斷處理程序都由中斷門激活,並全部限制在內核態。


  • 陷阱門描述符(Trap-gate descriptor):用於系統調用,其類型碼爲111,與中斷門類似,其唯一的區別是,控制權通過陷阱門進入處理程序時維持IF標誌位不變,也就是說,不關中斷。


  • 任務門描述符(Task-gate descriptor)和調用門描述符(Call-gate descriptor): 這兩種主要是Intel設置的“任務”切換的手段。

80386的中斷門描述符、陷阱門描述符的格式:

這裏寫圖片描述

發佈了40 篇原創文章 · 獲贊 42 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章