Dalam sebuah diskusi tentang kompatibilitas ke belakang di kernel Linux dan GUI ABIs , Alan Cox mencatat bahwa " kernel 3.6rc saya masih akan menjalankan biner Rogue yang dibangun pada tahun 1992. X kembali kompatibel untuk aplikasi yang jauh lebih tua daripada Linux. "
Jadi seberapa kompatibel-belakangnya antarmuka biner Aplikasi Linux ?
Apa yang dapat dieksekusi biner tertua, yang sebenarnya ditulis dan dikompilasi tahun lalu, yang masih akan berjalan pada stok Linux modern untuk keperluan umum?
Saya yakin semua kata-kata itu tunduk pada interpretasi. Gagasan utama saya adalah bahwa tidak adil untuk menjalankannya melalui emulator atau mesin virtual khusus atau penerjemah biner, tetapi beberapa hal seperti itu mungkin dibangun ke beberapa distro modern, dan belajar tentang itu adalah bagian dari kesenangan di sini.
Variasi berdasarkan arsitektur perangkat keras, format file yang dapat dieksekusi , bahasa, dan dependensi pemuatan dinamis pustaka utama juga menarik.
Perhatikan, saat aturan dilonggarkan, inilah salah satu contoh untuk melangkah lebih jauh ke belakang. Halaman web 2002 Menjalankan executable a.out di Red Hat Linux modern berbicara tentang penggunaan executable format a-out Linux EL-out yang benar - benar lama setelah melakukan modprobe binfmt_aout
dan mendapatkan /lib/ld.so
dan libc.so.4
Lagi-lagi itu merupakan hal yang menarik bagi pertanyaan ini, tetapi menggambarkan berbagai hal yang dapat terlibat saat menggali lebih jauh ke belakang.
Pembaruan untuk Anda penggemar BSD, senang melihat bahwa iBCS2 mendukung aplikasi Xenix lama (seperti zork / dungeon-2.5.6 dari 1990) dan aplikasi SCO OpenServer 5.0.x baru-baru ini seperti NetBSD 4.0.1 (dari 2008): iBCS2 & NetBSD | Bersenang-senang dengan virtualisasi . Tetapi hal yang sama tampaknya rusak di NetBSD 5.0.x.
Pembaruan 2 : Satu tahun kemudian, bahkan setelah mendapatkan lencana "Penyiar" untuk pertanyaan ini, saya masih mencari jawaban. Dan untuk memperjelas, karena ini adalah tentang API, itu harus menjadi "nyata" biner (panjang tidak nol), yang masih setidaknya sebagian besar berfungsi dengan cara yang asli.
sumber
Jawaban:
Saya pikir bahwa / bin / true harus menjadi yang tertua ..
Nah, dapatkah Anda memanggil file nol-byte biner?
sumber
go.com
untuk CP / M dan DOS yang akan menjalankan kembali file COM terakhir yang dimuat. Jadi, itu bahkan dijual. Jadi, sebenarnya, itu mendahului Linux. Itu hanya mengubah apa yang dilakukan ketika platform melompat. Bicara tentang kompatibilitas mundur! Kami memiliki program CP / M, DOS, dan * nix yang semuanya berjalan sekaligus.zsh: exec format error
Anda dapat melihat laporan analisis untuk kernel Linux ABI di sini (versi 2.6.36-4.4.5):
Laporan yang sama dapat Anda temukan untuk beberapa pustaka berbasis Linux di halaman ini (Glibc, Qt, cairo, ...). Kompatibilitas biner mundur diperkirakan untuk setiap rilis dalam persen, sehingga Anda dapat membuat kesimpulan tentang kompatibilitas ABI keseluruhan untuk setiap pustaka:
Lebih banyak laporan untuk sekitar 700 perpustakaan Linux yang dapat Anda temukan di upstream.rosalinux.ru . Sumber daya ini tidak didukung lagi (gunakan abi-tracker sebagai gantinya), tetapi Anda dapat melihat laporan untuk rilis lama perpustakaan.
sumber