官术网_书友最值得收藏!

3.3.3 Linux內核空間與用戶空間

現代CPU內部往往實現了不同操作模式(級別),不同模式有不同功能,高層程序往往不能訪問低級功能,而必須以某種方式切換到低級模式。

例如,ARM處理器分為7種工作模式。

·用戶模式(usr):大多數應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能訪問的。

·快速中斷模式(fiq):用于高速數據傳輸或通道處理。

·外部中斷模式(irq):用于通用的中斷處理。

·管理模式(svc):操作系統使用的保護模式。

·數據訪問中止模式(abt):當數據或指令預取中止時進入該模式,可用于虛擬存儲及存儲保護。

·系統模式(sys):運行具有特權的操作系統任務。

·未定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。

ARM Linux的系統調用實現原理是采用swi軟中斷從用戶(usr)模式陷入管理模式(svc)。

又如,x86處理器包含4個不同的特權級,稱為Ring 0~Ring 3。在Ring0下,可以執行特權級指令,對任何I/O設備都有訪問權等,而Ring3則被限制很多操作。

Linux系統可充分利用CPU的這一硬件特性,但它只使用了兩級。在Linux系統中,內核可進行任何操作,而應用程序則被禁止對硬件的直接訪問和對內存的未授權訪問。例如,若使用x86處理器,則用戶代碼運行在特權級3,而系統內核代碼則運行在特權級0。

內核空間和用戶空間這兩個名詞用來區分程序執行的兩種不同狀態,它們使用不同的地址空間。Linux只能通過系統調用和硬件中斷完成從用戶空間到內核空間的控制轉移。

主站蜘蛛池模板: 香港 | 上高县| 当涂县| 唐山市| 西安市| 姜堰市| 桑植县| 苏尼特右旗| 忻州市| 永城市| 保山市| 佛学| 正定县| 苏尼特右旗| 文登市| 静安区| 深州市| 长顺县| 新郑市| 大兴区| 龙州县| 满城县| 鄂尔多斯市| 陵水| 富蕴县| 惠来县| 旌德县| 清镇市| 喜德县| 西昌市| 文山县| 贵南县| 郎溪县| 含山县| 大同县| 交城县| 贡嘎县| 休宁县| 通辽市| 苍山县| 临清市|