İkili kod uyumluluğu - Binary-code compatibility

İkili kod uyumluluğu (ikili uyumlu veya nesne kodu uyumlu), bilgisayar sistemlerinin bir özelliğidir, yani aynı yürütülebilir kodu , genellikle genel amaçlı bir bilgisayar CPU'su için makine kodunu çalıştırabilirler . Kaynak kodu uyumluluğu ise, program çalıştırılmadan önce yeniden derleme veya yorumlamanın gerekli olduğu anlamına gelir .

Genel bir işletim sistemi üzerinde derlenmiş bir program için, ikili uyumluluk genellikle sadece iki bilgisayarın CPU'larının ( komut setlerinin ) ikili uyumlu olduğunu değil, aynı zamanda işletim sisteminin ve API'lerin arayüzlerinin ve davranışlarının ve bunlara karşılık gelen ABI'lerin de olduğu anlamına gelir. API'ler yeterince eşittir, yani "uyumludur".

Geriye dönük uyumlu gibi bir terim genellikle nesne kodu uyumluluğu anlamına gelir. Bu, daha yeni bilgisayar donanımı ve/veya yazılımının (pratik olarak) eskisinin tüm özelliklerine ek olarak ek yeteneklere veya performansa sahip olduğu anlamına gelir. Böylece daha eski yürütülebilir kod, yeni üründe değişmeden çalışır. Bir işletim sistemi altında doğrudan bir CPU üzerinde çalışan derlenmiş bir program için, "ikili uyumlu işletim sistemi", öncelikle , başka bir sistemle uygulama ikili arabirimi (ABI) uyumluluğu anlamına gelir . Bununla birlikte, genellikle uygulamanın doğrudan veya dolaylı olarak (örneğin Windows API gibi) bağlı olduğu API'lerin yeterince benzer olduğu anlamına gelir. Donanım (grafikler gibi CPU'nun yanı sıra) ve bir uygulamanın eriştiği çevre birimleri de tam uyumluluk için bir faktör olabilir, ancak birçok donanım farkı modern API'ler tarafından gizlenir (genellikle kısmen işletim sisteminin kendisi tarafından ve kısmen belirli aygıt sürücüleri tarafından sağlanır ) .

Diğer durumlarda, ikili uyumlu olmayan programların çalışması için yazılımın genel bir taşıması kullanılmalıdır.

İkili uyumluluk, birden çok işletim sisteminde çalıştırılacak bilgisayar programları geliştirirken büyük bir avantajdır. FreeBSD veya NetBSD gibi birkaç Unix tabanlı işletim sistemi, çoğu ikili yürütülebilir dosya bu tür işletim sistemleri için yaygın olarak dağıtılmadığından, Linux'tan türetilenler gibi daha popüler işletim sistemleriyle ikili uyumluluk sunar .

Çoğu işletim sistemi, işletim sisteminin önceki sürümlerinde çalışacak şekilde oluşturulmuş çoğu ikili dosya için işletim sisteminin her sürümünde ikili uyumluluk sağlar. Örneğin, Windows 3.1 , Windows 95 veya Windows 2000 için derlenmiş birçok yürütülebilir dosya Windows XP veya Windows 7'de de çalıştırılabilir ve DOS için birçok uygulama NTVDM desteklendiği sürece Windows 10'a kadar çok daha yeni Windows sürümlerinde çalıştı. .

İkili uyumlu donanım

Donanımda uygulanan bir dijital işlemci için, ikili uyumluluk , başka bir işlemci için üretilen (büyük bir alt küme) makine kodunun doğru bir şekilde yürütülebileceği ve diğer işlemci üzerinde (çok) aynı etkiye sahip olduğu anlamına gelir. Bu, birçok işlemci ailesi arasında oldukça yaygındır, ancak bu tür işlemciler etrafında inşa edilmiş her yerde bulunan küçük gömülü sistemler arasında oldukça nadirdir . Tam makine kodu uyumluluğu, burada tam olarak aynı kesme hizmeti rutinleri , G/Ç bağlantı noktaları, donanım kayıtları , sayaç/zamanlayıcılar, harici arabirimler vb. düzenini ifade eder . Daha fazla soyutlama katmanı kullanan (bazen cep telefonu gibi genel bir bilgisayarın sınırında) daha karmaşık bir gömülü sistem için bu farklı olabilir.

İkili uyumlu işletim sistemleri

İkili uyumlu işletim sistemleri, başka bir işletim sistemiyle veya aynı markanın başka bir çeşidiyle ikili uyumluluğu uygulamayı amaçlayan işletim sistemleridir. Bu, ABI uyumlu oldukları anlamına gelir ( uygulama ikili arabirimi için ). Bir işletim sisteminin işi programları çalıştırmak olduğundan, işletim sistemlerini çalıştıran komut kümesi mimarilerinin aynı veya uyumlu olması gerekir. Aksi takdirde, programlar uyumlu hale getirmek için bir CPU öykünücüsü veya daha hızlı bir dinamik çeviri mekanizması içinde kullanılabilir .

Örneğin, Linux çekirdeği Windows ile uyumlu değildir. Bu, Linux'un Windows uygulamalarıyla ikili uyumlu olamayacağı anlamına gelmez. Bunu bir dereceye kadar yapan ek yazılım Wine mevcuttur. ReactOS geliştirme çabası bir yaratmaya çalışmaktadır açık kaynak , özgür yazılım ile ikili uyumlu işletim sistemi Microsoft'un Windows NT uygulama uyumluluğu için Wine kullanılarak ve bu tür Linux sürücüleri değil kullanırsınız Linux oysa sürücüler için ek uyumluluk için, Windows çekirdek reimplementing işletim sistemleri ailesinin Windows sürücüleri. FreeBSD ve diğer üyeleri BSD ailesi ile ikili uyumluluk var Linux çekirdeği içinde usermode BSD olanları içine Linux sistem çağrıları çevirerek. Bu, Linux tabanlı işletim sistemlerinde çalışan uygulama ve kitaplık kodunun BSD üzerinde de çalıştırılmasını sağlar.

İkili uyumlu bir işletim sisteminin, ana işletim sisteminin uyumlu olmadığı durumlarda yazılımı alternatif işletim sistemi içinde çalıştırmak için yapılan sanallaştırma veya öykünme yoluyla alternatif bir işletim sistemi çalıştırmaktan farklı olduğunu unutmayın. Bazen sanallaştırma ana işletim sistemi ile sağlanır (veya bu tür bir yazılım edinilebilir), bu da ana işletim sistemini etkin bir şekilde programlarla uyumlu hale getirir. Örneğin, Windows 7 için Windows XP Modu , kullanıcıların Windows 7'nin 64 bit sürümünü çalıştırmalarına ve eski yazılımların Windows XP çalıştıran 32 bit sanal makinede çalışmaya devam etmesine olanak tanır ; VMware Workstation / VMware Fusion , Parallels Workstation ve Windows Virtual PC , diğer işletim sistemlerinin Windows, Linux ve macOS üzerinde çalıştırılmasına izin verir.

Başka bir örnek vermek gerekirse, PowerPC'deki Mac OS X , Mac OS 9 ve önceki uygulama yazılımlarını Classic aracılığıyla çalıştırma yeteneğine sahipti — ancak bu, Mac OS X'i Mac OS 9 ile ikili uyumlu bir işletim sistemi haline getirmedi. Mac OS X içinde normal bir işlem olarak çalışan sanal bir makinede Mac OS 9.1 .

Ayrıca bakınız

Referanslar

Dış bağlantılar