BSD'nin Linux (ve diğer Unix benzeri) ikili dosyalarını çalıştırmasına izin veren nedir, ancak Linux (ve çoğu Unix benzeri) BSD ikili dosyalarını çalıştıramaz?
BSD'nin Linux (ve diğer Unix benzeri) ikili dosyalarını çalıştırmasına izin veren nedir, ancak Linux (ve çoğu Unix benzeri) BSD ikili dosyalarını çalıştıramaz?
Yanıtlar:
Piyasa güçleri.
Özellikle Linux'ta hedeflenen, * BSD'den çok daha fazla program var. Birçok yazılım kaynak kodu her ikisinde de derlenebilecek kadar taşınabilir, ancak Linux ikili dosyalarını gönderen birçok yazılım üreticisi, BSD'ler için Linux'tan daha küçük pazar paylarına sahip oldukları için bunu yapmak için can atmıyorlar . ¹
Bir yazılım parçası yalnızca farklı bir işletim sistemi için ikili biçimde mevcutsa, ABI öykünmesi çalışmasını sağlamanın bir yoludur, bu BSD'lerin yaptığıdır.
Bir zamanlar, x86 Unix, Linux üzerinde bir pazar çoğunluğu elde ettiğinde , SCO Unix ve benzeri için oluşturulmuş ikili dosyaları çalıştırmasına izin vermek için iBCS özelliği Linux'a eklendi. Bu özelliğe olan ilgi, Linux'un pazar payı arttıkça azaldı, böylece Linux 2.3 geliştirme serisi sırasında umursamazlığa düşmesine izin verildi. ” SCO davaları , bu özelliğin Linux dışında kullanılmasına yardımcı oldu, ancak bunun piyasa kaybına ikincil olduğuna inanıyorum. özelliği doğuran kuvvet.
Linux'un bir gün BSD ikili dosyalarını çalıştırmak için iBCS benzeri bir özellik alamamasının teknik bir nedeni yoktur, ancak BSD ve Linux'un piyasa pozisyonları bir nedenden ötürü değişmediği sürece olası değildir.
Bugün böyle bir şey için çok az çağrı var. Linux için inşa edilmemiş BSD için yalnızca kaç tane ikili program bulunduğunu biliyorsunuz? Bazıları olmalı ama sanırım çoğu Junos gibi gömülü BSD'ler içindi . Böyle bir özellik, Linux'ta başka türlü çalışmayan bir dizi programın çalışmasına izin vermezse, oluşturulmaz. ”
Dipnotlar:
Burada OS X'i BSD olarak saymıyorum, çünkü bu ayrı bir ikili uyumluluk sorunu. FreeBSD'den OpenBSD ve NetBSD'nin kullanımı ELF OS X kullanır ise, x 86 ile tamamen farklı bir yürütülebilir biçimi . Dinamik bağlantı ayrıca OS X'te geleneksel x86 BSD'lerden çok farklıdır .
Linux-OS X ikili uyumluluk hikayesi hakkında daha fazla bilgi için bu soruya bakın .
Gibi köpekbalığı belirli türlerinin ileri kalıplan durduğu, yazılım. Bu fenomene , yazılım söz konusu olduğunda boğulma yerine bit-çürük diyoruz , ancak neden ve sonuç aynı.
Linux'un Windows XP için yazılmış sadece ikili ağ kartı sürücülerini çalıştırmasını sağlayan Contrast NDISwrapper . Bir ihtiyaç tespit edilir ve bir ihtiyaç doldurulur. Bu sadece BSD ikili dosyalarını çalıştırma ihtiyacı nerede?
binfmt_misc
, isteğe bağlı ikili format işleyicilerini kaydetmenize olanak sağlayan modül aracılığıyla yürütecek altyapıya sahiptir . Bazı insanlar Mono uygulamalarını bu şekilde çalıştırıyor, bunun nadir olduğunu düşünüyorum. Ama dediğiniz gibi, hiç kimsenin bir * BSD binfmt işleyicisi yazmak için pek bir nedeni yoktu.