- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- 宋寶華
- 607字
- 2018-12-31 20:25:28
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只能通過系統調用和硬件中斷完成從用戶空間到內核空間的控制轉移。
推薦閱讀
- Linux運維之道(第3版)
- Mastering ElasticSearch
- Linux運維實戰:CentOS7.6操作系統從入門到精通
- 從零開始寫Linux內核:一書學透核心原理與實現
- 白話區塊鏈
- VMware Horizon View 6 Desktop Virtualization Cookbook
- 高性能Linux服務器構建實戰:運維監控、性能調優與集群應用
- Alfresco 4 Enterprise Content Management Implementation
- Windows Vista融會貫通
- 計算機系統開發與優化實戰
- macOS效率手冊
- 數據中心系統工程及應用
- Social Data Visualization with HTML5 and JavaScript
- Windows 8實戰從入門到精通(超值版)
- Heroku Cloud Application Development