回頭看歷史,早期的系統(比如 DOS)誰都能直接操作硬件,甚至能幹掉操作系統本身,這種情況下你想讓它“多任務”幾乎是不可能的。後來爲了防止這種“程序造反”,CPU 加了權限控制,也就是我們常說的“Ring”。



簡單說,Ring 就像是一座四層的塔:

最底層 Ring 0 是系統內核的地盤,也就是 OS 的“特權模式”

最上面 Ring 3 是普通用戶程序運行的地方,也就是“用戶模式”

程序平時都只能待在 Ring 3,不允許越權去碰 Ring 0 的東西,比如你不能直接往硬盤寫數據,不能直接關機,這些都得通過系統調用(syscall)來間接完成。

這樣一來,出錯的程序只會崩自己,系統不會跟着掛。這也是爲啥現在手機、電腦就算開幾十個應用也不怕出問題,大家都有“自己的小黑屋”,互不打擾。

這套機制後來還被用在虛擬機(VM)上。你可以理解成一個電腦裏跑着另一個“虛擬電腦”。但問題是:原來的系統默認自己是老大,跑在 Ring 0 上,但現在它只是虛擬機裏的“小弟”了,怎麼辦?

於是就誕生了“軟件虛擬化”:通過動態修改指令,讓虛擬系統“以爲”自己控制了一切,實際控制權還在宿主系統(也叫 hypervisor)手裏。
RING2.63%
查看原文
post-image
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)