題 i686和x86_64有什麼區別?


我有一個AMD Turion,在安裝Arch Linux時不知道選擇哪個版本。


103
2018-01-26 16:10


起源


可能重複 x86_64和i386之間的區別 - Sathya♦


答案:


i686是32位版本,x86_64是操作系統的64位版本。

64位版本將更好地擴展內存,特別是對於需要在同一進程中使用大量內存的大型數據庫等工作負載。不要考慮在32位計算機上運行(重要)數據庫服務器。

但是,對於大多數其他東西,32位版本是可以的。 32位代碼佔用的內存較少,因此您可以獲得更多其他內容。操作系統可以使用的內存限制沒有區別,只是每個進程的內存。

所以這真的取決於你想用它做什麼。如果您計劃為大型服務器開發軟件或運行大型服務器,請使用64位。否則使用32。


61
2018-01-27 07:47



如果4GB或更少的RAM,則不應安裝64位操作系統。如果RAM超過4GB,則應安裝64位操作系統。否則您將無法訪問所有RAM。 - d-_-b
@toor我不同意,1)32位操作系統能夠使用超過4G的ram與PAE等,現在是標準的2)並非所有進程的地址空間都可以映射到(不同的)物理RAM,所以它即使你有(略微)低於4G的RAM,也可以使用64位操作系統。 - MarkR
@toor當然,如果你想用2-3 Gb的私有匿名頁面運行一個進程,那麼在32位操作系統上就會變得很困難。地址空間耗盡在這樣的系統上是一個嚴重的問題,而不是耗盡(虛擬)內存。但是,切換到64位內核和用戶空間可能會導致任務消耗更多內存,可能超出目標。也許在某些情況下64位內核,32位用戶空間是好的。 - MarkR
如果您有64位處理器,請運行64位操作系統!呃,似乎很明智 - Sam Watkins
奇怪的是你們都沒有提到64位二進製文件通常是在支持64位彙編的情況下編譯的!在某些情況下,能夠使用64位操作可能會顯著提高應用程序的速度。想到的一個值得注意的是Crypto(OpenSSL等)。如果您的處理器支持64位通常最好使用64位應用程序! - jduncanator


簡短回答:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch

118
2018-01-26 16:51



這個答案對我來說最有用,特別是當我已經知道32位對64位時。扔掉我的部分是“i686”。通常,我只希望x86 - Antony
為什麼x86_64包含“86”部分? - mmdemirbas
關於為什麼“86”的好問題。不得不看我的自我。 serverfault.com/questions/188177/... - thrag
概括“386”,“486”,“586”,“686” - 建築的暱稱 - 回到像“80386”,“80486”等芯片。 - Brad
@Brad做對了:) 64位(或者在這種情況下x86_64中的_64位)只是指x86指令集的擴展。它仍然是相同的程序集(-ish)但是它增加了處理64位整數等的新指令。因此為什麼x86仍然相關。當人們說x86時,大部分時間他們真正意味著32位,因為x86也適用於64位機器。 - jduncanator


ix86表示通過生成處理器設置的處理器指令。例如:Intel Pentium,Intel Core2Duo,AMD K6。 ix86已存在多年,如果你有一個2000年以後的處理器,它可能至少有i686指令集。缺少其他指標暗示這將是32位版本。

x86_64表示使用64位寄存器和地址空間。如果您有64位處理器,請僅選擇此項  您想使用64位版本的操作系統。

這是你的選擇。我相信所有AMD Turion處理器都支持64位。您只需要決定是否需要64位版本或32位版本的Arch Linux。


29
2018-01-26 16:28