Tại sao HĐH 64 bit không thể chạy trên CPU 32 bit, nhưng HĐH 32 bit hoạt động trên CPU 64 bit?
Tại sao HĐH 64 bit không thể chạy trên CPU 32 bit, nhưng HĐH 32 bit hoạt động trên CPU 64 bit?
Câu trả lời:
Tôi giả sử chúng ta đang nói về PC tiêu chuẩn ở đây.
Hầu hết các bộ xử lý 64 bit - đặc biệt là các bộ xử lý của Intel và AMD - có bộ hướng dẫn 32 bit đầy đủ cũng như các phần mở rộng 64 bit, vì vậy chúng có thể chạy phần mềm 32 bit.
Bộ xử lý 32 bit không có tập lệnh 64 bit. Nhiều người đã được thực hiện ngay cả trước khi tập lệnh 64 bit được xác định, do đó không thể họ thực hiện chính xác, thậm chí được mô phỏng. Họ không hiểu ngôn ngữ đó.
CPU 64 bit hỗ trợ bất kỳ độ dài từ nào lên đến 64 bit, vì vậy về mặt lý thuyết, bất kỳ HĐH 8, 16, 32 hoặc 64 bit nào cũng sẽ chạy trên chúng. CPU 32 bit không hỗ trợ độ dài từ 64 bit, do đó, chỉ phần mềm <= 32 bit (bao gồm cả hệ điều hành 32 bit) có thể chạy trên chúng.
Tại sao bạn không thể chạy Windows trên Atari cũ của bạn? Phần cứng và bộ xử lý không tương thích.
x86-64 nên được coi là hoàn toàn khác với x86 vì nó khác rất nhiều so với quan điểm về mã máy và mã máy. Điểm chung duy nhất mà họ thực sự chia sẻ là mã bootstrapping (từ khởi động 16 bit, để có được 64 bit, trước tiên bạn phải chuyển sang 32 bit) và chế độ tương thích 32 bit và các phần mở rộng CPU phổ biến như SSE. Ngoài ra, các bộ xử lý thực sự hoàn toàn khác biệt về cách các ứng dụng được tạo ra trong mã máy.
Đó là bởi vì bộ xử lý trong trường hợp máy 32 bit không thể xử lý 64 bit, nhưng bộ xử lý 64 bit có khả năng xử lý 32 bit vì nó có thể xử lý 64 bit một lúc.
Một hệ điều hành 64 bit được lập trình với các thanh ghi 64 bit. Một CPU 32 bit chỉ có các thanh ghi 32 bit.
Có rất nhiều lý do khác cho việc này là tốt, ngoài việc đăng ký.
HĐH 64 bit dựa trên các tính năng của bộ xử lý của bộ xử lý 64 bit.
Bạn không thể nói quy trình 32 bit để thực hiện thao tác trên thanh ghi 64 bit nếu nó không tồn tại.
Trong khi đó bộ xử lý 64 bit có mọi thứ mà 32 bit có, vì vậy nó có thể được thực hiện.