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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

统一代码段与非一致代码段

發布時間:2025/6/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 统一代码段与非一致代码段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一致代碼段與非一致代碼段

上幾篇文章,我們一直在討論的都是 GDT 相關的一些問題,現在我們知道在系統在從實模式向保護模式跳轉時,GDT 是必須要準備的結構。在介紹這一跳轉之前,這篇文章我們來介紹兩個概念:一致代碼段和非一致代碼段。

首先,我們先來看幾個問題:

  • 一致代碼段和非一致代碼段是什么?

  • 為什么要有一致代碼段和非一致代碼段?

  • 系統提供怎樣的機制來使用戶程序訪問內核數據?

  • 程序如何在段與段之間跳轉?

接下來,我們將討論上述這些問題。

特權級

為了更好的理解之后的問題,我們先來討論一個概念:特權級。

  • 特權級是一種機制來保護數據和防止惡意行為,特權級分4種:0,1,2,3。0為最高特權級,4為最低。(在 Linux 中只使用了0和3)

  • 這些特權級是通過三個標志來表示的:CPL,DPL,RPL

    • CPL 是存放于如 CS、SS 寄存器中的,表示當前特權級
    • DPL 是在 GDT(全局描述符表)/LDT(局部描述符表)中的,靜態的
    • RPL是代碼中根據不同段跳轉而確定,用于刷新 CPL
  • CPL(Current Privilege Level)是表示當前執行程序的特權級,它被存放在CS 和 SS 的第0位和第1位。通常情況下,CPL等于代碼的段的特權級。在遇到一致代碼段時,一致代碼段可以被相同或者更低特權級的代碼段訪問。當處理器訪問一個與 CPL特權級不同的代碼段時,CPL 不會改變。

  • DPL(Descriptor Privilege Level)表示段或者門的特權級,它被存儲在段描述符或門描述符的 DPL 字段中。當當前代碼段要訪問一個段或門時,DPL 會和 CPL 以及段選擇子或門選擇子的 RPL 進行比較,根據段或門的不同類型,DPL 將會被區別對待

    • 數據段:DPL 規定了可以訪問該段的最低特權級,如果 DPL 為1,那么只有運行在CPL 為0或者1的程序才有權訪問它。
    • 非一致代碼段(不使用調用門的情況下):DPL 規定了可以訪問該段的特權級,如果 DPL 為1,那么只有運行在 CPL 為1的程序才有權訪問它。
    • 調用門:DPL 規定了當前運行程序可以訪問調用門的最低特權級(和數據段訪問規則相同)
    • 一致代碼段和通過調用門訪問的非一致代碼段:DPL 規定了有權訪問該段的最高特權級。例,一個一致代碼段的 DPL 為2,那么運行在 CPL 為0,1的程序無權訪問此段。
  • RPL(Request Privilege Level):RPL 是通過選擇子的第0,1位表現出來的,處理器通過檢查 CPL 和 RPL來確認一個訪問請求是否合法。

一致代碼段與非一致代碼段

  • 一致代碼段:通俗的講,一致代碼段就是系統用來共享、提供給低特權級的程序使用調用的代碼。

  • 非一致代碼段:為了避免被低特權級程序訪問而被系統保護起來的代碼。

一致代碼段限制

  • 特權級高的程序不允許訪問特權級低的數據,即核心態程序不能訪問用戶態數據。

  • 特權級低的程序可以訪問特權級高的程序,但是特權級不會因此而改變。

非一致代碼段限制

  • 只允許同級之間訪問

  • 不允許不同級之間訪問,核心態不能訪問用戶態,用戶態也不能訪問核心態

通常低特權值代碼必須通過『門』來完成對高特權值代碼的調用

為什么要定義一致代碼段與非一致代碼段?

定義這個概念主要是為了系統安全:內核要和用戶程序分開,內核一定要安全不能被用戶程序干涉。但有時候用戶程序也需要讀取內核的某些數據。于是操作系統內核程序開辟一些可以供用用戶程序訪問的段,但是不允許用戶程序寫入數據。內核不用知道用戶程序的數據,內核不用調用用戶程序的數據,內核不用轉移到用戶程序中來。用戶程序只能訪問到內核的某些共享的段,我們稱這些段為一致代碼段。用戶程序不能訪問內核不共享的段。

門描述符

門描述符結構

調用門的使用方式

門描述符的實現

; 門描述符 ; 4個參數: ; 1.選擇子:16位 ; 2.偏移量:32位 ; 3.DCount ; 4.屬性 %macro Gate 4dw (%2 & 0FFFFh) ;取參數2的低16位填充一個 WORDdw %1 ;取參數1填充一個 WORDdw (%3 & 1Fh) | ((%4 << 8) & 0FF00h) ; 屬性dw ((%2 >> 16) & 0FFFFh) ; 偏移2 %endmacro ; 共 8 字節

