為什麼 32 位 Ubuntu 系統可支援 4G 以上記憶體?

時間 2021-06-03 09:12:16

1樓:Li Haifeng

支援4G以上的記憶體的關鍵取決於硬體,而不取決於軟體(包括作業系統),只有位址匯流排能訪問4G以上的物理記憶體,才能夠支援軟體(或者作業系統)來使用4G以上的記憶體。所以,「為什麼32位Ubuntu系統可支援4G以上記憶體?」 標題不恰當。

對於X86來說,支援PAE,就可以在32位前提下,支援4G以上了。

對於ARM來說,支援LPAE,就可以在32位前提下支援4G以上的記憶體。

有了硬體的支援,作業系統作相應的修改就可以支援4G以上的記憶體了。

2樓:時國懷

首先,以下內容僅限於x86平台。

對於作業系統以及裡面執行的程式來說,「記憶體大小」有兩層概念,一層是物理記憶體大小,就是你電腦上插了多少根記憶體條,總數是多少(這裡暫且認為主機板都支援)。另一層概念是記憶體位址空間,這個是針對單獨某乙個任務來說的,對於Windows而言,就是你開了乙個新程序,比如開啟乙個記事本。對於Linux也是一樣,比如你開乙個gedit之類的軟體等等。

對於32位CPU來說,所有的任務的記憶體位址空間都是4GB大小,這個大小跟你的物理記憶體大小是無關的。不管你的物理記憶體是5G、10G或者1G,位址空間都是4G大小。這個位址空間裡的位址,未必都是可以用的,未必都是真實的物理記憶體,也可能是虛擬記憶體。

即使裝更多的物理記憶體,對於單獨乙個程序來說,就4GB這麼大。

對於作業系統而言,物理記憶體大小是可以在系統資訊上看到的。可以使用的物理記憶體則不一定受到4GB的限制,即使是在32位環境。所謂的32位CPU,主要是指通用暫存器的寬度是32位的,取位址指令的位址範圍是32位的,但CPU位址線的總數可以比32位多,比如使用PAE技術可以使用36位位址線,可用物理記憶體總數理論上能到64GB大小。

PAE技術大概可以理解為,雖然單個程序能訪問的位址空間仍然只有4GB,但作業系統可以把超過4GB的記憶體分攤給多個不同的任務,每個任務能拿到的實際記憶體就更多了一些,系統整體效能就有提高。PAE技術出現已經很多年了,大部分CPU都已經支援。

所以,如果作業系統支援PAE比較好的話,那麼32位作業系統,比如Ubuntu就可以使用超過4G的記憶體。微軟因為一些非技術原因關閉了在XP上的PAE支援(實際上不是關閉,而是限制在4GB),所以XP上看不到更多的記憶體,如果是Windows Server版,32位環境下有些是可以使用超過4GB的記憶體的。

所以,XP不支援,不是乙個技術問題。

3樓:

參考: 32 位的 Windows 7 系統如何最大可能地利用 6 GB 記憶體?這個回答。32位+PAE的系統能識別到 16G-64G 的記憶體

Ubuntu 的 32 位預設帶 PAE,可以支援大記憶體。另外參考維基百科:實體地址擴充套件

為什麼 64 位作業系統的庫目錄要和 32 位不同?

因為你看到的 64位系統 並不是pure 64位的,為了相容32位的系統是需要做區分的。至於為什麼要這樣分,我只能說這樣簡單。因為,就目前情況下,絕大多數軟體還是跑在32位下,所以將64位的lib叫做lib64,而32位的不變,仍然叫lib,這樣能最大程度上減少潛在的問題。 pansz 感覺樓主沒抓...

64位系統,是否可以指 相對於32位系統 的執行速度 快一倍?

問題的關鍵在於僅僅是CPU暫存器的吞吐量增大一倍,並不會帶來應用效能表現的一倍提公升.從一二級快取記憶體到暫存器,從記憶體到一二級高速緩,從硬碟到記憶體,等待網路,等待各種外設.大多數情況下,CPU只是在等待其他元件.所以要想有質的提示,需要更深層次的優化.對於個人應用市場,這種優化並不值得.目前用...

64位作業系統跟32位比有什麼區別?

普通IT技術人員 說作業系統32 64位的區別,就不得不說,cpu硬體的位數區別,主要是硬體工藝的問題。32位CPU指的是該CPU在單位時間內能一次處理的二進位制數的位數為32位 64位CPU指的是該CPU在單位時間內能一次處理的二進位制數的位數為64位 而作業系統位數是針對cpu的位數而開發出來的...