32位與4G記憶體限制

2021-07-05 15:38:05 字數 689 閱讀 3221

32位有4g記憶體限制,好像人所共知。但這個32位是指32位的cpu還是32位的作業系統?

答案是,都是。記憶體限制,是作業系統和硬體(cpu,也許還有記憶體控制器)共同制約的。cpu對應的是定址實體地址,而作業系統對應的是定址邏輯位址。實際上使用者在使用計算機時,程序所訪問到的位址是邏輯位址,並不是真實的實體地址,這個邏輯位址是作業系統提供的,cpu在執行指令時需要先將指令的邏輯位址變換為實體地址才能對相應的儲存單元進行資料的讀取或者寫入(注意邏輯位址和實體地址是一一對應的)。

32位cpu位址匯流排數目為32根(一根就能瞬時傳遞乙個0或1,代表一位),所以一次能處理32位(即4位元組)的資料,可定址實體地址範圍為2的32次方= 4gb;64位cpu位址匯流排數目一般採用的是36位或者40位,能夠定址的實體地址空間為64gb或者1t。

對於32位的windows作業系統,其邏輯位址編碼採用的位址位數是32位的,那麼作業系統所提供的邏輯位址定址範圍是4gb。同理,64位邏輯位址定址範圍是1tb。

對於32位cpu,只能安裝32位作業系統;64位cpu,既可以安裝32位作業系統,也可以安裝64位作業系統。如果64位cpu裝32作業系統的話,由上述可知,也只能至多應用4gb的記憶體,太浪費了。64位作業系統只能安裝在64位cpu的伺服器上。

參考文章

4G以上(含4G)記憶體與32位Linux系統

32位的桌面版ubuntu 估計其他發行版桌面版也是 預設不支援4g的記憶體,現如今有兩種方法,一種是安裝server版本的核心,另一種是啟用pae page address extension 實體地址擴充套件 即安裝pae核心。傳統的ia32架構只有32位位址匯流排,只能讓系統容納不超過4gb的...

如何使32位Linux支援4G以上記憶體

問題 linux無法支援超過4g的記憶體,筆者使用的linux是centos 5,機器是dell pe1950伺服器。原因 x86系統預設定址能力的限制 解決辦法 安裝具有pae 物理定址擴充套件 功能的核心 1 命令列下執行核心安裝命令 yum install kernel pae 2 編輯啟動配...

32位系統為什麼不能識別4G記憶體?

中午無意間和胖子聊起y470的問題。然後就扯到x64的系統上。他說他的x86 win7只能支援2.5g記憶體,我就納悶,於是網上搜尋得之。因為記憶體 的持續走低,目前各大記憶體廠商相繼推出了單條2gb的ddr2 800記憶體,這些記憶體給人最大的感覺就是 便宜量又足。很多使用者就直接買了兩條2gb的...