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

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

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

開(kāi)通VIP
DPL,RPL,CPL關(guān)系詳解(2) 牛B的解釋

RPL是段選擇子里面的bit 0和bit 1位組合所得的值
但這里要首先搞清楚什么是段選擇子,根據Intel 的文件(IA-32 IntelR Architecture Software Developer‘s Manual, Volume 3System Programming Guide)它是一個(gè)16Bit identifier (原文:A segment selector is a 16-bit identifier for a segment). 但 identifier 又是什么. identifier 可以是一個(gè)變數的名字( An identifier is a name for variables), 簡(jiǎn)單的說(shuō)它可以就是一般意義的變數. 這里 16-bit identifier for a segment 可以就是一個(gè)一般意義的16bit變數但同時(shí)要求對它的值解釋的時(shí)候必須跟據Intel定下的規則---也就是bit 0和bit 1位的組合值就是RPL等等…
因此在程序里如果有需要的話(huà)你可以聲明一個(gè)或者多個(gè)變數來(lái)代表這些段選擇子,這樣的話(huà)你的程序在某一時(shí)刻就可以有很多段選擇子,當然有那么多段選擇子就有那么多RPL.可以這樣說(shuō)程序有多少個(gè)是RPL是你怎樣看待你自己聲明的變數.
程序的CPL(CS.RPL)是CS register 里bit 0和bit 1 位組合所得的值.在某一時(shí)刻就只有這個(gè)值唯一的代表程序的CPL.
而DPL是段描述符中的特權級, 它的本意是用來(lái)代表它所描述的段的特權級. 一個(gè)程序可以使用很多段(Data,Code,Stack)也可以只用一個(gè)code段等.在正常的情況下當程序的環(huán)境建立好后,段描述符都不需要改變-----當然DPL也不需要改變.
所有的程序轉跳,CPU都不會(huì )把段選擇子的RPL賦給轉跳后程序的CS.RPL.
轉跳后程序的CPL(CS.RPL)只會(huì )有下面的倆種可能
轉跳后程序的CPL(CS.RPL) = 轉跳前程序的CPL(CS.RPL)

