為什么叫X86和X86_64和AMD64
為什么大家叫x86為32位系統呢
相信大家在大學里面有很多人都玩過8086(微處理器),這是一個可編程的系統,他是由intel開發的,英特爾出了劃時代的8086之后,后來使用該架構出了80286、80386等等,這一系列CPU就稱作x86,正式一點稱作IA-32(Intel Architecture 32-bit)。
所以x86指的是一種cpu的架構
X與處理器沒有任何關系,它是一個對所有*86系統的簡單的通配符定義,是一個intel通用計算機系列的編號,也標識一套通用的計算機指節集合,例如:i386, 586,奔騰(pentium)。
x86架構的特點是cpu的寄存器是32位的,因此也叫32位cpu。
基于32位cpu開發的操作系統就叫32位操作系統,因為目前x86架構在32位cpu的知名度,32位操作系統也通常被稱為x86系統。
這里再來講講故事:
(1) 上個世紀70年代末,因特爾生產了著名的16位8086處理器,之后又推出了80186與80286;
(2) 1985年,因特爾繼摩托羅拉之后,第二個研制出32位的微處理器80386;
(3) 1989年,因特爾推出80486處理器,具有浮點運算功能;
(4) 當初與因特爾競爭微處理器的摩托羅拉公司是以86開頭的,如68000,68010,68020。
(5) 1993年,因特爾推出奔騰處理器,不再以數字命名其產品;
后來在微處理器行業摩托羅拉沒有競爭過因特爾,因特爾也不再以數字命名其產品(單純的數字不是不能注冊為商標,只是很難而已),所以在工業界和學術界,大家仍然習慣性的把因特爾的處理器稱為X86系列,X作為通配符代替前面的數字。這個也就是歷史原因,帶86的也不一定為32位處理器,只是因為這些帶86的32位處理器比較出名,叫的用的都比較多,最后也就習慣了。
x86_64與amd64
由于32位系統x86架構的種種限制,包括速度,性能等方面,Intel開始向64位架構發展,那么有2選擇:
- 向下兼容x86
- 完全重新設計指令集,不兼容x86
結果AMD領先,比Intel率先制造出了商用的兼容x86的CPU,AMD稱之為AMD64,搶了64位PC的第一桶金,得到了用戶的認同。
而Intel選擇了設計一種不兼容x86的全新64為指令集,稱之為IA-64,但是比amd晚了一步,而且IA-64也挺慘淡的,因為是全新設計的CPU,沒有編譯器,也不支持windows(微軟把intel給忽悠了,承諾了會出安騰版windows server版,但是遲遲拿不出東西)。。。后來不得不在時機落后的情況下也開始支持AMD64的指令集,但是換了個名字,叫x86_64,表示是x86指令集的64擴展。
也就是說實際上,x86_64,x64,AMD64基本上是同一個東西,我們現在用的intel/amd的桌面級CPU基本上都是x86_64
i386
首先可以簡化一個概念,i386=Intel 80386。 其實i386通常被用來作為對Intel(英特爾)32位微處理器的統稱。
但是目前更多的時候,我們公認i386為32位系統,其實就是x86了。