Linux核心態是什麼?使用者態如何切換到核心態?
在Linux技術大佬口中,我們經常會時不時聽到核心態、使用者態等,核心主要是和硬體打交道,管理最核心的內容,如硬碟、記憶體、CPU等,那你知道在Linux系統中,核心態具體是什麼嗎?請看下文:
Linux系統中的核心態本質是核心,一種特殊的軟體程式,用於控制計算機的硬體資源,例如協調CPU資源,分配記憶體資源,並且提供穩定的環境供應用程式執行。0-4G範圍的虛擬空間地址都可以操作,尤其是對3-4G範圍的高位虛擬空間地址必須由核心態去操作。
使用者態提供應用程式執行的空間,為了使應用程式訪問到核心管理的資源,例如CPU,記憶體,I/O等。使用者態只能受限的訪問記憶體,且不允許訪問外設 (硬碟、網路卡等);核心態CPU可以訪問記憶體所有資料,包括外設,且可以將自己從一個程式切換到另一個程式。
從使用者態切換到核心態有以下三種方式:
系統呼叫:是使用者態程式主動要求切換到核心態的一種方式,使用者態程式透過系統呼叫申請使用作業系統提供的服務程式完成工作。例如上面的例子、還比如fork()實際上就是執行了一個建立新程式的系統呼叫。(其實系統呼叫本身就是中斷,是軟體中斷)
異常:如果當前程式執行在使用者態,如果這個時候發生了異常事件,就會觸發切換。例如:缺頁異常。
外設中端:當外設完成使用者的請求時,會向 CPU 傳送中斷訊號,此時 CPU 會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。例:如硬碟讀寫操作完成後,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2916223/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux中核心態指什麼?使用者態切換到核心態的方式有哪些?Linux
- 作業系統中使用者態和核心態(系統態)是什麼?使用者態如何變成核心態?作業系統
- 使用者態和核心態的區別是啥
- 使用者態和核心態的區別
- ###什麼是Linux核心###什麼是MMULinux
- 30個類手寫Spring核心原理之動態資料來源切換Spring
- 什麼是Linux核心?有什麼功能?Linux
- 工作流從無狀態切換到有狀態的好處
- Linux中什麼是動態路由?動態路由協議有哪些?Linux路由協議
- Linux核心是什麼?Linux核心的五大功能!Linux
- 30個類手寫Spring核心原理之動態資料來源切換(8)Spring
- win10中word怎麼切換改寫狀態_win10怎樣切換插入狀態和改寫狀態Win10
- 什麼是web組態Web
- Linux中什麼是動態網站環境及如何部署Linux網站
- jenkins動態切換環境Jenkins
- echarts 主題動態切換Echarts
- 什麼是組態軟體?Web組態軟體又是什麼?Web
- 動態表單是什麼?如何開發?
- 你知道什麼是偽靜態嗎?它有什麼作用?如何實現偽靜態呢?
- 靜態IP是什麼意思?和動態IP 有什麼區別
- java | 什麼是動態代理?Java
- 動態ip是什麼意思?
- RPC核心實現原理-動態代理RPC
- 【python基礎】什麼是動態IP?與靜態ip有什麼不同?Python
- Linux靜態路由是什麼?UG代表什麼?Linux路由
- HTTP狀態程式碼是什麼?HTTP
- 什麼是網路靜態ip
- Linux 核心和 Windows 核心有什麼區別?LinuxWindows
- Java執行緒狀態及切換Java執行緒
- [Delphi] 自帶皮膚動態切換
- Retrofit是如何建立的?為什麼要用動態代理
- SEO資源生態圈是什麼(SEO資源生態圈如何建設呢)
- 視覺化:什麼是組態圖及組態圖設計視覺化
- DAO 的核心是什麼?
- 如何在Linux使用者態開發驅動Linux
- 動態代理是基於什麼原理?
- 什麼是HTTP 304狀態程式碼?HTTP
- TCP為什麼是有狀態的?TCP