轉跳后程序的CPL(CS.RPL) = 轉跳后程序的CodeDescriptor.DPL
以 Call 為例(只能跳到等于當前特權級或比當前特權級更高的段):
怎樣決定這兩種選擇,這就要首先知道轉跳后程序的段是一致代碼段還是非一致代碼段.其實(shí)也很簡(jiǎn)單,規則如下:
如果能成功轉跳到一致代碼段, 轉跳后程序的CPL(CS.RPL) = 轉跳前程序的CPL(CS.RPL),(轉跳后程序的CPL繼承了轉跳前程序的CPL)
如果能成功轉跳到非一致代碼段, 轉跳后程序的CPL(CS.RPL)?。睫D跳后程序的Descriptor.DPL。(轉跳后程序的CPL變成了該代碼段的特權級.我在前面提到DPL是段描述符中的特權級, 它的本意是用來(lái)代表它所描述的段的特權級)
怎樣才能成功轉跳啦?
這里有四個(gè)重要的概念:
1).段的保護觀(guān)念是高特權級不找低特權級辦事,低特權級找高特權級幫忙,相同的一定沒(méi)問(wèn)題.(這樣想邏輯是沒(méi)錯,事實(shí)對不對就不知道.)也就是縣長(cháng)不找鄉長(cháng),鄉長(cháng)不求農民,反過(guò)來(lái)農民求鄉長(cháng),鄉長(cháng)找縣長(cháng).這個(gè)概念是最重要的。
2) 一致代碼段的意義: 讓客人很方便的利用主人(一致代碼段)的東西為自己辦事.但客人這身份沒(méi)有改變NewCS.RPL=OldCS.RPL所以只能幫自己辦事。比方說(shuō)鄉長(cháng)有一頭牛,農民可以借來(lái)幫自己種田,但不能種別人的田.但是如果你是鄉長(cháng)當然可以種鄉里所有的田。
3) 非一致代碼段的意義:主人(非一致代碼段)可以幫客人但一定是用自己的身份NewCS.RPL= DestinationDescriptorCode.DPL這里可能有安全的問(wèn)題, 搞不好很容易農民變縣長(cháng)。主人太頑固了一定要堅持自己的身份,有什么方法變通一下,來(lái)個(gè)妥協(xié)好不好。好的,它就是RPL的用處
4) RPL: 它讓程序有需要的時(shí)候可以表示一個(gè)特權級更低的身份Max(RPL,CPL)而不會(huì )失去本身的特權級CPL(CS.RPL)。有需要的時(shí)候是指要檢查身份的時(shí)候?!『茈y理解,看這個(gè)故事而故事的人物是來(lái)自另外的帖子的。
一個(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í)候他才告訴你---我是農民的代理人。
RPL保存在段選擇子里,而段選擇子可以是變數(要不然縣長(cháng)怎樣帶在身上,這樣縣長(cháng)也有機會(huì )多代表多一些人),當你用Call的時(shí)候用上這些變數,這些變數就成了段選擇子
事實(shí)上RPL跟段本身的特權級DPL和當前特權級CPL沒(méi)有什么關(guān)系,因為RPL的值在成功轉跳后并不賦給轉跳后的CS.RPL.
還是要問(wèn)怎樣才能成功轉跳啦?
普通轉跳(沒(méi)有經(jīng)過(guò)Gate 這東西)
目標是一致代碼段:
CPL(CS.RPL)>=DestinationDescriptorCode.DPL  就可以啦,其他RPL是不檢查的
轉跳后程序的CPL(NewCS.RPL) = 轉跳前程序的CPL( OldCS.RPL)
上面的安排就是概念1,2的意思。
目標是非一致代碼段:
CPL(CS.RPL)=DestinationDescriptorCode.DPL AND RPL<= CPL(CS.RPL)
轉跳后程序的CPL(NewCS.RPL) = DestinationDescriptorCode.DPL
上面的安排就是概念3的意思和部分1的意思----主人(一致代碼段)只幫相同特權級的幫客人做事。
To be continuous
Continuous
2006/04/13
現在說(shuō)明一下gate 的用法:
gate簡(jiǎn)單來(lái)說(shuō)可以想象成政府為人民提供的一個(gè)政府訴求中心,它可以集中收集人民對政府的要求和投訴。。。。。。然后把這些訴求發(fā)給相關(guān)的政府部門(mén)來(lái)處理。
這里繼續用農民想要一種超級種子的故事來(lái)說(shuō)明一下。我覺(jué)得上面的故事還是不太貼切RPL的用法,在這里一起加上gate的用法再說(shuō)明一下。
Intel政府為了收集廣大市民的意見(jiàn)在政府的土地上建立了一所訴求中心,在它的入口放了一塊告示寫(xiě)著(zhù):我們這里只歡迎普通的市民,如果你是當官的就不要來(lái)啦。Intel 政府的訴求中心總是有這樣的告示,要求你的身份如果是這檔次或者在這個(gè)檔次以下的我們就歡迎,不是的就不要來(lái)了。這是Intel政府的特色,誰(shuí)也改不了。
農民想要超級種子,不知道找Intel政府那個(gè)部門(mén)幫忙。但是他知道可以向Intel政府的訴求中心反映一下。他來(lái)到了訴求中心并通過(guò)了身份檢查,交了申請文件就回家等消息。身份檢查在這里須要說(shuō)明一下,原來(lái)身為Intel的市民徐了有出1)世紙外,在身上還可以帶上兩種證件2)身份證,3)工作證, 在身上帶多少張工作證是沒(méi)問(wèn)題的,只是在身份檢查的時(shí)候你只能拿一張出來(lái),這種工作證上的身份是自己填的,填什么身份都可以,這次發(fā)財了,填上一個(gè)大官不是很好。你想得美,在身份證里也有就放著(zhù)你天生的身份(身份證的資料是依照世紙外來(lái)填),在身份檢查的時(shí)候身份證跟工作證一起對比,政府只認檔次低的那一個(gè)。這樣看來(lái)工作證對農民來(lái)說(shuō)是沒(méi)有什么好處,是的,真的是沒(méi)有什么好處。農民只要把那張工作證填上身份證的資料就是了。通過(guò)了訴求中心的身份檢查,訴求中心的人員就把你的文件交給相關(guān)政府部門(mén),相關(guān)的政府部門(mén)也會(huì )再次對你的身份進(jìn)行檢查,但這一次它不會(huì )檢查你的那張工作證,它只會(huì )檢查你的身份證。以辦事原則的不同,Intel政府的部門(mén)可以分為兩種類(lèi)型1)一致代碼段類(lèi)型,2)非一致代碼段類(lèi)型。 不同類(lèi)型的部門(mén)對于這種已通過(guò)訴求中心的人的身份檢查的規則是一樣的(如果不是通過(guò)訴求中心”gate”, 身份檢查的規則可以不一樣,請看上面的說(shuō)明)。它們都要求身份證的身份等于或者小于該部門(mén)的人員天生身份---寫(xiě)在出世紙上的那一個(gè)身份。它們的不同在于身份檢查過(guò)關(guān)后它們會(huì )用什么方式來(lái)為你辦事。它們的辦事原則也就是我在提到的概念2及概念3。寫(xiě)得太累了,我就把前面已有的東西拷貝下來(lái)吧:
2) 一致代碼段的意義: 讓客人很方便的利用主人(一致代碼段)的東西為自己辦事.但客人這身份沒(méi)有改變NewCS.RPL=OldCS.RPL所以只能幫自己辦事。比方說(shuō)鄉長(cháng)有一頭牛,農民可以借來(lái)幫自己種田,但不能種別人的田.但是如果你是鄉長(cháng)當然可以種鄉里所有的田。
3) 非一致代碼段的意義:主人(非一致代碼段)可以幫客人但一定是用自己的身份NewCS.RPL= DestinationDescriptorCode.DPL這里可能有安全的問(wèn)題, 搞不好很容易農民變縣長(cháng)。主人太頑固了一定要堅持自己的身份,有什么方法變通一下,來(lái)個(gè)妥協(xié)好不好。好的,它就是RPL的用處
訴求中心的人員就把你的文件交給了一個(gè)一致代碼段類(lèi)型的縣長(cháng),如果他答應幫你忙的話(huà),他就一定會(huì )把自己的身份變成農民的身份(身份證上原本是縣長(cháng)現在變成是農民)。那么縣長(cháng)變成了農民怎樣幫忙,他不能問(wèn)其他的縣長(cháng),但我們不能排徐縣長(cháng)認識的農民比你多,他可以問(wèn)更多的農民有關(guān)的消息,他是有可能把種子的消息帶給你的。這樣的做事原則是很小心,但幫忙不多。
如果訴求中心的人員就把你的文件交給了一個(gè)非一致代碼段類(lèi)型的縣長(cháng)。這個(gè)縣長(cháng)的個(gè)性是怎樣我們還沒(méi)有確定。他可能是一個(gè)1)熱心又謹慎的人,2)熱心但不謹慎的人,3)不熱心但謹慎人,4)不熱心又不謹慎的人。3 跟 4 是一樣的,就是不熱心,他不會(huì )幫你的,所以我們不談這種人。我們現在就假設縣長(cháng)是熱心又謹慎的人。他的合理做法就會(huì )像第一個(gè)故事里的縣長(cháng)一樣,用自己的身份找資料,用代理人的身份要東西(在有需要的時(shí)候他拿出那張農民的工作卡讓檢查人員認為他是農民)。如果縣長(cháng)是熱心但不謹慎的人,麻煩可能會(huì )發(fā)生,因為他可能只會(huì )用縣長(cháng)的身份來(lái)做事,這樣的話(huà),他的身份證和工作證都是縣長(cháng),他可能為農民拿了他不該拿的東西。在這里要明白一個(gè)事情,就是縣長(cháng)是有權自己決定以哪一種方式為農民服務(wù),他可以選擇小心,他也可以選擇不小心,還可以選擇不幫忙。這里要注意的是非一致代碼段類(lèi)型的縣長(cháng)是永遠不會(huì )改變身份證上的身份的,同時(shí)他有權在任何時(shí)間改變工作證上的身份。
總結一下:
DPL = 出生證的身份
CPL = 身份證上的身份
RPL = 工作證上的身份
Gate = Intel政府的訴求中心
縣長(cháng)的謹慎不謹慎就是程序員的編程態(tài)度的謹慎不謹慎。
事實(shí)上沒(méi)有RPL你也可也做到同樣的事情,只要你有方法知道農民是不是農民,只要檢查一下它的CPL就可以啦,然后檢查一下農民提交的請求是不是合理,然后決定幫不幫忙或者怎樣幫忙就行了。
RPL 只是提供了一個(gè)硬件的支持讓你做起來(lái)方便一點(diǎn)。只要大家按著(zhù)這個(gè)方法來(lái)做,這些保護的工作就變得容易,但這樣就變成機器依賴(lài)了。
對于特權級高的進(jìn)程RPL是作用是防止自己不小心訪(fǎng)問(wèn)到一些資料段。 比方說(shuō),如果進(jìn)程A的CSL=0,它知道它的委托進(jìn)程B的CPL=3,也知道資料段C的DPL=2,而這資料段是不能讓CSL>2的進(jìn)程訪(fǎng)問(wèn)的。那么如果你是進(jìn)程A的程序員根本不需要RPL的幫助,也不會(huì )試圖讓進(jìn)程A訪(fǎng)問(wèn)資料段C的資料, 因為這樣做只會(huì )浪費時(shí)間。當然如果你一定要訪(fǎng)問(wèn)資料段C的資料然后把資料傳給委托進(jìn)程B,這就是你的選擇,你真的可以這樣做,但后果自負。只是有時(shí)候要訪(fǎng)問(wèn)的資料段我們不知道它的DPL是怎么,也不知道能不能讓進(jìn)程B訪(fǎng)問(wèn),其中的一個(gè)解決方法就是把委托進(jìn)程B的CPL以RPL的方法告訴資料段C讓它決定接受或不接受。
由上面的故事可能發(fā)現如果沒(méi)有一致代碼段這東西,能成功轉跳后的NewCS.RPL= NewDestinationDescriptorCode.DPL,如不能轉跳NewCS.RPL=OldCS.RPL= OldDestinationDescriptorCode.DPL。事實(shí)上你的程序不用一致代碼段也是可以的。
你還可以發(fā)現RPL對特權級=3的進(jìn)程是沒(méi)有意義的。因為特權級=3的進(jìn)程只會(huì )找人幫忙。
還是要問(wèn)怎樣才能成功經(jīng)過(guò)Gate 這東西轉跳轉嗎?

目標是一致代碼段:
1) CPL(CS.RPL) <= GateDescriptor.DPL AND RPL <= GateDescriptor.DPL
2) CPL(CS.RPL) >= DestinationDescriptorCode.DPL, RPL不再檢查
轉跳后程序的CPL(NewCS.RPL) = 轉跳前程序的CPL( OldCS.RPL)
上面的安排就是概念1,2的意思。
目標是非一致代碼段:
1) CPL(CS.RPL) <= GateDescriptor.DPL AND RPL <= GateDescriptor.DPL
2) CPL(CS.RPL) >= DestinationDescriptorCode.DPL RPL不再檢查
轉跳后程序的CPL(NewCS.RPL) = DestinationDescriptorCode.DPL
上面的安排就是概念3的意思和1的意思。
 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CPU的特權級DPL - CPL - RPL
DPL,RPL,CPL 之間的聯(lián)系和區別
一致性/非一致性代碼段的總結
一致代碼段和非一致代碼段
2分鐘玩轉保護模式設計
內核代碼學(xué)習==>深入介紹Linux內核(六)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

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