Sự khác biệt giữa tải xuống i386 và amd64?


164

Sự khác biệt giữa tải xuống i386 tiêu chuẩn và tải xuống amd64 của Ubuntu 11.04 là gì? Tôi hiện đang chạy i386 trên máy amd, hệ thống của tôi có hoạt động tốt hơn với bản tải xuống amd64 không? (máy của tôi đang chạy Windows 7 64 bit, nhưng tôi đã bỏ qua việc xem xét điều đó trước khi cài đặt Ubuntu).



Câu trả lời:


165

i386 đề cập đến phiên bản 32 bit và amd64 (hoặc x86_64) đề cập đến phiên bản 64 bit cho bộ xử lý Intel và AMD.

Mục nhập i386 của Wikipedia:

Intel 80386, còn được gọi là i386, hay chỉ là 386, là bộ vi xử lý 32 bit được Intel giới thiệu vào năm 1985 ... Điều này được gọi là x86, IA-32 hoặc kiến ​​trúc i386, tùy thuộc vào ngữ cảnh.

Mục nhập x86_64 của Wikipedia:

x86-64 là phần mở rộng của tập lệnh x86. Nó hỗ trợ không gian địa chỉ ảo và vật lý lớn hơn nhiều so với x86, do đó cho phép các lập trình viên làm việc thuận tiện với các tập dữ liệu lớn hơn nhiều ... Sau khi khởi chạy kiến ​​trúc dưới tên "x86-64", AMD đã đổi tên thành AMD64 ... x86 -64 vẫn được nhiều người trong ngành sử dụng như một thuật ngữ trung lập với nhà cung cấp, trong khi những người khác, đáng chú ý là Sun microsystems (nay là Tập đoàn Oracle) và Microsoft, sử dụng x64.

Ngay cả khi bạn có CPU intel, bạn vẫn nên sử dụng AMD64 để cài đặt 64 bit trên máy tính của mình (nó sử dụng cùng một bộ hướng dẫn).

Tôi rất khuyên bạn nên sử dụng nó. Đối với hầu hết các phần bạn sẽ không nhận thấy sự khác biệt nhưng đối với khối lượng công việc lớn (như chỉnh sửa video, chơi trò chơi, v.v.), máy tính sẽ hoạt động nhanh hơn (máy tính có khả năng tính toán 2 + 2 + 2 = 6 thay vì phải làm 2 + 2 = 4 + 2 = 6 trong một ví dụ). Trong thế giới Windows, HĐH 32 bit sẽ không cho phép bạn sử dụng hơn 3,5 Gigs RAM trên máy tính của bạn (ngay cả khi bạn có 8!). Bạn cần sử dụng HĐH 64 bit để sử dụng hết RAM. Tuy nhiên, đối với Linux, không có giới hạn nào như vậy (cảm ơn, Uri).

Bất kể, thế giới đã thay đổi từ 32 bit và nó chỉ ở đó để hỗ trợ các máy cũ không có khả năng chạy 64 bit.


Phần cuối cùng đó, bây giờ (tất nhiên là trong Linux) Chỉ là không đúng, bạn CÓ THỂ sử dụng nhiều hơn 3,5 GB RAM với hạt nhân PAE trong 32 bit.
Uri Herrera

Liệu giới hạn ram 3,5gbs của 32 bit sẽ là 4gbs- <bộ nhớ card đồ họa>?
Chriskin

3
Để đơn giản, tôi đã bỏ qua các kỹ thuật như bộ nhớ card đồ họa. Mục đích của tôi là nói "nếu bạn có nhiều hợp đồng biểu diễn hơn 3,5-4, hãy sử dụng 64 bit".

1
@Treefroginc Tweaks chính xác là gì?
Uri Herrera

1
64 bit là mỗi bit có thể sử dụng và ổn định là 32 bit với ngoại lệ gần như không đáng kể của Flash trong một số trường hợp nhất định trong một thời gian nhất định trong ngày và nếu các hành tinh thẳng hàng phát ra các tia vũ trụ.

41

Kiến trúc được đặt theo tên AMD vì AMD đã phát minh ra nó, với Athlon 64. Tương tự, kiến ​​trúc i386 32 bit được đặt theo tên bộ xử lý 386 của Intel, vì nó là loại đầu tiên, nhưng i386 cũng sẽ hoạt động trên bộ xử lý AMD. Vì vậy, có bạn có thể sử dụng hình ảnh ISO đó.

