十一步讓你理解linux的記憶體對映

2021-09-21 04:05:54 字數 747 閱讀 9631

零:32位作業系統只有4g的虛擬位址空間,linux將最上的1g用於核心虛擬位址。

一:linux將物理記憶體完全一一對映到核心空間,這樣很方便管理記憶體,任何頁面的虛擬位址減去乙個0xc0000000的偏移就可以得到實體地址。

二:核心還需要動態管理一些記憶體用於vmalloc或者裝置臨時對映等,因此不能將1g的虛擬空間完全一一對映物理記憶體,因此權衡了乙個896m的大小,0xc0000000到0xc0000000+896m的虛擬位址空間一一對映物理記憶體,從0xc0000000+896m到0xffffffff的位址空間作為動態對映的需要。

三:因此早期的linux核心為了簡單起見認為只有一種方式管理物理記憶體,那就是一一對映,因此大於896m的物理記憶體將不可用。然而...

四:雖然核心無法直接一一對映896m以上的物理記憶體,然而核心可以動態對映它們到vmalloc空間,另外也可以將這些大於896m的記憶體頁面分配給使用者態,然後將之對映到使用者程序位址空間的0xc0000000以下。

五:增加了high-memory的概念,使得linux可以使用896之上的物理記憶體。所有大於896m的物理記憶體成為高階記憶體。

六:增加了high-memory支援的核心可以使用4g的物理記憶體

七:大於4g的物理記憶體還是無法使用,因為cpu的位址匯流排只有32位,位址匯流排直接作用於物理記憶體。

八:intel的機器增加了pae,位址匯流排可以增加到36位,可以定址64g。

九:然而必須編譯帶有highmem64g的核心。

十:直接換64位機器和作業系統吧。

十一步讓你理解linux的記憶體對映

零 32位作業系統只有4g的虛擬位址空間,linux將最上的1g用於核心虛擬位址。一 linux將物理記憶體完全一一對映到核心空間,這樣很方便管理記憶體,任何頁面的虛擬位址減去乙個0xc0000000的偏移就可以得到實體地址。二 核心還需要動態管理一些記憶體用於vmalloc或者裝置臨時對映等,因此...

讓你吃驚的Linux終端命令

如下的快捷方式非常有用,能夠極大的提公升你的工作效率 ctrl u 剪下游標前的內容 ctrl k 剪下游標至行末的內容 ctrl y 貼上 ctrl e 移動游標到行末 ctrl a 移動游標到行首 alt f 跳向下乙個空格 alt b 跳回上乙個空格 alt backspace 刪除前乙個單詞...

讓你徹底理解STP的各種角色選舉

首家正式發貨了 本書兩章完整的內容 網路中所有的橋裝置在使能stp協議後,每乙個橋裝置都認為自己是根橋。此時每台裝置僅僅收發配置bpdu,而不 使用者流量,所有的埠都處於listening狀態。所有橋裝置通過交換配置bpdu後才進行根橋 根埠和指定埠的選舉工作。1.根橋的選舉 根橋的選舉 就是在交換...