Có thể chạy nhị phân x64 trên bộ xử lý ARM không? [bản sao]


-7

Câu hỏi này đã có câu trả lời ở đây:

Giả sử bạn có một thiết bị nhúng ARM và máy tính xách tay dựa trên x64. Cả hai hệ thống đang chạy GNU / Linux. Nếu bạn quyết định sao chép nhị phân "ls" từ máy tính xách tay sang thiết bị nhúng và chạy nó trên nhúng, nó có hoạt động không? Giải thích lý do của bạn.


1
Đây có phải là một câu hỏi bài tập về nhà?
một CVn

3
Explain your reasoninglàm cho nó trông giống như câu hỏi bài tập về nhà.
VL-80

Câu trả lời:


4

Giả sử bạn có một thiết bị nhúng ARM và máy tính xách tay dựa trên x64. Cả hai hệ thống đang chạy GNU / Linux.

ĐỒNG Ý.

Nếu bạn quyết định sao chép nhị phân "ls" từ máy tính xách tay sang thiết bị nhúng và chạy nó trên nhúng, nó có hoạt động không?

Đây là nơi nó trở nên khó khăn. Nó rõ ràng sẽ không chạy như vậy; các bộ hướng dẫn là hoàn toàn khác nhau.

Tuy nhiên, nó có thể được thực hiện để chạy.

Sự lựa chọn rõ ràng là một số hình thức ảo hóa hoặc mô phỏng. Bằng cách mô phỏng CPU và mạch hỗ trợ xung quanh, bạn có thể chạy bất kỳ nhị phân thực thi nào, miễn là bạn có thể viết một trình giả lập đủ gần với phần cứng và phần sụn gốc để tạo ra kết quả mà bạn đang theo đuổi.

Điều này được thực hiện tất cả các thời gian; đó là cách các trò chơi Sega hoặc Nintendo cũ, Apple] [phần mềm và không có gì có thể được tạo để chạy trên các PC hiện đại. Khi nền tảng đích có sức mạnh xử lý đáng kể hơn so với nền tảng gốc và được cung cấp đủ tài liệu chi tiết về phần cứng và phần sụn, việc mô phỏng thường tương đối dễ dàng. Hãy xem xét trình giả lập IBM 5150 này được viết bằng Javascript chạy bên trong trình duyệt web của bạn làm ví dụ. Biên dịch chéo và mô phỏng là một cách tiếp cận tương đối phổ biến khi phát triển phần mềm cho các nền tảng nhúng.

Một cách khác là dịch mã máy sang kiến ​​trúc đích (thiết bị dựa trên ARM, trong trường hợp này) bằng trình biên dịch. Tùy thuộc vào mức độ khác biệt giữa các kiến ​​trúc, điều đó có thể là tầm thường hoặc nó có thể rất khó khăn. Nó sẽ đặc biệt có vấn đề nếu các mạch xung quanh phần lớn là khác nhau; ví dụ, một trò chơi video dựa trên phần cứng xử lý âm thanh và sprite chuyên dụng của bảng điều khiển trò chơi có thể sẽ không dễ dàng dịch sang một nền tảng không có các tính năng đó.

Câu hỏi thực sự là: tại sao bạn lại muốn làm một cái gì đó như thế này ngay từ đầu?

Sử dụng một nhị phân được xây dựng cho nền tảng đích sẽ, khi có sẵn, gần như chắc chắn là giải pháp dễ nhất.


0

Không. Bởi vì tệp nhị phân đã được biên dịch cho bộ xử lý khác. Nó dựa trên tập lệnh Intel x86 và sẽ không có ý nghĩa đối với ARM hoặc bất kỳ bộ xử lý nào khác cho vấn đề đó.

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.