一步步编写操作系统 52 深入浅出cpu的特权级
所謂保護模式下的“保護”,主要體現在特權級上,以后隨著后面工作的展開,會越來越多的和它們打交道,現在是時候說道說道了。
在人類社會中出現惡勢力時,人們總是希望出現一位具有神力的英雄來拯救世人、主持公道。階級是骨子里的東西,它一直存在,然而階級和平等并不矛盾,階級是為了平等而生,這是自然界為維護秩序自然產生的事物,如果打破了這個平衡,平等也將不復存在。正因為階級和平等之間的相互制約,才有了今天的民主與和平,只有讓少數人獲得特權去維護公平,社會才會存在祥樂安康,計算機中也是一樣。
保護模式的安全性也體現了“階級”:為了維護計算機世界的和平,避免潛在的危險,對于那些不受控的程序,剝奪它們的部分能力,使它們沒有殺傷力,讓它們只能老老實實地做好公民。
先給大家籠統地介紹下特權級那點事:
整個計算機世界其實可以分為兩部分,訪問者和受訪者。訪問者是動態的,具有能動性,它主動去訪問各種資源。受訪者是靜態的,它就是被訪問的資源,只能干坐著等待訪問者光顧。訪問者的特權級可以變,受訪者的特權不能變。
拿開車舉例,cpu相當于汽車,駕駛車的人可以是普通人,也可以是警察。同樣一輛車,只有警察才能把車開到警局,普通人開著這輛車去警局會被攔下的,在警局門口的警衛說了,只有警車才能開進警局,警衛判斷汽車是否為警車的標準是,檢查司機是否為警察,只要是警察開的車,一律按警車放行處理。當前特權級就是指cpu的狀態,普通人的特權為3,警察的特權為0。當普通人想把車開進警局,到警局門口就得換一位身份為警察的司機,這就是特權級變換,而cpu,也就是這輛車,它在硬件上始終是不變的,車還是那輛車,該幾個輪子就是幾個輪子,只是車的角色在變。開車的人不同,車的角色就不同,普通人開,這車就是普通的私家車,當換警察做為司機時,它就成了警車,到了警局門口,警衛便讓其通行。
建立特權機制是為了通過特權來檢查合法性,整個計算機世界的特權檢查,都是發生在“訪問者”在訪問“受訪者”的一剎那,實際上就是檢查訪問者的特權級和受訪者的特權級是否匹配。
不知道各位看官聽我說這個例子后有沒有對特權有個概貌的認識,下面咱們從細節上展開討論。
CPU既是大腦,又是警察,它負責維護計算機內的安全。它將程序擁有的權利分為4個等級,這就是保護模式下特權級的由來。
特權級按照權力從大到小分為0、1、2、3級,沒錯,數字越小權利越大,0級特權能力最大,3級特權能力最小。如果您看過七龍珠,0級特權相當于破壞神,無所不能。連悟空變成賽亞人之神也打不過他,3級特權相當于像布瑪那樣的普通人類(其它特權級請大伙兒自己對號入座^_^)。
0級特權是我們操作系統內核所在的特權級,必須得讓操作系統處于至高無上的地位,這樣它的子民(應用程序)才不會反了天。計算機在啟動之初就以0級特權運行,MBR是咱們所寫的第一個程序,它是含著金鑰匙出生的,自從它從BIOS那里接過第一棒的時候,它已經是像神一樣處于0級特權了。整個系統的特權級分布如圖
總結
以上是生活随笔為你收集整理的一步步编写操作系统 52 深入浅出cpu的特权级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发淘票票信用卡额度怎么查询
- 下一篇: 一步步编写操作系统 66 浅析c库函数与