日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 57 门、调用门与RPL序 2

發布時間:2023/12/10 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 57 门、调用门与RPL序 2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上文:

提供了4種門的原因是,它們都有各自的應用環境,但它們都是用來實現從低特權級的代碼段轉向高特權級的代碼段,咱們這里也只討論有關特權級的功用:

  • 1.調用門
  • call和jmp指令后接調用門選擇子為參數,以調用函數例程的形式實現從低特權向高特權轉移,可用來實現系統調用。call指令使用調用門可以實現向高特權代碼轉移,jmp指令使用調用門只能實現向平級代碼轉移。

  • 2.中斷門
  • 以int指令主動發中斷的形式實現從低特權向高特權轉移,linux系統調用便用此中斷門實現,以后咱們在實現中斷時會展開細說。

  • 3.陷阱門
  • 以int3指令主動發中斷的形式實現從低特權向高特權轉移,這一般是編譯器在調試時用,本書中咱們不用過多關注。

  • 4.任務門
  • 任務以任務狀態段TSS為單位,用來實現任務切換,它可以借助中斷或指令發起。當中斷發生時,如果對應的中斷向量號是任務門,則會發起任務切換。也可以像調用門那樣,用call或jmp指令后接任務門的選擇子或任務TSS的選擇子。

    坦白說,現代操作系統很少用到調用門和任務門,在咱們的系統中也只用到了中斷門,而陷阱門是供調試器用的,咱們并未打算支持應用程序的調試,一方面工作量較大,另一方面違背咱們的初衷,就是想通過更少的代碼了解操作系統原理。

    不知道大伙兒有沒有想過,為什么可以使用門結構進入高特權級呢?這肯定是cpu硬件電路中寫好的規則,具體我也不清楚也不需要搞清楚,但我是這樣理解的,舉個例子,用門提升特權級,就像站在高處的臺子上往蹦床上跳一樣,人會被蹦床彈得比臺子還高。關鍵點:臺子的高度位于蹦床和目標高度之間,至少得和蹦床一樣高,這樣人才能被彈得更高。其效果如圖

    實際上,門也是按照這個蹦床原理實現的,我們把“門”分成門檻和門框來比喻:

    門的“門檻”是訪問者特權級的下限,訪問者的特權級再低也不能比門描述符的特權級DPL低,否則訪問者連門都進不去,更談不上使用調用門。即門描述符的DPL特權級要低于或等于當前特權級CPL,即數值上CPL <= 門的DPL,此處可見,門描述符相當于數據段描述符一樣,只允許比自己特權級高或相同特權級的程序訪問。

    門的“門框”是訪問者特權級的上限,訪問者的特權級再高也不能比門描述符中目標程序所在代碼段的DPL高,否則本身的特權級就比目標代碼特權級還高的話,還使用門干嗎,而且真要是這樣的話,這意味是特權級由高向低轉移了,這絕對是被禁止的。也就是說,門中包含的目標程序所在的段的特權級DPL要高于或等于當前特權級CPL,即數值上CPL >= 目標代碼段DPL,進門之后,處理器將以目標代碼段DPL為當前特權級CPL,因此進門之后,就能“一步登天”啦。

    總結

    以上是生活随笔為你收集整理的一步步编写操作系统 57 门、调用门与RPL序 2的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。