成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CPU的底線:為什么只有操作系統才能執行這些操作?

存儲 數據管理
只有當CPU位于Ring0也就是內核態時才可以執行我們剛才列舉的這些操作,否則會觸發異常,這會進一步觸發操作系統的運行,操作系統運行起來后會終止掉有問題的進程。

你正在編寫一個普通的應用程序,突發奇想,想要直接控制硬盤讀寫、修改其他程序的內存空間,甚至直接關閉整個計算機系統。如果你嘗試這樣做,結果會怎樣?

答案很簡單,在現代操作系統上,你的程序不但不能接管計算機反而會被反殺掉。

有一系列操作是絕對不允許在用戶態執行的。

直接內存管理

內存是計算機系統最基礎的資源,必須由操作系統統一管理。內核通過CPU提供的虛擬內存技術為每個進程創建獨立的虛擬地址空間,實現進程間的內存隔離,這其中最核心的就是頁表。

圖片圖片

如果用戶程序能夠隨意修改頁表,將導致災難性后果,因為這意味著:

  • 進程可能訪問其他進程的私有內存,造成數據泄露或損壞
  • 進程可能修改內核內存,破壞系統核心數據結構
  • 內存保護機制失效,導致系統不穩定或完全崩潰

例如,如果一個程序能夠修改CR3寄存器,它就可以切換到任意進程的地址空間,讀取或修改其他程序的數據,這將完全破壞系統的安全邊界。

特權指令

有些指令可以直接控制CPU的核心行為,包括但不限于:

  • 開關中斷指令(CLI/STI)
  • 修改控制寄存器(CR0、CR2、CR4等)
  • 執行I/O指令(IN/OUT)

如果我們寫的程序直接關閉中斷(CLI),那么這將導致系統無法響應外部事件,包括定時器中斷,從而阻止操作系統重新獲得控制權,這意味著我們寫的while循環將會真正的獨占一個CPU核心。

圖片圖片

如果我們寫的程序可以修改控制寄存器,那么就可以直接禁用內存保護或更改CPU的基本運行模式。

直接硬件讀寫

有些操作可以直接控制硬件的讀寫,這包括:

  • 使用IN/OUT指令直接讀寫I/O端口
  • 訪問內存映射I/O(MMIO)區域

硬件設備是系統共享資源,需要協調訪問以避免沖突,不正確的硬件操作可能導致設備故障或數據損壞,多個程序同時訪問同一設備會導致操作沖突和數據損壞,而不正確的設備命令序列可能導致硬件故障。

例如,如果用戶程序可以直接訪問硬盤控制器,它可以繞過文件系統和權限檢查,讀取或修改任何磁盤扇區,包括其他用戶的私有文件或系統關鍵數據。

內核數據結構

內核維護著大量復雜而關鍵的數據結構,這些數據結構共同構成了系統運行的大腦,對系統的正常運行至關重要。因此對這些數據結構的訪問和修改必須嚴格限制在內核態下進行。

圖片圖片

(PS,這是人能看懂的東西?)

在Linux等現代操作系統中,內核數據結構包括進程控制塊(在Linux中稱為task_struct)、文件描述符表、中斷向量表、頁表等。如果允許普通用戶程序隨意訪問和修改這些數據結構,將會帶來災難性的后果。

以進程控制塊為例,它存儲了進程的所有關鍵信息,包括進程ID、用戶ID、權限位圖、資源限制和調度參數等。如果一個惡意程序能夠修改自己的進程控制塊,它可以輕松地將自己的有效用戶ID改為0(即root或管理員),立即獲得系統的最高權限,從而繞過所有安全檢查,訪問任何文件,執行任何操作。

CPU的權限控制

因為我們可以看到,實際上CPU執行的指令可以分為兩類,一類就是以上列舉的操作(操作系統的職責范疇),再一類就是我們寫的程序(被編譯后生成的指令),CPU在執行這兩類指令時需要具有不同的權限等級。

現代CPU(如x86架構)通常實現了多個特權級別,從Ring 0(最高權限)到Ring 3(最低權限)。雖然有四個級別,但大多數操作系統只使用其中的兩個:

  • Ring 0(內核態):操作系統內核運行的特權級別
  • Ring 3(用戶態):普通應用程序運行的特權級別

圖片圖片

只有當CPU位于Ring0也就是內核態時才可以執行我們剛才列舉的這些操作,否則會觸發異常,這會進一步觸發操作系統的運行,操作系統運行起來后會終止掉有問題的進程。

因此如果我們的代碼想要執行上述操作的話就只能讓操作系統替代我們去執行,這通過系統調用來實現。

CPU的這種特權級別隔離機制是計算機系統安全穩定運行的基石設計之一,這是現代計算機能夠同時運行數十甚至數百個程序而保持穩定的關鍵所在。

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2012-09-21 14:35:01

2010-01-05 17:16:51

2009-12-14 18:27:21

Linux操作系統

2010-01-06 15:41:07

Linux操作系統

2012-06-08 09:16:16

操作系統

2020-06-28 09:40:58

操作系統GPUCPU

2019-01-28 10:00:42

CPU操作系統存儲器

2020-12-17 18:30:44

華為鴻蒙智能手機操作系統

2022-01-17 11:53:39

操作系統計算機來

2018-12-19 12:03:02

操作系統WindowsLinux

2022-06-26 00:24:57

C語言操作系統語言

2023-04-13 08:09:35

操作系統虛擬地址內存

2025-01-06 08:28:45

C語言操作系統程序

2018-09-05 10:08:24

服務器操作系統伺服器

2023-03-29 23:19:27

2020-02-10 14:35:40

操作系統計算機軟件

2010-04-15 14:40:26

Unix操作系統

2009-12-09 17:25:19

Linux操作系統

2012-06-13 16:01:49

Passbook蘋果

2020-03-10 19:34:08

CPU虛擬化調度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚州影院 | 久久久久国产一区二区三区 | 中文字幕亚洲国产 | 韩国主播午夜大尺度福利 | 欧美一区二区三区视频在线播放 | 91美女在线 | 色约约视频 | 在线观看av网站 | 欧美日韩电影一区二区 | 国产日韩欧美在线观看 | 国产精品久久久久久亚洲调教 | 欧美精品一区二区三区在线 | 中文在线а√在线8 | 久久99国产精品 | 国产精品欧美精品 | 日本一区二区三区免费观看 | 欧美精品久久一区 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 欧美视频一区 | 欧美电影免费网站 | 精品国产欧美一区二区三区成人 | 国产在线一 | 成人小视频在线观看 | 精品videossex高潮汇编 | 色精品视频 | 91精品国产自产在线老师啪 | 日韩精品一区二区三区视频播放 | 精品亚洲一区二区三区 | 亚洲一区二区在线视频 | www.日日干 | 欧美日韩a | 永久免费av| 手机在线一区二区三区 | 日本在线一二 | 国产精品夜间视频香蕉 | 日韩一级黄色毛片 | 国产乱码一区 | 日日干日日 | 中文av电影 | 亚洲第一天堂 | www,黄色,com |