Điều này nghe có vẻ như một câu hỏi đầu tiên, nhưng chịu với tôi.Phần nào (cụ thể) của một tệp thực thi tự nhiên làm cho nó không thể di chuyển được?
Kiến thức chung là các tệp nhị phân cho một cấu trúc CPU không chạy trên các cấu trúc khác. Vì vậy, ví dụ nó không thể chạy (không có một lớp tương thích của một số loại), một x86 nhị phân trên một chip sparc64. Các bộ hướng dẫn khác nhau, vì vậy rõ ràng rằng sẽ không hoạt động.
Nhưng khi nhị phân là cho cùng một CPU, nhưng đối với một hệ điều hành khác, phần nào của mã này ngăn không cho thực thi được. Ví dụ, chạy một x86 Solaris nhị phân trên một hộp Linux x86. Tôi giả định rằng có một số loại nền tảng cụ thể mà liên quan đến thời gian chạy linker hoặc quá trình lên lịch?
Tôi muốn biết. Cảm ơn.
Lý do 1, 2 và 3 rất dễ sửa. Linux đã hỗ trợ một số lượng lớn các định dạng thực thi. Các ngắt mới có thể được tạo ra với một mô-đun hạt nhân có thể nạp được. Và các cuộc gọi hệ thống thường tương ứng khá tốt giữa các hệ điều hành khác nhau. – Zifre
Tôi nên nói rằng chúng tôi đang giả định ELF :) Cảm ơn câu trả lời. –