Trong một cuộc thảo luận về khả năng tương thích ngược trong kernel Linux và GUI ABIs , Alan Cox lưu ý rằng " kernel 3.6rc của tôi vẫn sẽ chạy nhị phân Rogue được xây dựng vào năm 1992. X tương thích trở lại với các ứng dụng cũ hơn Linux. "
Vì vậy, các giao diện nhị phân của Ứng dụng Linux tương thích ngược như thế nào ?
Hệ thống nhị phân lâu đời nhất, thực sự được viết và biên dịch từ nhiều năm trước, vẫn sẽ chạy trên bản phân phối Linux cho mục đích chung hiện đại?
Tôi chắc chắn tất cả những từ đó có thể giải thích. Quan niệm chính của tôi là không công bằng khi chạy nó thông qua trình giả lập hoặc máy ảo chuyên dụng hoặc trình dịch nhị phân, nhưng một số thứ như vậy có thể được tích hợp vào một số bản phân phối hiện đại và tìm hiểu về điều đó là một phần thú vị ở đây.
Biến thể theo kiến trúc phần cứng, định dạng tệp thực thi , ngôn ngữ và phụ thuộc tải động thư viện chính cũng được quan tâm.
Lưu ý, khi các quy tắc được nới lỏng, đây là một ví dụ về việc quay lại. Trang web năm 2002 Chạy các chương trình thực thi a.out trên Red Hat Linux hiện đại nói về việc sử dụng các thực thi định dạng ELF a.out thực sự cũ của Linux sau khi thực hiện modprobe binfmt_aout
và lấy lại /lib/ld.so
và libc.so.4
đó là mối quan tâm ngoại vi cho câu hỏi này, nhưng minh họa các loại điều mà có thể tham gia khi đào sâu trở lại.
Cập nhật cho người hâm mộ BSD của bạn, thật tuyệt khi thấy iBCS2 đã hỗ trợ các ứng dụng Xenix cũ (như zork / dungeon-2.5.6 từ năm 1990) và các ứng dụng SCO OpenServer 5.0.x gần đây như NetBSD 4.0.1 (từ 2008): iBCS2 & NetBSD | Vui với ảo hóa . Nhưng điều tương tự dường như bị phá vỡ trong NetBSD 5.0.x.
Cập nhật 2 : Một năm sau, sau khi nhận được huy hiệu "Phát thanh viên" cho câu hỏi này, tôi vẫn đang tìm câu trả lời. Và để làm rõ, vì đây là về API, nó phải là một nhị phân "thực" (độ dài khác không), mà ít nhất vẫn hoạt động chủ yếu theo cách ban đầu.