ความแตกต่างระหว่าง i686 และ x86_64 คืออะไร?


คำตอบ:


69

i686 เป็นรุ่น 32 บิตและ x86_64 เป็นรุ่น 64 บิต

เวอร์ชั่น 64 บิตจะขยายขนาดหน่วยความจำได้ดีขึ้นโดยเฉพาะอย่างยิ่งสำหรับเวิร์กโหลดเช่นฐานข้อมูลขนาดใหญ่ซึ่งจำเป็นต้องใช้ RAM จำนวนมากในกระบวนการเดียวกัน อย่าพิจารณาเรียกใช้เซิร์ฟเวอร์ฐานข้อมูล (สำคัญ) บนเครื่อง 32- บิต

อย่างไรก็ตามสำหรับสิ่งอื่น ๆ ส่วนใหญ่รุ่น 32 บิตก็โอเค รหัส 32 บิตใช้หน่วยความจำน้อยลงดังนั้นคุณจะมีสิ่งอื่น ๆ อีกมาก ขีด จำกัด ของหน่วยความจำที่ระบบปฏิบัติการสามารถใช้ไม่แตกต่างกันเพียงหน่วยความจำต่อกระบวนการ

ดังนั้นมันขึ้นอยู่กับสิ่งที่คุณต้องการใช้ หากคุณวางแผนที่จะพัฒนาซอฟต์แวร์สำหรับเซิร์ฟเวอร์ขนาดใหญ่หรือใช้เซิร์ฟเวอร์ขนาดใหญ่ให้ใช้ 64 บิต มิฉะนั้นใช้ 32


1
หาก RAM 4GB หรือน้อยกว่าคุณไม่ควรติดตั้ง OS 64 บิต หากคุณมี RAM มากกว่า 4GB คุณควรติดตั้งระบบปฏิบัติการ 64 บิต มิฉะนั้นคุณจะไม่สามารถเข้าถึง RAM ทั้งหมดได้
d -_- b

3
@toor ฉันไม่เห็นด้วย 1) ระบบปฏิบัติการแบบ 32 บิตสามารถใช้ RAM มากกว่า 4G กับ PAE เป็นต้นซึ่งตอนนี้เป็นมาตรฐานและ 2) พื้นที่ที่อยู่ของกระบวนการอาจไม่ได้รับการแมปกับ RAM จริง (แตกต่างกัน) ดังนั้น อาจมีประโยชน์ในการมีระบบปฏิบัติการ 64 บิตแม้ว่าคุณจะมี RAM น้อยกว่า 4G (เล็กน้อย)
MarkR

3
@toor แน่นอนถ้าคุณต้องการเรียกใช้กระบวนการเดียวโดยมี 2-3 หน้าเพจส่วนตัวที่ไม่ระบุชื่อมันจะยากขึ้นในระบบปฏิบัติการ 32 บิต การสูญเสียพื้นที่ที่อยู่เป็นปัญหาที่ร้ายแรงในระบบดังกล่าวมากกว่าที่จะใช้หน่วยความจำ (เสมือน) หมด อย่างไรก็ตามการสลับไปใช้เคอร์เนล 64 บิตและพื้นที่ผู้ใช้มีแนวโน้มที่จะทำให้งานใช้ RAM มากขึ้นอาจเกินเป้าหมายของคุณ บางทีในบางสถานการณ์เคอร์เนล 64 บิตผู้ใช้ 32 บิตนั้นดี
MarkR

1
หากคุณมีตัวประมวลผล 64 บิตให้เรียกใช้ระบบปฏิบัติการ 64 บิต! duh ดูเหมือนสมเหตุสมผล
Sam Watkins

2
เป็นเรื่องแปลกที่คุณทุกคนล้มเหลวที่จะพูดถึงว่าไบนารี 64 บิตนั้นได้รับการคอมไพล์ด้วยการสนับสนุนแอสเซมบลี 64- บิต! ในบางกรณีความสามารถในการใช้งานการดำเนินการ 64 บิตสามารถเพิ่มความเร็วของแอปพลิเคชันได้อย่างมีนัยสำคัญ สิ่งที่น่าสังเกตคือ Crypto (OpenSSL และอื่น ๆ ) หากโปรเซสเซอร์ของคุณรองรับ 64- บิตมันเป็นวิธีที่ดีที่สุดในการใช้แอปพลิเคชัน 64 บิต
jduncanator

121

คำตอบสั้น ๆ :

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

