Sự khác biệt giữa i686 và x86_64 là gì?


Câu trả lời:


69

i686 là phiên bản 32 bit và x86_64 là phiên bản 64 bit của HĐH.

Phiên bản 64 bit sẽ mở rộng với bộ nhớ tốt hơn, đặc biệt đối với khối lượng công việc như cơ sở dữ liệu lớn cần sử dụng nhiều ram trong cùng một quy trình. Không xem xét việc chạy máy chủ cơ sở dữ liệu (đáng kể) trên máy 32 bit.

Tuy nhiên, đối với hầu hết những thứ khác, phiên bản 32 bit là ok. Mã 32 bit sử dụng ít bộ nhớ hơn, vì vậy bạn sẽ có nhiều hơn cho những thứ khác. Giới hạn về bộ nhớ mà HĐH có thể sử dụng không khác nhau, chỉ là bộ nhớ cho mỗi quá trình.

Vì vậy, nó thực sự phụ thuộc vào những gì bạn muốn sử dụng nó cho. Nếu bạn đang dự định phát triển phần mềm cho các máy chủ lớn hoặc chạy các máy chủ lớn, hãy sử dụng 64 bit. Nếu không thì sử dụng 32.


1
Nếu 4GB RAM trở xuống, bạn không nên cài đặt HĐH 64 bit. Nếu bạn có nhiều hơn 4GB RAM, bạn nên cài đặt HĐH 64 bit. Nếu không, bạn sẽ không thể truy cập tất cả RAM.
d -_- b

3
@toor Tôi không đồng ý, 1) HĐH 32 bit có thể sử dụng nhiều hơn 4G ram với PAE, v.v., hiện là tiêu chuẩn và 2) Không phải tất cả không gian địa chỉ của quy trình có thể được ánh xạ tới (RAM) vật lý, vì vậy nó có thể hữu ích để có HĐH 64 bit ngay cả khi bạn có (hơi) ít hơn 4G ram.
MarkR

3
@toor Chắc chắn nếu bạn muốn chạy một tiến trình duy nhất với 2-3 Gb trang ẩn danh riêng tư, điều đó trở nên khó khăn trên HĐH 32 bit. Sự suy giảm không gian địa chỉ là một vấn đề nghiêm trọng trên một hệ thống như vậy, thay vì hết bộ nhớ (ảo). Tuy nhiên, việc chuyển sang kernel 64 bit và không gian người dùng có thể khiến tác vụ tiêu thụ nhiều ram hơn, có thể vượt quá mục tiêu của bạn. Có thể trong một số tình huống kernel 64 bit, không gian người dùng 32 bit là tốt.
MarkR

1
nếu bạn có bộ xử lý 64 bit, hãy chạy HĐH 64 bit! duh, có vẻ hợp lý
Sam Watkins

2
Thật kỳ lạ khi tất cả các bạn đều không đề cập đến việc các nhị phân 64 bit thường được biên dịch với sự hỗ trợ cho lắp ráp 64 bit! Trong một số trường hợp, việc có thể sử dụng các hoạt động 64 bit có thể tăng đáng kể tốc độ của một ứng dụng. Một điều đáng chú ý xuất hiện trong tâm trí là Crypto (OpenSSL, v.v.). Nếu bộ xử lý của bạn hỗ trợ 64 bit, thông thường tốt nhất là sử dụng các ứng dụng 64 bit!
jduncanator

121

Câu trả lời ngắn:

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

18
Câu trả lời này hữu ích nhất đối với tôi, đặc biệt là khi tôi đã biết 32bit so với 64 bit. Phần khiến tôi thất vọng là "i686". Thông thường, tôi chỉ mong đợi đơn giản là x86
Antony

4
Và tại sao x86_64 chứa phần "86"?
mmdemirbas

3
Câu hỏi hay về lý do tại sao "86". Phải tự nhìn lên. serverfault.com/questions/188177/
Mạnh

8
Để khái quát hóa "386", "486", "586", "686" - biệt danh cho kiến ​​trúc - quay trở lại các chip như "80386", "80486", v.v.
Brad

3
@Brad hiểu đúng :) 64 bit (hoặc trong trường hợp này là bit _64 trong x86_64) chỉ đơn giản đề cập đến một phần mở rộng của tập lệnh x86. Nó vẫn giống như lắp ráp (-ish) tuy nhiên nó bổ sung các hướng dẫn mới để làm việc trên các số nguyên 64 bit, v.v ... Do đó, tại sao x86 vẫn có liên quan. Khi mọi người nói x86, hầu hết thời gian họ thực sự có nghĩa là 32 bit vì x86 cũng có thể áp dụng cho các máy 64 bit.
jduncanator

31

ix86 là một dấu hiệu của hướng dẫn bộ xử lý được tạo bởi bộ xử lý. Ví dụ: Intel Pentium, Intel Core2Duo, AMD K6. ix86 đã xuất hiện trong nhiều năm, nếu bạn có bộ xử lý được sản xuất sau năm 2000, thì ít nhất nó cũng có bộ hướng dẫn i686. Sự vắng mặt của các chỉ số khác gợi ý rằng đây sẽ là phiên bản 32 bit.

x86_64 cho biết việc sử dụng các thanh ghi 64 bit và không gian địa chỉ. Chỉ chọn điều này nếu bạn có bộ xử lý 64 bit bạn muốn sử dụng phiên bản 64 bit của hệ điều hành.

Sự lựa chọn là của bạn. Tôi tin rằng tất cả các bộ xử lý AMD Turion đều hỗ trợ 64 bit. Bạn chỉ cần quyết định xem bạn muốn phiên bản 64 bit hay phiên bản 32 bit của Arch Linux.


0

macemoneta giải thích

Về cơ bản, các chỉ định kernel khác nhau xác định tập lệnh nào mà trình biên dịch đã nói để tối ưu hóa cho. CPU i686 có thể chạy các lệnh i586 và i386, vì vậy, như bạn đã quan sát, một i686 có thể chạy kernel i386. Tuy nhiên, nó có thể không thực thi tối ưu như được biên dịch cụ thể cho i686.

Đây là những chỉ định bạn thường gặp phải:

Bộ xử lý x86_64

  • Athlon 64, Athlon 64-FX và Opteron của AMD
  • Bộ xử lý Intel EMT64 - Nocona Xeon, Pentium 4 sử dụng phiên bản E0 của lõi Prescott (AKA Pentium 4, model F)

Bộ xử lý i686 * Tất cả các Pentium 32 bit của Intel (không bao gồm Pentium 1 và Pentium MMX) * Tất cả các Athon 32 bit của AMD

Bộ xử lý i586

  • Tất cả AMD Ks 32 bit
  • Pentium 1
  • Pentium MMX

Bộ xử lý i386

  • Một chỉ định chung "mẫu số chung thấp nhất" cho các CPU tương thích Intel 80386 (bao gồm tất cả các điều trên, nhưng không tận dụng các hướng dẫn mở rộng trên các CPU sau này).
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.