核心空間與使用者空間

2022-06-30 05:24:08 字數 655 閱讀 9968

首先,這個概念的由來,我認為跟cpu的發展有很大關係,在目前cpu的保護模式下,系統需要對其賴以執行的資料進行保護,為了保證作業系統核心資料,我們把記憶體空間進行劃分,一部分為作業系統核心執行的空間,另一部分是應用程式執行的空間,所謂空間就是記憶體的位址。因此核心空間和使用者空間的概念就出現了。在386以前的cpu實模式下,作業系統核心與使用者程式的記憶體空間是不做區分的,也就不存在核心空間和使用者空間的說法了。

其次,cpu的保護模式的乙個重大特點,也就是硬體直接支援的記憶體訪問模式,虛擬位址空間到實體地址空間的對映。這種工作模式與核心空間使用者空間在技術上的相輔相成,也是促成記憶體空間劃分的原因。核心空間,顧名思義就是核心的執行空間,使用者空間也就是使用者程式的執行空間,作業系統為了保護自己不被普通程式的破壞,對核心空間進行了一些定義,比如訪問許可權,換入換出,優先順序等等。也就是說核心空間只允許核心訪問,使用者程式如果要訪問核心空間就需要經過核心的審核。核心空間的頁表是常駐記憶體的,不會虛擬記憶體管理模組換出到磁碟上。核心空間的程式一旦出錯,系統會立即宕機——系統拒絕繼續執行。而使用者程式則沒有這麼多些特權。

再次,核心空間和使用者空間都是指虛擬空間,也就是虛擬位址。目前32位系統總共有4g的虛擬位址空間,在linux系統中,4g虛擬位址空間的最高1g位址被分配給核心使用,是為核心空間,且為核心獨享,而低位址的3g空間為使用者程式所共享,也就是每個使用者程式都有3g的虛擬位址空間。

核心空間與使用者空間

1.核心態與使用者態的區別 1 核心態 的 不受任何限制,可以訪問 所有處理器指令集 記憶體位址以及i o空間 2 使用者態的 只能訪問其位址空間的頁表項中規定的虛擬位址。2.使用者態到核心態的切換方式 1 系統呼叫 軟中斷的一種 由使用者程序主動發起 2 異常 當cpu在執行執行在使用者態下的程式...

核心空間與使用者空間

關於虛擬記憶體有三點需要注意 上圖展示了整個程序位址空間的分布,其中4g的位址空間分為兩部分,在使用者空間內,對應了記憶體分布的五個段 資料段 段 bss段 堆 棧。在上篇文章中有詳細的介紹。這個圖示核心使用者空間的劃分,圖中最重要的就是高階記憶體的對映 其中kmalloc和vmalloc函式申請的...

linux核心空間與使用者空間

核心空間和使用者空間是作業系統理論的基礎之一,即核心功能模組執行在核心空間,而應用程式執行在使用者空間。現代的cpu都具有不同的操作模式,代表不同的級別,不同的級別具有不同的功能,在較低的級別中將禁止某些操作。linux系統設計時利用了這種硬體特性,使用了兩個級別,最高端別和最低級別,核心執行在最高...