內核模塊程序運行在內核空間,應用程序運行在用戶空間。這個概念構成了操做系統理論的基礎。異步
事實上,操做系統爲程序提供了一個統一的硬件視圖。另外,操做系統必須保證各個程序的操做的獨 立性,還得保護各類資源不能非法訪問。完成上面這些任務的前提是必須將系統軟件和應用軟件區分 卡來。函數
每個現代的處理器都能具備上述功能。其中的一個方法是CPU能夠運行在不一樣的級別上。不一樣的級 別表明具備不一樣的功能,有些操做在特權級低的時候是不容許的;程序僅僅能夠經過一些調用門實現 特權級之間的轉換。UNIX系統就利用了這種硬件特性,使用了其中的兩個特權級。全部現代處理器 都至少有兩個特權及,而另外的一些,例如X86,提供了四個特權級。當多餘兩個特權級時,UNIX 利用最高特權級和最低特權級。操作系統
咱們一般將運行的模式成爲內核空間和用戶空間。這兩個術語不只體如今特權級上,還體如今不一樣的 內存映射方式和地址空間。進程
Unix程序從用戶空間轉移到內核空間有兩種方式,一種是系統調用,另一種是硬件中斷。執行系統 調用時內核代碼在當前進程的上下文中運行,它是爲當前進程而服務的,因此它可以訪問進程的地址 空間中的數據。可是硬件中斷的代碼和進程是異步的,而且和任何一個特定的進程無關。內存
內核模塊的代碼運行在內核空間,而且可以擴展內核的功能。大多數的驅動程序要執行執行上面說 兩類任務:驅動程序中的一些函數用來完成系統調用,另一些用來處理硬件終端。資源