ARM基礎(chǔ):linux運(yùn)行態(tài)與ARM運(yùn)行模式的對應(yīng)
掃描二維碼
隨時隨地手機(jī)看文章
問:
從某一個方面來看,核心態(tài)與軟中斷有些類似。
系統(tǒng)通常情況下在用戶態(tài)運(yùn)行。只有發(fā)生了特定的操作后才切換到核心態(tài)。
始終都有一個Idle進(jìn)程(用戶態(tài))在運(yùn)行。這個Idle進(jìn)程保證了系統(tǒng)通常運(yùn)行在用戶態(tài)。
用戶態(tài)切換到核心態(tài)的過程可以拿軟中斷的過程作比喻(壓棧,存上下文,按照不同的體系結(jié)構(gòu)切換寄存器組,切換地址映射范圍...)。
看《linux kernel development》看得一知半解。
上面自己的一些說法可能很不準(zhǔn)確。表達(dá)大概的意思。不知這樣理解對不對?
另外有一個問題:
linux分用戶態(tài)、核心態(tài)。兩種狀態(tài);ARM處理器有7種運(yùn)行模式。
這之間有什么聯(lián)系嗎?如果有,這兩種狀態(tài)和這7中運(yùn)行模式是怎么對應(yīng)的?切換的動作是怎么實現(xiàn)的?
答:
用戶態(tài) -- user
內(nèi)核態(tài) -- svc
vim arch/arm/kernel/entry-armv.S