Nguồn: https://superuser.com/questions/128482/ubfox-amd64-vs-i386


10

có, bạn có thể cài đặt amd64 bit cho bộ xử lý Intel 64 bit. AMD đã phát minh ra bộ xử lý tập lệnh x86-64 bit để tên này chỉ là một sự tôn vinh dành cho AMD.


Cảm ơn bạn đã làm rõ điều này. Tôi biết đó là một câu hỏi đơn giản, nhưng tôi không thể tìm thấy câu trả lời ở bất cứ đâu.
Dave Wolover

8

Sự khác biệt giữa amd64i386amd6464 bit trong khi i38632 bit . Đây là chiều rộng (tính bằng bit) của các thanh ghi có sẵn trong lõi.

Về cơ bản, con số lớn nhất mà lõi CPU 32 bit có thể xử lý trong một lần là hơn 4,29 tỷ một chút trong khi lõi 64 bit có thể xử lý một số lượng hơn 18,44 tỷ, tỷ một chút.

Các lõi trong PC hiện đại có khả năng hoạt động như bộ xử lý 64 bit hoặc 32 bit tùy thuộc vào phiên bản hệ điều hành bạn đã cài đặt.

Mã 64 bit có xu hướng chạy nhanh hơn mã 32 bit vì nó có thể xử lý số lượng lớn hơn khi đang di chuyển hoặc do lõi 64 bit có nhiều thanh ghi hơn nên có thể lưu trữ nhiều thứ hơn mà không cần đặt mọi thứ vào bộ nhớ ngoài. Mặc dù không có gì đảm bảo rằng mã 64 bit sẽ chạy nhanh hơn nếu mã không được viết để tận dụng các tính năng bổ sung của bộ xử lý.

Biên dịch trên hệ thống 32 bit sẽ tạo ra mã khác với hệ thống 64 bit. Bạn có thể chứng minh điều này bằng cách biên dịch mã lắp ráp trên hai hệ thống. Giả sử tệp C của bạn là myfile.c hãy thử gcc -S myfile.ctrên cả hai hệ thống và so sánh myfile.s

Mã được viết tốt cho hệ thống 32 bit sẽ biên dịch và chạy trên hệ thống 64 bit nhưng không phải tất cả mã đều được viết tốt. Nhiều lập trình viên đưa ra các giả định về hệ thống có thể không đúng: chẳng hạn như độ rộng thanh ghi hoặc thứ tự byte.

Không có quyền truy cập vào mã nguồn của bạn, thật khó để biết vấn đề là gì nhưng segmenation faultđiều đó cho thấy rằng một nỗ lực đã được thực hiện để truy cập bộ nhớ không thuộc về chương trình. Ví dụ, điều này có thể chỉ ra rằng mem_ptr là con trỏ 32 bit, tốt trên hệ thống 32 bit nhưng cần phải là con trỏ 64 bit trên hệ thống 64 bit.


tôi sẽ kiểm tra nó và quay lại với điều này ... Thankx
bikram990 19/03/13

Các realloc(mem_ptr, 0)chức năng được giải phóng bộ nhớ trước đây được phân bổ với malloc, calloc, vv Nếu con trỏ mà đã bị hỏng trong bất kỳ cách nào thì bạn đang cố gắng để giải phóng bộ nhớ bạn không sở hữu và điều này tạo ra một lỗi segmentation
Warren Hill

6

Vâng, bạn có thể sử dụng .ISO. amd64 đề cập đến kiến ​​trúc. AMD là người đầu tiên tạo ra CPU 64 bit, vì vậy tôi tin rằng nó được đặt tên này vào thời điểm đó và tên bị kẹt. Có vẻ hơi khó hiểu, nhưng amd64 chỉ có nghĩa là 64-bit.


10
Họ không phải là người đầu tiên tạo ra cpu 64 bit. Intel đã có một cái trước đó nhưng nó không tương thích ngược, vì vậy không được áp dụng rộng rãi. Tên amd64 là để phân biệt kiến ​​trúc của AMD với IA64 của Intel, hiện đã bị ngừng sản xuất.
psusi
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.