Linux üzerinde çalışan en eski ikili?


34

Linux çekirdeği ve GUI ABI'lerinde geriye dönük uyumluluk üzerine bir tartışmada Alan Cox, " 3.6rc çekirdeğimin 1992'de inşa edilmiş bir Rogue binasını çalıştırmaya devam edeceğini belirtti. X, Linux'tan çok daha eski uygulamalara geri döndüğünü " belirtti.

Peki Linux Uygulama ikili arayüzleri ne kadar geriye uyumludur ?

Modern bir genel stok Linux dağıtımında çalışacak olan ve yıllar önce yazılmış ve derlenen en eski ikili dosya çalıştırılabilir dosya hangisidir?

Bütün bu kelimelerin yorumlamaya tabi olduğuna eminim. Benim temel düşüncem, bir emülatör veya özel sanal makine veya ikili tercüman aracılığıyla çalıştırmanın adil olmadığı, ancak bazı şeylerin muhtemelen bazı modern dağıtımlara yerleştirildiği ve bunun hakkında öğrenmenin eğlencenin bir parçası olduğu.

Donanım mimarisi, yürütülebilir dosya formatı , dil ve büyük kütüphane dinamik yükleme bağımlılıklarına göre değişiklikler de ilgi çekicidir.

Kurallar gevşetildiğinde, ilerde daha ileri gitmeye bir örnek. 2002 web sayfası modern Red Hat Linux'ta çalıştırılabilir bir çalıştırılabilir dosya çalıştırma, gerçekten eski Linux öncesi ELF formatındaki çalıştırılabilir dosyaları kullanmaktan bahsettikten modprobe binfmt_aout ve anlattıktan sonra /lib/ld.sove libc.so.4 yine bu sorunun çevresel yönden ilgi çekici olduğunu gösteriyor. daha geriye kazarken katılabilir.

BSD hayranları için güncelleme , iBCS2'nin eski Xenix uygulamalarını (1990'dan beri zork / dungeon-2.5.6 gibi) ve SCO OpenServer 5.0.x uygulamalarını NetBSD 4.0.1 (2008'den itibaren) kadar desteklediğini görmek harika: iBCS2 & NetBSD | Sanallaştırma ile eğlenceli . Fakat aynı şey NetBSD 5.0.x’te de kırılmış görünüyor.

Güncelleme 2 : Bir yıl sonra, bu soru için bir "Spiker" rozeti aldıktan sonra bile, hala bir cevap arıyorum. Ve açıklığa kavuşturmak için, bu API'lerle ilgili olduğu için, hala en azından çoğunlukla orijinal şekilde çalışan "gerçek" bir ikili (sıfır olmayan uzunluk) olmalıdır.


6
IBCS , Linux'tan birkaç yaş büyük ikili dosyaları çalıştırmanıza izin vermelidir.
Gilles 'SO- kötülük' dur

Bir "ABI" etiketi görmememe şaşırdım ve henüz bir tane oluşturamadım. Bu yüzden mantıklı olduğunu düşünüyorsanız.
nealmcb

@Gilles iBCS'nin eski olduğunu düşünüyor. Örneğin, belki de on yıl önce "Linux ABI" ile değiştirildi ( Linux ABI - Linux'taki diğer Unix dosyalarının kullanılması ) ve linux-abi'nin en son sürümü 2002'den itibaren 2.4.18 için görünüyor: kernel.org/pub/linux /kernel/people/hch/linux-abi/v2.4
nealmcb 08

1
1981’de Zork’un ikilisi IBM’in VM / 370’ında çalışıyor ve muhtemelen şu anki z / VM’leri: Zork - Computer History Wiki . Ve eğer bunu bulabilirseniz 1978 Zork ikili RT-11 üzerinde çalışır ....
nealmcb

3
+1 Geçen hafta bu teklifi okudum ve buraya gelip gelmeyeceğini merak ettim.
Michael

Yanıtlar:


11

Bence / bin / true en eski çalışan olmalı.

Peki, sıfır baytlık bir dosyayı ikili dosya olarak çağırır mısınız?

touch /tmp/old_true
chmod 755 /tmp/old_true
/tmp/old_true
echo $?

1
Sevimli. / Bin / true değerinin sıfır uzunluklu bir dosya olarak dağıtılıp dağıtılmadığını ve ne zaman ve nerede olduğunu biliyor musunuz? Sırıtıyor için bkz TDWTF Forumlar - Solaris / bin / true
nealmcb

3
@nealmcb - go.comYüklenen son COM dosyasını yeniden çalıştıracak hem CP / M hem de DOS için çağrılan 0 baytlık bir program vardı . Yani satıldı bile. Yani, aslında, Linux'tan önce. Sadece platforma atladığında ne yaptığını değiştirdi. Geriye dönük uyumluluk hakkında konuşun! Aynı anda çalışan bir CP / M, DOS ve * nix programımız var.
Jeremy J Starcher 18:12

Ne garip bir davranış - son COM dosyasını çalıştırın .... Her neyse, hala hala en azından çoğunlukla orijinal şekilde çalışan bir "gerçek" ikili (sıfır olmayan uzunluk) arıyorum.
nealmcb 28:13

ilginç bir şekilde bir POSIX kabuğunda ve csh'inde çalışıyor, ancak zsh'da başarısız oluyor:zsh: exec format error
Marco

Sadece açıklama için, bu yan tartışmayı sevmeme rağmen, "aslında yıllar önce yazılmış ve derlenmiş" olmadığı için bunu geçerli bir cevap olarak görmüyorum. ABI uyumluluğu hakkında soruyorum.
nealmcb

2

Peki Linux Uygulama ikili arayüzleri ne kadar geriye uyumludur?

Linux çekirdeği ABI için analiz raporuna bakabilirsiniz burada (2.6.36-4.4.5 sürümleri):

görüntü tanımını buraya girin

Bu sayfada birçok Linux temel kütüphanesi için bulabileceğiniz aynı rapor (Glibc, Qt, cairo, ...). Geriye dönük ikili uyumluluk yüzdelik olarak her sürüm için tahmin edilir, böylece her bir kitaplık için genel ABI uyumluluğu hakkında karar verebilirsiniz:

görüntü tanımını buraya girin

Upstream.rosalinux.ru sitesinde bulabileceğiniz yaklaşık 700 Linux kütüphanesi için çok daha fazla rapor . Bu kaynak artık desteklenmiyor ( bunun yerine abi-tracker kullanın), ancak kütüphanelerin eski sürümleriyle ilgili raporlara bakabilirsiniz.


2
Dahili "çekirdek ABI", linux üzerinde çalışan ikili uygulamaların geriye dönük uyumluluğu hakkında hiçbir şey söylemez. En fazla, çekirdek modüllerinin geriye dönük kaynak uyumluluğu hakkında bir şeyler söylüyor. Farklı bir çekirdek sürümü için derlenmiş modülleri yüklemenizi engelleyen önlemler olduğunu düşünüyorum.
DepressedDaniel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.