18
คำตอบนี้มีประโยชน์มากที่สุดสำหรับฉันโดยเฉพาะเมื่อฉันทราบ 32 บิตกับ 64 บิตแล้ว ส่วนที่โยนฉันออกคือ "i686" โดยปกติแล้วฉันคาดหวังเพียงแค่ x86
แอนโทนี

4
และทำไม x86_64 จึงมีส่วน "86"
mmdemirbas

3
คำถามที่ดีว่าทำไม "86" ต้องมองว่าตัวฉันเอง serverfault.com/questions/188177/…
thrag

8
ในการพูดคุยทั่วไป "386", "486", "586", "686" - ชื่อเล่นสำหรับสถาปัตยกรรม - กลับไปที่ชิปเช่น "80386", "80486" ฯลฯ
แบรด

3
@Brad ทำให้ถูกต้อง :) 64- บิต (หรือในกรณีนี้ _64 บิตใน x86_64) เพียงแค่อ้างถึงส่วนขยายของชุดคำสั่ง x86 มันยังคงเป็นชุดเดียวกัน (-ish) อย่างไรก็ตามมันเพิ่มคำแนะนำใหม่สำหรับการทำงานกับจำนวนเต็ม 64- บิตเป็นต้นดังนั้นทำไม x86 จึงยังเกี่ยวข้อง เมื่อมีคนบอกว่า x86 เวลาส่วนใหญ่ของพวกเขาหมายถึง 32 บิตเนื่องจาก x86 นั้นใช้กับเครื่อง 64 บิตได้เช่นกัน
jduncanator

31

ix86 เป็นข้อบ่งชี้ของคำสั่งโปรเซสเซอร์ที่กำหนดโดยการสร้างโปรเซสเซอร์ ตัวอย่างเช่น: Intel Pentium, Intel Core2Duo, AMD K6 ix86 มีมานานหลายปีถ้าคุณมีหน่วยประมวลผลหลังจากปี 2000 อย่างน้อยก็อาจมีชุดคำสั่ง i686 การไม่มีตัวบ่งชี้อื่น ๆ บ่งบอกว่านี่เป็นเวอร์ชั่น 32 บิต

x86_64 กำลังใช้การลงทะเบียน 64 บิตและพื้นที่ที่อยู่ เลือกตัวเลือกนี้เฉพาะเมื่อคุณมีตัวประมวลผล 64 บิตและคุณต้องการใช้ระบบปฏิบัติการรุ่น 64 บิต

ทางเลือกเป็นของคุณ ฉันเชื่อว่าโปรเซสเซอร์ AMD Turion ทุกรุ่นรองรับ 64 บิต คุณเพียงแค่ต้องตัดสินใจว่าคุณต้องการรุ่น 64 บิตหรือรุ่น 32 บิตของ Arch Linux


0

macemoneta อธิบาย

โดยทั่วไปการกำหนดเคอร์เนลที่แตกต่างกันระบุว่าชุดคำสั่งใดที่คอมไพเลอร์ถูกบอกให้ปรับให้เหมาะสม CPU i686 สามารถเรียกใช้คำแนะนำ i586 และ i386 ดังนั้นเมื่อคุณสังเกตเห็น i686 สามารถเรียกใช้เคอร์เนล i386 อย่างไรก็ตามมันอาจไม่ได้รับการดำเนินการอย่างเหมาะสมเท่าที่รวบรวมไว้สำหรับ i686 โดยเฉพาะ

นี่คือการกำหนดที่คุณจะพบโดยทั่วไป:

x86_64 โปรเซสเซอร์

  • AMD Athlon 64, Athlon 64-FX และ Opteron
  • โปรเซสเซอร์ Intel EMT64 - Nocona Xeon ซึ่งเป็น Pentium 4 โดยใช้ E0 revision ของคอร์คอร์คอร์ (AKA Pentium 4, รุ่น F)

โปรเซสเซอร์ i686 * Intel Pentium 32 บิตทั้งหมด (ไม่รวม Pentium 1 และ Pentium MMX) * Athlons AMD 32 บิตทั้งหมด

โปรเซสเซอร์ i586

  • AMD Ks ทั้งหมด 32 บิต
  • Pentium 1
  • Pentium MMX

โปรเซสเซอร์ i386

  • การกำหนด "ตัวหารร่วมที่ต่ำที่สุด" สำหรับซีพียูที่ใช้งานร่วมกับ Intel 80386 (รวมถึงทั้งหมดข้างต้น แต่ไม่ได้ใช้ประโยชน์จากคำแนะนำเพิ่มเติมในซีพียูรุ่นหลัง ๆ )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.