- CPU là "Turing hoàn thành" (lên đến giới hạn bộ nhớ)
- CPU có một hành vi xác định đơn giản mà có thể được mô phỏng với bộ nhớ hữu hạn máy Turing
Vì vậy, rõ ràng là bất kỳ CPU có thể mô phỏng bất kỳ CPU nào có đủ bộ nhớ.
Câu hỏi khó là làm cách nào để thực hiện điều đó nhanh.
Bên cạnh Houdini của Intel, tôi khuyên bạn nên nghiên cứu cách QEMU thực hiện điều đó.
QEMU là cách hàng đầu để chạy ARM trên x86. Nó là phần mềm GPL và được sử dụng làm cốt lõi của trình mô phỏng Android được các nhà phát triển Android sử dụng.
x86 trên ARM có ít hỗ trợ hơn, nhưng các khái niệm chính phải tương tự ngược lại.
Cụ thể, chơi với chế độ mô phỏng người dùng. Với chế độ này, bạn có thể chạy một thực thi ARM liên kết tĩnh trên máy chủ x86 đơn giản là:
qemu-arm-static ./executable
Một vài ý tưởng:
- hướng dẫn được quy đổi sang hướng dẫn máy chủ
- hệ thống các cuộc gọi được chuyển tiếp đến các máy chủ
Nguồn
2017-06-12 17:10:46
Có thể mã gốc của ARM không thể chạy trên x86 hoặc ít nhất là cần trình giả lập. –