不同特權級代碼段的轉移

使用 jmp 和 call 可以實現下列4種轉移:

  • 目標操作數包含目標代碼段的段選擇子

  • 目標操作數指向包含目標代碼段段選擇子的門描述符

  • 目標操作數指向包含目標代碼段段選擇子的 TTS(Task-State Stack)

  • 目標操作數指向一個任務門,這個任務門指向包含目標代碼段段選擇子對 TTS

這四種方式可以分為兩類:一是,通過 call 或 jmp 的直接轉移,二是,通過某個描述符的間接轉移

通過 call 和 jmp 直接轉移

目標代碼段條件CPL 變化
非一致代碼段CPL=DPLRPL<=DPL當轉移到目標代碼段時,CPL=DPL
一致代碼段CPL>DPL,RPL 不做檢查當轉移到目標代碼段時,CPL 會延續下來

通過門描述符的轉移

假設我們想由代碼A轉移到代碼B,運用一個調用門G,即調用門G中的目標選擇子指向代碼B的段。實際上,這個問題主要涉及這幾個元素:CPL、RPL、代碼B的DPL(記做DPL_B),調用門G的DPL(記做DPL_G)。

目標代碼段calljmp
非一致代碼段CPL<=DPL_GRPL<=DPL_GDPL_B<=CPLCPL<=DPL_GRPL<=DPL_GDPL_B=CPL
一致代碼段CPL<=DPL_GRPL<=DPL_GDPL_B<=CPLCPL<=DPL_GRPL<=DPL_GDPL_B<=CPL

通過調用門和 call 指令,可以實現低特權級到高特權級的轉移,無論目標代碼段是一致的還是非一致的

通過門調用和 jmp 指令,如果目標代碼段是一致的,則可以實現低特權級到高特權級的轉移;如果是非一致的,那么只能實現相同特權級的轉移

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的统一代码段与非一致代码段的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人小网站 | 神马午夜888| 欧美日韩人妻精品一区在线 | 久草观看视频 | 亚洲自拍小视频 | 国产野外作爱视频播放 | 午夜一二区 | www在线播放 | 网站久久久| 亚洲一区动漫 | 午夜性剧场| 久久色在线视频 | 欧洲美熟女乱又伦 | 蜜桃传媒一区二区亚洲 | 午夜性片 | 女人被狂躁c到高潮 | 福利视频免费看 | 日韩在线第三页 | 九七伦理电影 | 黄色av大全 | 粉嫩av一区二区三区天美传媒 | 国产精品亚洲二区在线观看 | 国产精品96久久久久久 | 色乱码一区二区三区在线男奴 | 欧美高清在线 | 8mav在线| 99久久亚洲精品日本无码 | 内射无码专区久久亚洲 | 免费视频一二三区 | 免费av观看网站 | 午夜影院在线播放 | 综合xx网| 亚洲国产天堂av | 在线观看免费观看 | 极品少妇一区二区 | 国产精品伦一区 | 国产美女久久 | 性高潮久久久久久久久 | 免费黄色大片网站 | 色噜噜狠狠一区二区三区牛牛影视 | 精品久久网站 | 日韩色道 | 国产麻豆xxxvideo实拍 | 伦伦影院午夜理论片 | 午夜国产一区 | 韩国成人免费视频 | 欧美性大战久久久 | 91热精品| 麻豆国产在线播放 | 三级欧美韩日大片在线看 | 韩国色网| 欧美射射 | 久久久久久国产精品免费播放 | av簧片| av电影在线观看 | 麻豆91茄子在线观看 | 国产字幕在线观看 | 国产精品伊人久久 | 在线免费看黄色 | 二区三区免费 | 日韩欧美在线一区二区 | 寂寞少妇让水电工爽hd | 成人av番号网 | 亚洲国产v| 日本理论片午伦夜理片在线观看 | 在线播放不卡 | 久色免费视频 | 亚洲AV成人无码久久精品巨臀 | 欧美日韩高清 | 日本色悠悠 | 解开乳罩喂领导吃奶 | 国产精品免费久久久 | 欧美日韩二三区 | 久久国语精品 | 午夜小电影| 国内精品免费视频 | 中文字幕第一页亚洲 | 高潮毛片 | 美日韩成人 | 黄色片大全 | 久久久久婷婷 | v在线| 国产在线中文 | 国色天香网站 | 伊人av在线播放 | 高清av一区 | 日韩欧美高清在线 | 国产欧美久久久久 | 久久女 | mm131在线| 影音先锋男人天堂 | 丝袜老师扒开让我了一夜漫画 | a v视频在线观看 | 亚洲视频一区二区三区四区 | 亚洲人人夜夜澡人人爽 | 一区二区三区有限公司 | 国产有码视频 | 69xxx中国| 中文字幕精品三级久久久 |