64位系統和32位系統的區別

2021-06-18 12:18:46 字數 1832 閱讀 2967

一直糾結32位和64位作業系統倒底有哪些區別?32位作業系統最大只支援4g記憶體嗎?可是明明看到伺服器記憶體顯示是大於4g的,到底怎麼回事??經過一番查閱終於搞明白了。

作業系統有32位和64位之分,主要是因為存在32位,64位的cpu,其實是依據cpu解析的字組大小而來的(也有說是定址能力,我想可能是一樣的吧),字組大小(word size)是指cpu每次能夠處理的資料量,32位的cpu每次能夠處理的資料量較小,因此由記憶體傳來的資料量就有所限制了,這也導致32位的cpu最多只能支援到4g的記憶體(實際不止,後面會說到)。

64位cpu在2023年由amd公司開發出來,在此之前作業系統還不存在64位的,比如win2000系統就沒有64位的,為了適應64位cpu的高效能,所以後來的作業系統都會有32位和64位之分,這也就是64位作業系統普及少,軟體少的主要原因。

第二,要求配置不同。64位作業系統只能安裝在64位電腦上(cpu必須是64位的)。同時需要安裝64位常用軟體以發揮64位(x64)的最佳效能。32位作業系統則可以安裝在32位(32位cpu)或64位(64位cpu)電腦上。當然,32位作業系統安裝在64位電腦上,其硬體恰似「大馬拉小車」:64位效能就會大打折扣。 

第三,運算速度不同。64位cpu gprs(general-purpose registers,通用暫存器)的資料寬度為64位,64位指令集可以執行64位資料指令,也就是說處理器一次可提取64位資料(只要兩個指令,一次提取8個位元組的資料),比32位(需要四個指令,一次提取4個位元組的資料)提高了一倍,理論上效能會相應提公升1倍。

第四,定址能力不同。64位處理器的優勢還體現在系統對記憶體的控制上。由於位址使用的是特殊的整數,因此乙個alu(算術邏輯運算器)和暫存器可以處理更大的整數,也就是更大的位址。比如,windows vista x64 edition支援多達128 gb的記憶體和多達16 tb的虛擬記憶體,而32位cpu和作業系統最大只可支援4g記憶體。 

第五,軟體普及不同。目前,64位常用軟體比32位常用軟體,要少得多的多。道理很簡單:使用64位作業系統的使用者相對較少。因此,軟體開發商必須考慮「投入產出比」,將有限資金投入到更多使用群體的軟體之中。這也是為什麼64位軟體**相對昂貴的重要原因(將成本攤入較少的發售之中)。

總而言之,64位作業系統,必須「上」靠64位主機硬體的支撐,「下」靠64位常用軟體的協助,才能將64位的優勢發揮到極致,「三位一體」缺一不可(道理很簡單:作業系統只是承上啟下的執行平台)。至於64位cpu的電腦可以安裝32位作業系統,64位作業系統可以安裝32位軟體,那是設計上的「向下相容」,不是64位設計初衷的本來含義。

可是我們有很多伺服器裝的明明是32位的作業系統,但是記憶體是8g或者16g,而且作業系統也可以認出來,這是怎麼回事呢?原因是pae技術的出現,即實體地址擴充套件(physical address extension),彌補了32位cpu定址能力的不足。剛才說了,32位cpu最大支援4g記憶體,這麼大的記憶體,對於普通的桌面應用應該說是足夠用了。可是,對於伺服器應用來說,還是顯得不足,因為伺服器上可能承載了很多同時執行的應用。pae技術將位址擴充套件到了36位,這樣,系統就能夠容納2^36=64gb的記憶體。同時,pae技術的提出,也是為了解決在pse技術中,大物理頁面必須為4mb的限制。pae技術在pentium pro以及以後的cpu中實現,amd公司也在athlon以及以後的cpu中普及了這一技術。同樣,目前我們使用的作業系統也都支援了pae技術。

也就是說我們雖然裝的32位作業系統,但是因為cpu和作業系統支援了pae,所以最大能夠支援更大的記憶體。

怎麼知道你的cpu是否支援pae呢?linux系統下可以執行命令 cat /proc/cpuinfo

輸出的資訊中在flags一行中可以看到支援pae,如下圖,在windows系統下需要借助一些工具軟體來檢視。另外windwos作業系統要支援pae需要在boot.ini檔案中使用/pae引數,如下圖。

32位系統和64位系統的區別

這些領域的共同特點就是需要有大量的系統記憶體和浮點效能,簡單地說,64位作業系統是為高科技人員使用本行業特殊軟體的執行平台所設計的 2 安裝要求的配置不同,64位作業系統只能安裝在64位的電腦上,cpu必須是64位的,並且只在針對64位的軟體時才能發揮其最佳效能,32位作業系統既可以安裝在32位 3...

32位 和 64位系統區別

1.32位系統cpu一次可處理32位資料,即一次處理4個位元組。64位系統cpu一次可處理64位資料,即一次處理8個位元組。通俗一點說 32位,就相當於你擁有32個工人,每次能完成32個工人的工作量 64位,就相當於你擁有64個工人,每次能完成64個工人的工作量 總結 由32位系統過渡到64位系統,...

系統64位和32位的區別

從程式上說 32位與64位程式,是指經過語言編譯後的可執行檔案,比如 c 語言編寫的程式就需要區分是32位的還是64位 從系統和硬體上講 cpu一次處理資料的能力是32位還是64位,關係著系統需要安裝32位還是64位的系統 32 位和 64 位中的 位 也叫字長,是 cpu 通用暫存器的資料寬度,是...