欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CPU的特權級DPL - CPL - RPL
用比喻類(lèi)比說(shuō)明CPU的特權級DPL - CPL - RPL
首先要弄清,這是CPU的機制,不是操作系統的。
DPL是數據的保密級別
RPL是用戶(hù)程序調用系統代碼去訪(fǎng)問(wèn)數據時(shí),要求系統代碼采用的訪(fǎng)問(wèn)權限或訪(fǎng)問(wèn)的保密級別
CRL是代碼本身的訪(fǎng)問(wèn)權限級別
只能請求幫忙者降低身份去協(xié)助:RPL<=CRL,不能RPL>CRL
但這還有什么意義呢?為什么不自己直接去訪(fǎng)問(wèn)?
這是沒(méi)弄清,我們的程序代碼,是不允許直接訪(fǎng)問(wèn)數據的,是要依靠高訪(fǎng)問(wèn)權限的操作系統去訪(fǎng)問(wèn)數據的,是要依靠R0級別的系統內核去訪(fǎng)問(wèn)數據的。
網(wǎng)上的說(shuō)明強調的是:RPL是程序請求的訪(fǎng)問(wèn)權限,這句話(huà)不清楚,應該是:RPL是程序請求系統代碼代勞所訪(fǎng)問(wèn)的數據的數據級別,系統代碼以自己的權限才能直接訪(fǎng)問(wèn)數據,然后取出程序要求級別的數據。
看了網(wǎng)上一些說(shuō)明,有的很長(cháng)很復雜,也有一些比喻,但發(fā)現這些比喻雖然叫好的多,感覺(jué)很容易明白比喻故事本身,但這故事根本沒(méi)對上路數,沒(méi)比喻說(shuō)明清楚三者關(guān)系。
有:
第13章 特權級DPL - CPL - RPL
筆記總結:
原書(shū)(自己動(dòng)手寫(xiě)操作系統)沒(méi)有怎么看懂,所以在網(wǎng)上找到了一些資料,感覺(jué)明白了許多,所以一一轉貼過(guò)來(lái),可能對大家的理解有些幫助。要想真正搞懂CPL,DPL和RPL,還是得去K Intel64 and IA32 編程手冊3A 4.5 PRIVILEGE LEVELS和4.10.4 Checking Caller Access Privileges (ARPL Instruction)。
一、三者的定義與區別
1、1.當前特權CPL(Current Privilege Level)
CPL是當前進(jìn)程的權限級別(Current Privilege Level),是當前正在執行的代碼所在的段的特權級,存在于cs寄存器的低兩位。
2、2.描述符特權級DPL(Descriptor Privilege Level)
DPL存儲在段描述符中,規定訪(fǎng)問(wèn)該段的權限級別(Descriptor Privilege Level),每個(gè)段的DPL固定。
3、3.請求特權級RPL(Request Privilege Level)
RPL保存在選擇子的最低兩位。RPL說(shuō)明的是進(jìn)程對段訪(fǎng)問(wèn)的請求權限,意思是當前進(jìn)程想要的請求權限。
RPL的值由程序員自己來(lái)自由的設置,并不一定RPL>=CPL,但是當RPL<CPL時(shí),實(shí)際起作用的就是CPL了,因為訪(fǎng)問(wèn)時(shí)的特權檢查是判斷:EPL=max(RPL,CPL)<=DPL是否成立,所以RPL可以看成是每次訪(fǎng)問(wèn)時(shí)的附加限制,RPL=0時(shí)附加限制最小,RPL=3時(shí)附加限制最大。所以你不要想通過(guò)來(lái)隨便設置一個(gè)RPL來(lái)訪(fǎng)問(wèn)一個(gè)比CPL更內層的段。
二、為甚麼在CPL之外增加一個(gè)RPL
Intel手冊上的解釋為:The RPL can be used to insure that privileged code does not access a segment on behalf of an application program unless the program itself has access privileges for that segment.
(RPL能夠用來(lái)確保具有特權級的代碼不會(huì )代表另一個(gè)應用程序去訪(fǎng)問(wèn)一個(gè)段,除非那個(gè)應用程序具有訪(fǎng)問(wèn)那個(gè)段的權限.)
比方說(shuō):A進(jìn)程的DPL為0,C進(jìn)程的DPL為1,現在有一個(gè)B進(jìn)程他的DPL為2,這B進(jìn)程想委托A進(jìn)程(外圍程序可以訪(fǎng)問(wèn)一致代碼段的內核)去訪(fǎng)問(wèn)C的數據(內核可以訪(fǎng)問(wèn)外圍數據),
如果沒(méi)有RPL來(lái)限制的話(huà),這樣的委托訪(fǎng)問(wèn)是可以成功的,但這樣是非常不安全的。
有了RPL以后,A進(jìn)程在訪(fǎng)問(wèn)C的時(shí)候還要受到RPL的約束,此時(shí)可以將訪(fǎng)問(wèn)C的選擇子的RPL設為B的DPL,這樣A的訪(fǎng)問(wèn)權限就相當為EPL=max(RPL,DPL)=2,這樣他就無(wú)法代表B去越權訪(fǎng)問(wèn)C了。(那還要委托A干嘛?反正B如果不夠權限,委托誰(shuí)都沒(méi)用;如果B有權限,不用委托別人也可以???)
有RPL的情形,CPU同時(shí)檢查CPL和RPL來(lái)判斷是否允許對一個(gè)段的訪(fǎng)問(wèn)。在低特權級代碼調用高特權級代碼時(shí),你可以把RPL認為是調用者CPL的影子。即使高特權級代碼在運行,但它是應低特權級代碼的請求,作為低特權級代碼的代理在執行任務(wù),在必要的時(shí)候,RPL作為對CPL的覆蓋,可以削弱當前執行代碼的可訪(fǎng)問(wèn)的區域,從而保證高特權級代碼不會(huì )代表低特權級代碼去訪(fǎng)問(wèn)一個(gè)后者沒(méi)有訪(fǎng)問(wèn)權限的段。
這里有一個(gè)問(wèn)題,就是低特權級代碼在向高特權級代碼傳遞段選擇子時(shí),可以任意設置RPL。所以x86處理器有一條專(zhuān)門(mén)的指令ARPL用來(lái)糾正RPL。
三、農民的例子
一個(gè)農民(低特權級)請縣長(cháng)(高特權級)打聽(tīng)一種超級種子,如果找到的話(huà)幫忙拿一點(diǎn)回來(lái),聽(tīng)聞這種超級種子可讓收成倍增??h長(cháng)說(shuō):好!我認識很多當官的,我可以幫你打聽(tīng)一下哪里有,但是有些地方如果需要表示身分的話(huà)我只能說(shuō)我是農民的代理人??h長(cháng)利用自己的身份很容易找到了種子在哪里---找的時(shí)候沒(méi)有人問(wèn)起他代表誰(shuí)??h長(cháng)問(wèn)種子管理員可不可以給他一點(diǎn),管理員說(shuō)種子不能給農民因為種子還在試驗階段,我們可以給縣長(cháng)讓他們帶回當地的專(zhuān)家來(lái)幫忙一起做試驗,但是一定要縣長(cháng)來(lái)申請。那你是誰(shuí)?縣長(cháng)說(shuō)我是農民的代理人,因為縣長(cháng)保證他會(huì )這樣回答的(他也不知道那農民是不是專(zhuān)家),管理員當然不給??h長(cháng)沒(méi)辦法只能告訴農民拿不到種子。這件事里面縣長(cháng)是以縣長(cháng)的身份幫農民找到種子,但需要表示身分的時(shí)候他說(shuō)只是農民的代理人。這樣做縣長(cháng)可以幫人但也不會(huì )給別人利用。(農民可能把種子拿回來(lái)賣(mài)錢(qián)也說(shuō)不定,沒(méi)人知道)
在這里RPL就是縣長(cháng)的另一個(gè)身份---農民的代理人也就是農民---他會(huì )帶在身上,人家沒(méi)有問(wèn)他的時(shí)候他不會(huì )告訴別人,所以別人也就以縣長(cháng)的身分來(lái)看待他。當查身份的時(shí)候他才告訴你---我是農民的代理人。
四、微服私訪(fǎng)的例子
本身你是個(gè)縣長(cháng)(CPL=3),你去一個(gè)省訪(fǎng)問(wèn)(DPL=1),按理說(shuō)你就只能接受縣長(cháng)待遇,訪(fǎng)問(wèn)只能由縣長(cháng)訪(fǎng)問(wèn)的地方(DPL=3)。訪(fǎng)問(wèn)的時(shí)候需要領(lǐng)一個(gè)許可證RPL,它決定你可以訪(fǎng)問(wèn)哪些地方。這個(gè)時(shí)候你想偽裝成總理,于是申請了一個(gè)RPL=0許可證(實(shí)際表現為傳遞給操作系統一個(gè)RPL=0的段選擇符),但檢查部門(mén)(操作系統內核)發(fā)現了你的偽裝(通過(guò)使用ARPL指令),把你打回原形(讓RPL=CPL=3),最后你還是只能訪(fǎng)問(wèn)縣長(cháng)能訪(fǎng)問(wèn)的地方,你的偽裝計劃失敗了。 (這個(gè)所謂許可證RPL不是多余嗎?為什么不直接看縣長(cháng)身份?)
五、RPL的理解
CPL和DPL都是見(jiàn)字面就能理解含義的。唯獨RPL不容易理解。
今天就說(shuō)說(shuō)我的理解,將來(lái)回頭來(lái)看看,今天說(shuō)的到底對不對。
1、- 當前進(jìn)程的意愿 -
RPL代表了當前進(jìn)程的意愿(因為是一種request)。注意,是當前進(jìn)程的意愿而不是別的進(jìn)程。其次是一種意愿,是否實(shí)現還有待CPU的許可。
2、- 不能超越自己的特權級 -
前面的帖子已經(jīng)說(shuō)了,RPL可以由當前進(jìn)程隨便寫(xiě),但是CPU會(huì )檢查RPL和CPL的取值,如果RPL填寫(xiě)的特權級比自己實(shí)際情況還高,CPU就不會(huì )認可,仍舊給他當前的權限。
3、- 只能下降權限 -
鑒于上面的原因,使用RPL的真正情況就是當前進(jìn)程使用比自己低的或者相同的RPL。這種情況最典型的,就是外圍程序A調用內核B,然后通過(guò)內核B再訪(fǎng)問(wèn)程序C。由于訪(fǎng)問(wèn)的來(lái)源是A,所以?xún)群藶榱税踩鹨?jiàn),將RPL(來(lái)自A的訪(fǎng)問(wèn)意愿)設置為A的DPL。這樣在邏輯上就完整了。內核就不會(huì )越俎代庖了。
六、wintel 中的優(yōu)先級 ring0 ring3
這得從CPU指令系統(用于控制CPU完成各種功能的命令)的特權級別說(shuō)起。在CPU的所有指令中,有一些指令是非常危險的,如果錯用,將導致整個(gè)系統崩潰。比如:清內存、設置時(shí)鐘等。如果所有的程序都能使用這些指令,那么你的系統一天死機n回就不足為奇了。所以,CPU將指令分為特權指令和非特權指令,對于那些危險的指令,只允許操作系統及其相關(guān)模塊使用,普通的應用程序只能使用那些不會(huì )造成災難的指令。形象地說(shuō),特權指令就是那些兒童不宜的東東,而非特權指令則是老少皆宜。
Intel的CPU將特權級別分為4個(gè)級別:RING0,RING1,RING2,RING3。Windows只使用其中的兩個(gè)級別RING0和 RING3,RING0只給操作系統用,RING3誰(shuí)都能用。如果普通應用程序企圖執行RING0指令,則Windows會(huì )顯示“非法指令”錯誤信息。盡管有CPU的特權級別作保護,遺憾的是WINDOW98本身漏洞很多,使用Windows 98的系統一天死機n回也是正常的
七、特權級到實(shí)際軟件的映射
先說(shuō)下特權級的概念,在保護模式下,系統依靠特權級來(lái)實(shí)施代碼和數據的保護,相當于權限啦。特權級共有4個(gè)級別,0,1,2,3,數字越小表示權限越高。如圖:
較為核心的代碼和數據放在較高(靠?jì)?的層級中,處理器用此來(lái)防止較低特權的任務(wù)在不被允許的情況下訪(fǎng)問(wèn)處于高特權級的段。為了防止概念混淆,我們不用特權級大小來(lái)說(shuō)明,改為內層(高),外層(低)來(lái)講。
八、我的理解:
DPL是數據允許訪(fǎng)問(wèn)所要求的權限級別
RPL是代碼請求別人幫忙時(shí),幫忙者應采用的權限級別
CRL是代碼本身的權限級別
只能請求幫忙者降低身份去協(xié)助:RPL<=CRL,如果RPL>CRL
但這還有什么意義呢?為什么不自己直接去訪(fǎng)問(wèn)?
因為不允許自己直接去訪(fǎng)問(wèn),就像不允許自己直接進(jìn)保密室取文件一樣。假設權限從高到低是0-3,你是訪(fǎng)問(wèn)權限2,可以查看保密級別2及之后的文件,而保密室主管是最高權限0,你只能請求保密室主管去取保密級別2及之后的文件,不能要求代你取出保密級別0-1的文件。RPL就是你要求訪(fǎng)問(wèn)的文件保密級別。
保密室主管為你取文件時(shí),會(huì )按你本身訪(fǎng)問(wèn)權限及所要求的文件保密級別,取出你有資格訪(fǎng)問(wèn)的文件。這個(gè)訪(fǎng)問(wèn)資格只能是在你的權限級別之內,即RPL<=CRL。
所以,準確來(lái)講,RPL是代碼調用系統代碼去訪(fǎng)問(wèn)數據時(shí),系統代碼所使用的數據訪(fǎng)問(wèn)權限。也就是你所能要求的訪(fǎng)問(wèn)權限。感覺(jué)還是不如那個(gè)比喻來(lái)得明白。
保密室主管為你取文件時(shí),會(huì )按你本身訪(fǎng)問(wèn)權限及所要求的文件保密級別,取出你有資格訪(fǎng)問(wèn)的文件。這個(gè)訪(fǎng)問(wèn)資格只能是在你的權限級別之內,即RPL<=CRL。
所以,準確來(lái)講,RPL是代碼調用系統代碼去訪(fǎng)問(wèn)數據時(shí),系統代碼所使用的數據訪(fǎng)問(wèn)權限。也就是你所能要求的訪(fǎng)問(wèn)權限。感覺(jué)還是不如那個(gè)比喻來(lái)得明白。
其實(shí),沒(méi)明白過(guò)來(lái)的原因,就是首先沒(méi)明白這RPL是誰(shuí)在使用的權限。RPL其實(shí)是供系統內核所使用的,系統內核本身有自己的CRL,而且是最高權限的。系統內核就相當于圖書(shū)管理員或保密室主管。我們借書(shū)或取保密文件都得通過(guò)他們經(jīng)手,不能自己直接進(jìn)庫房去取,我們會(huì )提出要取哪個(gè)借閱級別的書(shū)或哪個(gè)保密級別的文件,這個(gè)級別就是RPL,是數據的范圍;也可以說(shuō)是我們提出要取哪種訪(fǎng)問(wèn)權限內所允許的文件。
CRL是訪(fǎng)問(wèn)者的訪(fǎng)問(wèn)權限,DRL是被訪(fǎng)問(wèn)者(數據)所要求的訪(fǎng)問(wèn)權限(即保密級別),RPL是訪(fǎng)問(wèn)者向管理員所要求的訪(fǎng)問(wèn)權限或保密級別,如果高過(guò)訪(fǎng)問(wèn)者自己的訪(fǎng)問(wèn)權限,就會(huì )自動(dòng)降低到自己的訪(fǎng)問(wèn)權限,如果低于則按要求的低訪(fǎng)問(wèn)權限進(jìn)行訪(fǎng)問(wèn)。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
DPL,RPL,CPL 之間的聯(lián)系和區別
一致代碼段和非一致代碼段
DPL,RPL,CPL關(guān)系詳解(2) 牛B的解釋
一致性/非一致性代碼段的總結
2分鐘玩轉保護模式設計
內核代碼學(xué)習==>深入介紹Linux內核(六)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久