卷首語:
安裝Linux髮型版本等軟件的時候,經常會遇到x86, x86_64, i386, i686之類的名詞,它們到底是什麼意思呢?本文來個簡單的名詞解釋。
x86
又稱為x86架構,或者x86指令集,是美國Intel公司為其第一塊16位CPU(i8086)專門開發的。英特爾Intel早期CPU的名稱都是用數字代號表示,並以“86”作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為“x86”。
AMD/VIA等CPU也採用了x86的架構(指令集)。
其他芯片架構,例如手機芯片的ARM、龍芯的MIPS、神威太湖之光超級計算機CPU所採用的Alpha架構。
CPU指令集,我們可以理解為和CPU溝通的語言,通過與CPU約定好(所設計)的語言(指令集),和CPU進行溝通,讓其工作。
例如,因特爾和AMD的CPU能識別名叫x86和x86_64的語言。龍芯則只能聽懂MIPS指令。所以,CPU架構不同、指令集不同者其軟件就不能通用。
x86_64
即x86架構的64位版本。
其可以兼容x86(32位)版本的軟件(指令集),但是x86不能運行x86_64版本的軟件。
即所謂的向下兼容。
因為x86_64是在x86之後發明的,為了保持之前的軟件能使用,所以對其架構和指令的設計是向下兼容的,讓其能兼容32位版本。
686是pentiumpro及以後的通用arch,而i386是所有x86的通用arch,i386包括而i686沒有包括的就是386、486、586(pentium)、pentium-mmx
現在應該沒有人還在用586及以前的cpu,甚至是pentiumpro。而rpm都是為i386打的包,運行效率會低很多。
i386
Intel 80386,是英特爾(Intel)公司的一款x86系列CPU,最初發佈於1985年10月17日。而目前i386通常被用來作為對Intel(英特爾)32位微處理器的統稱。其採用的是x86架構的32位版本指令集。
i686
在i386之後,由因特爾發佈的,Pentium Pro以及此後的Intel 32位架構 CPU。其指令集是對i386指令集的一個優化,使其速度更快。
i386與i686的向下兼容性關係大概如下:
i386:
i386:
i486:
winchip-c6: MMX 3dNOW!
winchip2: MMX 3dNOW!
i586(pentium):
pentium-mmx: MMX
i686:
pentiumpro:
pentium2: MMX
pentium3(m): MMX SSE
pentium-m: MMX SSE SSE2
pentium4(m): MMX SSE SSE2
prescott: MMX SSE SSE2 SSE3
nocona: MMX SSE SSE2 SSE3 (64bit)
c3: MMX 3dNOW!
c3-2: MMX SSE
k6: MMX
k6-2,k6-3: MMX 3dNow!
althon,althon-tbird: MMX 3dNow! SSE(prefetch only)
athlon-4, athlon-xp, athlon-mp: MMX 3dNOW! 3dNOW(enhanced) SSE(full)
k8, opteron, athlon64, athlon-fx: MMX 3dNOW! 3dNOW(enhanced) SSE SSE2 (64bit)
可以看出,i686囊括了現在正在使用的所有x86,所以若看到安裝包,讓你選擇CPU的ARCH(架構)的時候,所有選i386的地方,都可以改為i686,這是沒有問題的,反而能在指令調度上優化,填滿流水線,使程序運行的更快。
但i686和i386一樣,都是32位架構CPU。而我們如今的電腦,基本上都是x86_64架構的CPU。
閱讀更多 TV玩家 的文章