Bináris kód kompatibilitás - Binary-code compatibility

A bináris kód kompatibilitás (binárisan kompatibilis vagy objektum kódja -kompatibilis) egy tulajdonsága számítógépes rendszerek azt jelenti, hogy képesek futtatni ugyanazt futtatható kódot , jellemzően gépi kód egy általános célú számítógép CPU . A forráskód-kompatibilitás viszont azt jelenti, hogy a program futtatása előtt újra kell fordítani vagy értelmezni .

Egy általános operációs rendszeren összeállított program esetében a bináris kompatibilitás gyakran azt jelenti, hogy nemcsak a két számítógép CPU -ja ( utasításkészlete ) binárisan kompatibilis, hanem az operációs rendszer és az API -k interfészei és viselkedése , valamint az ezeknek megfelelő ABI -k Az API -k kellően egyenlőek, azaz „kompatibilisek”.

Az olyan kifejezés, mint a visszafelé kompatibilis, általában objektumkód kompatibilitást jelent. Ez azt jelenti, hogy az újabb számítógépes hardverek és/vagy szoftverek (gyakorlatilag) a régi minden jellemzőjével, valamint további képességekkel vagy teljesítménnyel rendelkeznek. A régebbi futtatható kód tehát változatlanul fut az újabb terméken. Egy operációs rendszer alatt közvetlenül CPU -n futó fordított program esetében a "binárisan kompatibilis operációs rendszer" elsősorban az alkalmazás bináris interfész (ABI) kompatibilitását jelenti egy másik rendszerrel. Ez azonban gyakran azt is jelenti, hogy az API -k, amelyektől az alkalmazás közvetlenül vagy közvetve függ (például a Windows API ), kellően hasonlóak. A hardver (a CPU -n kívül, például grafika esetén) és perifériák, amelyekhez egy alkalmazás hozzáfér, szintén a teljes kompatibilitás egyik tényezője lehet, bár sok hardverbeli különbséget elrejtenek a modern API -k (gyakran részben maga az operációs rendszer, részben pedig bizonyos eszközillesztők ) .

Más esetekben a szoftver általános portolását kell használni a nem binárisan kompatibilis programok működéséhez.

A bináris kompatibilitás jelentős előnyt jelent a több operációs rendszeren futó számítógépes programok fejlesztésekor. Számos Unix -alapú operációs rendszer, mint például a FreeBSD vagy a NetBSD , bináris kompatibilitást kínál a népszerűbb operációs rendszerekkel, például a Linux -alapú operációs rendszerekkel, mivel a legtöbb bináris futtatható fájl nem ilyen operációs rendszerekhez tartozik.

A legtöbb operációs rendszer bináris kompatibilitást biztosít az operációs rendszer minden verziójában a legtöbb bináris fájl számára, amelyek az operációs rendszer korábbi verzióin futnak. Például a Windows 3.1 , a Windows 95 vagy a Windows 2000 rendszerhez összeállított sok futtatható fájl Windows XP vagy Windows 7 rendszeren is futtatható , és sok DOS -alkalmazás a Windows sokkal újabb verzióin futott Windows 10 -ig, amíg az NTVDM támogatott .

Binárisan kompatibilis hardver

A hardveresen megvalósított digitális processzorok esetében a bináris kompatibilitás azt jelenti, hogy a másik processzorhoz előállított gépi kód (nagy részhalmaza) helyesen végrehajtható, és (nagyjából) ugyanolyan hatással bír, mint a másik processzorra. Ez meglehetősen gyakori a sok processzorcsalád között, bár meglehetősen ritka az ilyen processzorok köré épülő mindenütt jelenlévő kis beágyazott rendszerek között . A teljes gépkód-kompatibilitás itt pontosan a megszakítási szolgáltatási rutinok , az I/O-portok, a hardverregiszterek , a számlálók/időzítők, a külső interfészek és így tovább elrendezését jelenti . Egy bonyolultabb beágyazott rendszer esetében, amely több absztrakciós réteget használ (néha egy általános számítógép, például egy mobiltelefon határán), ez eltérő lehet.

Binárisan kompatibilis operációs rendszerek

A binárisan kompatibilis operációs rendszerek olyan operációs rendszerek, amelyek célja a bináris kompatibilitás megvalósítása egy másik operációs rendszerrel vagy ugyanazon márka másik változatával. Ez azt jelenti, hogy ABI-kompatibilisek (az alkalmazás bináris interfészéhez ). Mivel az operációs rendszer feladata a programok futtatása, az operációs rendszereket futtató utasításkészletek architektúrájának azonosnak vagy kompatibilisnek kell lennie. Ellenkező esetben a programok használhatók egy CPU -emulátorban vagy egy gyorsabb dinamikus fordítási mechanizmusban, hogy kompatibilisek legyenek.

Például a Linux kernel nem kompatibilis a Windows rendszerrel. Ez nem jelenti azt, hogy a Linux nem lehet binárisan kompatibilis a Windows -alkalmazásokkal. További szoftver, a Wine is elérhető, amely ezt bizonyos fokig meg is teszi. A ReactOS fejlesztési törekvése egy nyílt forráskódú , ingyenes szoftver operációs rendszer létrehozására törekszik , amely binárisan kompatibilis a Microsoft Windows NT operációs rendszer-családjával a Wine segítségével az alkalmazások kompatibilitása érdekében, és a Windows kernel újratelepítése a további kompatibilitás érdekében, például az illesztőprogramok esetében, míg a Linux nem a Linux illesztőprogramokat használja Windows illesztőprogramok. FreeBSD és más tagjai a BSD család bináris kompatibilitást a Linux kernel a usermode lefordításával Linux rendszer kéri a BSD is. Ez lehetővé teszi a Linux -alapú operációs rendszereken futó alkalmazás- és könyvtári kódok BSD -n történő futtatását is.

Ne feledje, hogy a binárisan kompatibilis operációs rendszer különbözik az alternatív operációs rendszer virtualizációval vagy emulációval történő futtatásától, amely a szoftver futtatására szolgál az alternatív operációs rendszeren belül, ha a gazda operációs rendszer nem kompatibilis. Néha a virtualizációt a gazda operációs rendszer biztosítja (vagy ilyen szoftver beszerezhető), ami gyakorlatilag kompatibilisé teszi a gazda operációs rendszert a programokkal. Például a Windows XP mód a Windows 7 számára lehetővé teszi a felhasználók számára, hogy futtassák a Windows 7 64 bites verzióját, és lehetővé tegyék, hogy a régi szoftverek továbbra is működjenek a Windows XP rendszert futtató 32 bites virtuális gépen ; A VMware Workstation / VMware Fusion , a Parallels Workstation és a Windows Virtual PC lehetővé teszik más operációs rendszerek futtatását Windows, Linux és macOS rendszereken.

Egy másik példa : a PowerPC -n futó Mac OS X képes volt a Mac OS 9 és korábbi alkalmazási szoftverek futtatására a Classic -on keresztül - de ez nem tette a Mac OS X -et binárisan kompatibilis operációs rendszerré Mac OS 9 rendszerrel. Ehelyett a klasszikus környezet futott Mac OS 9.1 virtuális gépen , normál folyamatként fut a Mac OS X rendszerben.

Lásd még

Hivatkozások

Külső linkek