linux作業系統CPL、DPL、RPL說明

來源:互聯網
上載者:User

linux作業系統中特權級有3種:CPL,DPL和RPL,每個都是有4個等級。

我對他們的關係理解是這樣:一般來說,CPL代表當前程式碼片段的許可權,如果它想要去訪問一個段或門,首先要看看對方的許可權如何,也就是檢查對方的DPL,如果滿足當前的許可權比要訪問的許可權高,則有可能允許去訪問,有些情況我們還要檢查
選擇子的許可權,即RPL,因為我們通過選擇子:位移量的方式去訪問一個段,這算是一個訪問請求動作,因此
稱為請求存取權限RPL(Requst Privilege Level)。當請求許可權也滿足條件,那麼訪問就被允許了。

CPL(Current Privilege Level)
CPL是當前執行的任務的特權等級,它儲存在CS和SS的第0位和第1位上。(兩位表示0~3四個等級)
通常情況下,CPL等於代碼所在段的特權等級,當程式轉移到不同的程式碼片段時,處理器將改變CPL。
注意:在遇到一致程式碼片段時,情況特殊,一致程式碼片段的特點是:可以被等級相同或者更低特權級的代碼訪問,當處理器訪問一個與當前程式碼片段CPL特權級不同的一致程式碼片段時,CPL不會改變。

DPL(Descriptor Privilege Level)
表示門或者段的特權級,儲存在門(中斷描述符IDT)或者段的描述符(GDT)的DPL欄位中。正如上面說的那樣,噹噹前程式碼片段試圖訪問一個段或者門時,其DPL將會和當前特權級CPL以及段或門的選擇子比較,根據段或者門的類型不同,DPL的含義不同:
    1.資料區段的DPL:規定了訪問此段的最低許可權。比如一個資料區段的DPL是1,那麼只有運行在CPL為0或1的程式才可能訪問它。為什麼說可能呢?因為還有一個比較的因素是RPL。訪問資料區段要滿足有效特權層級(上述)高於資料區段的DPL.
    2.非一致程式碼片段的DPL(不使用調用門的情況):DPL規定訪問此段的特權,只有CPL與之相等才有可能訪問。
    3.調用門的DPL,規定了程式或任務訪問該門的最低許可權。與資料區段同。
    4.一致程式碼片段和通過調用門訪問的非一致程式碼片段,DPL規定訪問此段的最高許可權。
     比如一個段的DPL為2,那麼CPL為0或者1的程式都無法訪問。
   5. TSS的DPL,同資料區段。
 
RPL(Rquest Privilege Level)
RPL是通過選擇子的低兩位來表現出來的(這麼說來,CS和SS也是存放選擇子的,同時CPL存放在CS和SS的低兩位上,那麼對CS和SS來說,選擇子的RPL=當前段的CPL)。處理器通過檢查RPL和CPL來確認一個訪問是否合法。即提出訪問的段除了有足夠的特權級CPL,如果RPL不夠也是不行的(有些情況會忽略RPL檢查)。


為什麼要有RPL?

作業系統往往通過設定RPL的方法來避免低特權級的應用程式訪問高特權級的內層資料。
例子情景:調用者叫用作業系統的某過程去訪問一個段。
當作業系統(被調用過程)從應用程式(調用者)接受一個選擇子時,會把選擇子的RPL設定稱調用者的許可權等級,於是作業系統用這個選擇子去訪問相應的段時(這時CPL為作業系統的等級,因為正在運行作業系統的代碼),處理器會使用調用者的特權級去進行特權級檢查,而不是正在實施訪問動作的作業系統的特權級(CPL),這樣作業系統就不用以自己的身份去訪問(就防止了應用去訪問需要高許可權的內層資料,除非應用程式本身的許可權就足夠高)。

那麼RPL的作用就比較明顯了:因為同一時刻只能有一個CPL,而當低許可權的應用去調用擁有至高許可權的作業系統的功能來訪問一個目標段時,進入作業系統程式碼片段時CPL變成了作業系統的CPL,如果沒有RPL,那麼許可權檢查的時候就會用CPL,而這個CPL許可權比應用程式高,也就可能去訪問需要高許可權才能訪問的資料,這就不安全了。所以引入RPL,讓它去代表存取權限,因此在檢查CPL的同時,也會檢查RPL.一般來說如果RPL的數字比CPL大(許可權比CPL的低),那麼RPL會起決定性作用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.