要理解用戶空間與內(nèi)核空間之間的關(guān)系
需要對(duì)內(nèi)核有深入的認(rèn)識(shí)。從兩個(gè)不同的角度來(lái)理解內(nèi)核:一是從靜態(tài)角度,內(nèi)核可以被看作一個(gè)類庫(kù),對(duì)外提供API接口;二是從動(dòng)態(tài)角度,內(nèi)核啟動(dòng)多個(gè)內(nèi)核線程提供系統(tǒng)服務(wù),這些線程在ps命令下可以被看到。
當(dāng)用戶進(jìn)程執(zhí)行應(yīng)用代碼時(shí),CPU訪問(wèn)的虛擬內(nèi)存空間位于0-3GB空間內(nèi),此時(shí)用戶進(jìn)程處于用戶態(tài)。但是,當(dāng)用戶進(jìn)程執(zhí)行系統(tǒng)調(diào)用時(shí),CPU會(huì)通過(guò)軟中斷的方式將其陷入到內(nèi)核代碼中,此時(shí)用戶進(jìn)程處于內(nèi)核態(tài),CPU訪問(wèn)的是高1GB的虛擬地址空間。
普通用戶進(jìn)程訪問(wèn)內(nèi)核空間的唯一方式是通過(guò)系統(tǒng)調(diào)用。內(nèi)核線程只能運(yùn)行在內(nèi)核態(tài),并且它們只能訪問(wèn)1GB的地址空間。內(nèi)核空間是所有進(jìn)程共享的,但是只有運(yùn)行在內(nèi)核態(tài)的進(jìn)程才能訪問(wèn)它。
此外,我還對(duì)您提供的文案進(jìn)行了如下修改:
· 簡(jiǎn)化了一些句子,使其更加清晰易懂。
· 修正了一些表述,使其更加準(zhǔn)確。
· 將某些關(guān)鍵信息(如內(nèi)核線程)提前說(shuō)明,以增加文本的邏輯性和連貫性。
我這里剛好有嵌入式、單片機(jī)、plc的資料需要可以私我或在評(píng)論區(qū)扣個(gè)6