回覆列表
  • 1 # 使用者9968932934877

    Linux虛擬記憶體的大小為2^32(在32位的x86機器上),核心將這4G位元組的空間分為兩部分。最高的1G位元組(從虛地址0xC0000000到0xFFFFFFFF)供核心使用,稱為“核心空間”。而較低的3G位元組(從虛地址0x00000000到0xBFFFFFFF),供各個程序使用,稱為“使用者空間”。因為每個程序可以透過系統呼叫進入核心,因此,Linux核心空間由系統內的所有程序共享。於是,從具體程序的角度來看,每個程序可以擁有4G位元組的虛擬地址空間(也叫虛擬記憶體).每個程序有各自的私有使用者空間(0~3G),這個空間對系統中的其他程序是不可見的。最高的1GB核心空間則為所有程序以及核心所共享。另外,程序的“使用者空間”也叫“地址空間”,在後面的敘述中,我們對這兩個術語不再區分。使用者空間不是程序共享的,而是程序隔離的。每個程序最大都可以有3GB的使用者空間。一個程序對其中一個地址的訪問,與其它程序對於同一地址的訪問絕不衝突。比如,一個程序從其使用者空間的地址0x1234ABCD處可以讀出整數8,而另外一個程序從其使用者空間的地址0x1234ABCD處可以讀出整數20,這取決於程序自身的邏輯。因此Linux對使用者空間與核心空間的劃分起到了一定程度上的衝突避免。

  • 中秋節和大豐收的關聯?
  • 帶微的成語有哪些?