Kompatibilitás (technika)

A Wikipédiából, a szabad enciklopédiából

A kompatibilitás a (számítás-)technikában készülékek, berendezések, programok együttműködését, egymással való helyettesíthetőségét vagy összekapcsolhatóságát jelentő tulajdonság. Ha egy újabb rendszer megfelel a régi képességeinek (de túlmutat rajta), visszamenőleges kompatibilitásról beszélhetünk. Az előre kompatibilitás esetében a rendszer régebbi változata képes kezelni az újabb változat adatformátumait, protokolljait stb.

Elektronikai elemek esetében akkor beszélhetünk kompatibilitásról, ha megegyező vagy hasonló kivitelük, megegyező karakterisztikájuk miatt lehetséges a két különböző alkatrész összekötése.

Visszamenőleges kompatibilitás[szerkesztés | forrásszöveg szerkesztése]

A visszamenőleges (vagy visszafelé) kompatibilitás az, amikor egy termék vagy szabvány új változata használható a korábbi változat körülményeinek, elvárásainak stb. megfelelően. Például, ha egy irodai alkalmazáscsomag képes megnyitni a régebbi változatban elmentett dokumentumot, és menteni is a régebbi fájlformátumban. Ez gyakran teljesül is, az újabb fájlformátumot azonban ritkábban tudják olvasni a régebbi változatok, sok felhasználót állandó frissítésre ösztönözve.

Egy másik példa a visszamenőleges kompatibilitásra az UTF-8 szabvány, melynél az első 128 karakter (az első 7 bit által reprezentáltak) megfelelnek az ASCII kódkészlet elemeinek, így a 7 bites ASCII-ben elmentett régi szövegek UTF-8 szerint is értelmezhetők.

Hardverek esetében manapság elvárás, hogy az újabb modellek képesek legyenek a régi modell programjainak futtatására (legalábbis megegyező gyártó esetén), az új modell programjai azonban sok esetben nem, vagy csak korlátozásokkal futnak a régin. Nagyszámítógépek esetén ezt az elvet már az 1960-as években alkalmazták, mikroszámítógépeknél csak az 1980-as évek közepétől. Az informatikában a visszamenőleges kompatibilitás funkciója gyakran problémákkal jár; ilyen volt például az x86-os processzorok valós üzemmódja, amit kompatibilitási okokból három évtized óta magukkal hurcolnak; vagy szoftverek területén a stabilitási gondokkal küszködő MS-DOS-alapú Microsoft Windows-verziók (95, 98, ME), amikben, kompatibilitási okokból, az MS-DOS és a Windows 3.x kódjának nagy része tovább élt.

Előre kompatibilitás[szerkesztés | forrásszöveg szerkesztése]

Előre kompatibilitás esetében a rendszer régebbi változata képes kezelni az újabb változat adatformátumait, protokolljait stb.

Egy irodai programcsomag esetében például a régebbi verzió képes lehet megnyitni az új verzióval készült dokumentumokat. Előfordulhat, hogy a dokumentum egyes részeit a régi változatú program nem képes értelmezni, ilyenkor ezeket kihagyja vagy kissé másként jeleníti meg, ám a dokumentumot képes megnyitni. Vagy egy webböngésző esetében, az új HTML-verziók tagjeit, amiket nem képes értelmezni, egyszerűen átugorja.

A programok előre kompatibilitását jóval nehezebb biztosítani a visszafelé kompatibilitásnál, mivel az alkalmazás elkészültekor nem lehet előre látni a későbbi változatokban felmerülő összes új megoldást.

Informatika[szerkesztés | forrásszöveg szerkesztése]

Alkalmazásprogramozási felület (angol API) és a lefordított felület (angol ABI).

