Linux內(nèi)核與內(nèi)核空間是什么關系呢?
對內(nèi)核空間的認識清晰了許多。要理解用戶空間與內(nèi)核空間需要有如下的幾個認識:
· 內(nèi)核的認識:從2個不同的角度來理解,一個是靜態(tài)的角度,如“蘆中人”所比喻,內(nèi)核可以看做是一個lib庫,內(nèi)核對外提供的API打包在內(nèi)核的庫中;一個角度是動態(tài)的,內(nèi)核啟動了許多內(nèi)核線程經(jīng)常來提供系統(tǒng)服務,在ps命令下可以很多這樣的進程。
· 用戶進程平時執(zhí)行應用代碼時,CPU訪問的虛擬內(nèi)存空間是在0-3GB空間內(nèi),此時用戶進程是用戶態(tài)。剛好,我總結了一些嵌入式資料放在視頻結尾
· 用戶進程執(zhí)行系統(tǒng)調(diào)用時,通過軟中斷的方式,將會陷入到內(nèi)核代碼中,此時用戶進程是內(nèi)核態(tài),CPU訪問的是高位的1GB的虛擬地址空間。
· 普通的用戶進程訪問內(nèi)核空間的方式:系統(tǒng)調(diào)用。
· 內(nèi)核線程一定運行在內(nèi)核態(tài),它所能訪問的虛擬地址空間就是那1GB的空間。
· 內(nèi)核空間是所有進程所共享的,但是只有運行在內(nèi)核態(tài)的進程才能訪問。
我這里剛好有嵌入式、單片機、plc的資料需要可以私我或在評論區(qū)扣個6