Egy számítógépcsalád modelljei akkor kompatibilisek egymással, ha az egyiken futó szoftver futtatható a számítógépcsalád többi, általában teljesítményben, memóriamennyiségben vagy más képességekben eltérő tagján is. Egy extrém példa: az AMD Athlon 64-processzora visszamenőlegesen kompatibilis az Intel 8086-os processzorával, abban az értelemben, hogy képes futtatni az akár 30 évvel ezelőtt a 8086-osra írt szoftvereket. Ez visszafelé természetesen nem igaz. A kompatibilitás itt az utasításkészlet szintjén valósul meg, a programok végrehajtási sebessége drámaian megnövekedett. Az új processzornak más a tokozása, más jelzésrendszert, más feszültségszinteket használ – tehát nem lábkompatibilisak, nem lehet ugyanabba az alaplapba beilleszteni őket, ilyen szempontból inkompatibilisek.

Szoftverkompatibilitás[szerkesztés | forrásszöveg szerkesztése]

A szoftveres kompatibilitás utalhat egy program kompatibilitására egy adott CPU-architektúrával, mint Intel x86 vagy PowerPC, vagy utalhat arra, hogy a program képes futni egy adott operációs rendszer alatt. Igen ritka, hogy egy lefordított program képes legyen több különböző CPU-architektúrán futni. Másrészről, az értelmező segítségével futtatott programok képesek lehetnek sokfajta CPU-architektúrán és operációs rendszer alatt futni – amennyiben az értelmező rendelkezésre áll az adott rendszeren. A szoftveres inkompatibilitás gyakran akkor fordul elő, ha egy újabb operációs rendszerre megírt programot az operációs rendszer régebbi változatán próbáljuk futtatni, amiből hiányozhatnak a program számára szükséges funkciók. A régebbi operációs rendszeren is futó programot visszafelé kompatibilisnek is nevezhetjük.

Hardverkompatibilitás[szerkesztés | forrásszöveg szerkesztése]

A hardverkompatibilitás utalhat arra, hogy egy hardver képes-e együttműködni egy adott CPU-architektúrával, buszrendszerrel, alaplappal vagy operációs rendszerrel. A kompatibilitás nem jelenti azt, hogy a hardver a lehető legnagyobb teljesítménnyel üzemel, de mindenesetre képes együttműködni a többi hardvereszközzel. Például a RAM-modulok gyakran képesek üzemelni a névleges órajelüknél alacsonyabb (néha magasabb) órajelen is.

Továbbá, egy adott operációs rendszerhez tervezett hardver nem szükségképpen tud együttműködni más operációs rendszerrel. Például a Mac OS X-hez gyártott hardver nagy része zárt, egyedi hardver,[1] amihez nincs drivertámogatás más operációs rendszerek, pl. Linux alá.

Hibakompatibilitás („bug-for-bug compatibility”)[szerkesztés | forrásszöveg szerkesztése]

A hibakompatibilitás („bug-for-bug compatibility”) informatikai műszó arra az esetre, amikor egy termék új változata, vagy egy konkurens fejlesztő terméke lemásolja a régebbi termékváltozat hibáit.[2]

Általában ez nem azért történik meg, mert nehéz lenne a hibát kijavítani. A hibakompatibilitás oka inkább az, hogy más alkalmazásfejlesztők (pl. egy operációs rendszer esetén) számítanak a rendszer egy bizonyos működésére, a hibákat is beleértve. Így a hibás működés tulajdonképpen a program interface-ének a részévé válik – ennek az interface-nek a megváltozása pedig, akár hibajavítási céllal is, ezen programok hibás működését okozhatja.

Ennek a helyzetnek a megoldására egy gyakran alkalmazott stratégia, hogy magát a hibát kijavítják, de a korábbi viselkedést (legalább opcionálisan) szimulálni képes a termék. Így át lehet térni az új verzióra addig is, míg minden, a korábbi hibára építő programot átírtak az új működés szerint.

Források[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Mac OS X hardware compatibility - http://www.stepwise.com/MacOSXServer/HardwareSupport/index.html
  2. Dieter Kranzlmüller: Spezielles Kapitel 5: „Transmeta’s Crusoe“, Vorlesungsfolien über Transmetas Crusoe-Prozessor und dessen Fehlerkompatibilität zum Intel x86