A kompatibilitás és az inkompatibilitás (#11)

Miről szól ez a cikk?
Ebben a cikkben a kompatibilitás és a szabvány fogalmával és jelentőségével ismerkedünk meg. Látni fogjuk, hogy a kompatibilitást a szabványoknak nevezett előírások biztosítják, és olvashatunk arról is, hogy mindezek a fogalmak hogyan hatnak a mindennapokra, az IKT világára

A kompatibilitás (compatibility) angol jövevényszó. Kompatibilitás alatt a számítástechnikában a berendezések, programok, adatállományok együttműködési képességét, egymással való helyettesíthetőségét vagy összekapcsolhatóságát értjük. Mondhatjuk azt is, hogy két eszköz, program vagy adatállomány akkor csereszabatos, ha kompatibilisek egymással.

Amennyiben két eszköz, program vagy adatállomány nem csereszabatos, akkor inkompatibilisek egymással. Az inkompatibilitás felléphet két, korábban kompatibilis eszköz, program vagy adatállomány között, amennyiben az egyik oly módon módosul, hogy az a kompatibilitást megszünteti.

1. A visszafelé kompatibilitás

A kompatibilitás mindig egy adott állapotot tükröz két egymással kompatibilis elem esetén. A kompatibilitás mindaddig fennáll, amíg az egyik elemet tovább nem fejlesztik, vagyis meg nem megváltoztatják valamilyen, a kompatibilitást érintő tulajdonságát. Ha ehhez a módosításhoz nem igazítják hozzá a másik elem érintett tulajdonságát, akkor a kompatibilitás megszűnik a két elem között, vagyis inkompatibilisek lesznek egymással.

A módosítás során többnyire arra törekednek, hogy a kompatibilitás továbbra is fennmaradjon a másik elemmel. Ezt úgy mondjuk, hogy a módosult elem visszafelé kompatibilis marad a másik elemmel. A visszafelé kompatibilitás lehet teljes vagy részleges. Utóbbi esetben csak bizonyos feltételekkel áll fenn a helyettesíthetőség.

2. A (kvázi) szabványok

A kompatibilitás biztosításának egyik legfontosabb eszköze a szabványok készítése, önkéntes betartása, vagy kikényszerített betartatása.

A számítástechnikára is igaz, hogy a lehető legtöbb területét szabványok szabályozzák. A szabványok az érintett állami szervek, a civil szabványügyi szervezetek, és a jelentős iparági szereplők együttműködése keretében jönnek létre.

Szabvány létrehozását bárki kezdeményezheti – azonban többnyire egy erre szakosodott szervek hivatalból és/vagy kötelességből, és/vagy iparági szereplők lépnek fel kezdeményezőként. Ha alulról kezdeményeznek egy szabványt, akkor annak előélete általában egy iparági szereplő kezdeményezte szokás kialakulása, elterjedése. Ha egy szabványhoz köthető vagy egy új eljárás elterjed, vagyis egyre több iparági szereplő, vagyis a piac alkalmazkodik hozzá, akkor kvázi szabvánnyá válik. Nem hivatalos még, de már elfogadott: ahhoz igazodó termékeket gyártanak, szolgáltatásokat nyújtanak. A hivatalossá válását, a szabvány végleges formába öntését már a szabványügyi szervezetek végzik, közösen az iparági szereplőkkel.

A szabvány szerepe, hogy az adott területet szabályozza, lehetőséget adjon a kompatibilis eszközök gyártására, szolgáltatások nyújtására. A szabványok egy része kötelezően betartandó, míg mások alkalmazása önkéntes, alkalmazásuk ajánlott. Léteznek nemzetközi és nemzeti szabványok. A nemzeti szabványok teljesen eltérhetnek a nemzetközi szabványoktól, de az országok lehetőségeik szerint megpróbál(hat)nak a nemzetközi szabványokhoz igazodni.

Néhány példa a nemzetközi és nemzeti szabványokra:

  • A lakossági villanyszolgáltatás nemzetenként eltérhet. Magyarországon a hálózati tápellátás 230V-os feszültségű és 50Hz frekvenciájú váltóárammal történik. Más országokban más értékekkel találkozunk. Ezért térnek el az egyes országokban egymástól a fali csatlakozóaljzatok és dugók.
  • Szabványok szabályozzák a különféle ipari és lakossági vezetékek kialakítását, anyagát, és egyéb jellemzőit, legyenek azok bármilyen közeget továbbítók (gáz, víz, szennyvíz, áram, adat).
  • A ruhák méretezése is eltérhet, illetve terjedőben vannak egységes, kompatibilis mérettáblázatok is.
  • A közlekedésben használt szabványok írják elő a bal vagy jobboldali közlekedést az utakon a járművek számára, az utak mentén a táblák formáját, tartalmát, magát a közlekedés rendjét, amit nálunk KRESZ néven ismerünk.
  • A szabványok és a lakosság számára jelentősen meghatározó tényező az alkalmazott mértékegységrendszer. A két legnagyobb az angolszász eredetű (hüvelyk, mérföld, pint, gallon stb.) és az SI mértékegységrendszer (kilogramm, méter, liter stb.).

A szabványok világméretű terjedése, globalizálódása, egymáshoz igazodása megállíthatatlan folyamat, a szabványok az élet minden területét átfogják, szabályozzák, aminek nagyon sok előnye van. A szabványokhoz mindenkinek egyszerű igazodnia, legyen az gyártó, kereskedő vagy felhasználó. A szabványoknak köszönhetjük mai IKT eszközeiket is, többek között az ún. IBM PC kompatibilis számítógépeket.

Tipp: A szabványok léte a civilizációs társadalmak egyik ismérve. Alkalmazásukat az a társadalmi felismerés indokolja, hogy az előírásokkal a termékek és szolgáltatások előállítása és használata versenyképessé, olcsóbbá, elterjedtebbé, biztonságosabbá tehetők. A szabvány tehát egyfajta önvédelmi reflex, amely az egyének, végső soron a társadalom jólétének fokmérője.

3. A hardver kompatibilitás (hardware compatibility)

A mai PC-ket eredetileg IBM PC kompatibilis számítógépeknek hívták és hívják ma is. A hazai PC korszak kezdetén, a 90-es évek elején, számítógépet vásárolva ki kellett hangsúlyozni az eladónak, hogy IBM PC kompatibilis számítógépet, vagy röviden PC-t akarunk vásárolni.

Erre azért volt szükség, mert a 70-es és 80-as évektől számos gyártótól eredő otthoni, hobbi, játékkonzol, asztali számítógép volt kapható (ZX81, ZX Spectrum, Commodore 64/128/Plus4, Atari, HT1080, Macintosh stb.) – az IBM PC kompatibilis számítógép csak egy volt a sok közül.

Akkoriban a teljes vagy részleges kompatibilitás csak az azonos gyártótól származó készülékek között állt fenn, így aki egy terméket vásárolt, az a jövőben hozzá lett kötve az adott gyártóhoz.

Az egyik legnagyobb iparági szereplő, az IBM amerikai multinacionális cég azonban gondolt egy nagyot a 80-as évek elején, és az általa tervezett moduláris felépítésű személyi számítógép jellemzőit szabványokba öntötte és azokat nyilvánosan elérhetővé tette. Ez a termék lett az IBM PC (PC = Personal Computer = személyi számítógép).

Tipp: Az alkatrészek egy részét az IBM külső gyártóktól, a számítógépet működtető operációs rendszert pedig az akkor még valóban mikrovállalkozásként működő Microsofttól vásárolta. Ahogy múltak az évek, a moduláris felépítésnek és a nyílt szabványoknak köszönhetően egyre több cég volt képes az IBM PC-jével kompatibilis alkatrészeket és számítógépeket gyártani, amelyek működtetéséhez adta magát a Microsoft DOS operációs rendszere.

Álljunk meg egy szóra!
A számítógép lelke a mikroprocesszor, ami az operációs rendszert futtatja, az operációs rendszer alatt pedig felhasználói programokat futtatunk. Mindezeket a fogalmakat és a közöttük lévő összefüggéseket a hardverrel és az operációs rendszerrel foglalkozó cikkekben fogjuk részletesen ismertetni.

A nyílt szabvány és a modularitás, valamint a külön megvásárolható (cserélhető) operációs rendszer elősegítette a számítógéptípus elterjedését, és a nagyszámú gyártó belépésével az egészséges árversenyt, így a megfizethető árakat. Ezen tulajdonságoknak köszönhetően pár év alatt sikerrel indult világhódító útjára az IBM PC, a 80-as évek végére kiszorítva az egyéb számítógépeket a vásárlói piacról.

A hardver kompatibilitás tehát azt jelenti, hogy egy adott célra gyártott eszközhöz bárki képes részegységeket tervezni, gyártani és forgalmazni, vagyis ezek az eszközök képesek együttműködni, csereszabatosak, vagyis kompatibilisek egymással.

Mivel a folyamatos fejlesztések miatt a szabványok folyamatosan megújulnak, folyamatosan jelennek meg az újabb és újabb részegységek, így a felhasználónak ismernie kell az aktuális állapotot. Új számítógép részegységekben történő vásárlása esetén a kompatibilis részegységeket össze kell tudni válogatnia, míg meglévő számítógépbe részegységet vásárolva figyelemmel kell lennie arra, hogy az új vagy használt részegység kompatibilis legyen.

Hardver kompatibilitásra néhány példa:

  • A számítógép fő részegységeinek kompatibilitása: az alaplap jellemzői és csatlakoztatási lehetőségei, a rá integrált processzor (CPU) és (RAM) memória foglalata meghatározza a számítógép generációját – melyik gyártó melyik generációs processzora; mekkora kapacitású, hány darab és milyen csatlakozójú memória ültethető be stb. – végső soron a számítógép teljesítményét, a futtatható operációs rendszert és alkalmazások típusát és verzióját.
  • Az alaplapi csatlakozók meghatározzák a csatlakoztatható háttértárolók és bővítő kártyák típusát.
  • A fő részegységek meghatározzák azt is, milyen típusú számítógépházra, és mekkora teljesítményű tápegységre lesz szükség.
  • Vannak-e például USB csatlakozók az alaplapon, hány darab van belőlük, milyen szabványúak stb.

Látható, hogy az IBM feladta a leckét az egyszeri vásárlónak – némi hozzáértést igényel, ha számítógépet akarunk vásárolni és használni, legalább a kompatibilitás fogalmának ismeretében. Természetesen vásárolhatunk a gyártó által készre összeszerelt, akár IBM gyártotta számítógépet is, de ebben az esetben is tisztában kell lennünk a fentiekkel, hogy valóban az igényeinknek megfelelő típust válasszuk és a későbbiekben se okozzon gondot a számítógép kiegészítése, bővítése.

Tipp: A fejezetben említett számítógép alkatrészekről több cikkben fogunk részletesen írni, így képesek leszünk egyszeri vásárlóként alkatrészekből összeállítani egy IBM PC kompatibilis számítógépet.

4. A szoftverek közötti kompatibilitás (program/software compatibility)

Ahogy terjedt az IBM PC kompatibilis számítógép, úgy nőtt a hozzá kapható operációs rendszerek és egyéb programok száma is. Az operációs rendszereket az adott hardveren, vagyis processzoron, a szoftvereket pedig a kiválasztott operációs rendszeren történő futtatásra készítették fel.

Álljunk meg egy szóra!
Szoftver, program, alkalmazás. Ezeknek a fogalmaknak a jelentése megegyezik, mind utasítássorozatot jelent, amelyet – aegyszerűen fogalmazva – a számítógép processzora hajt végre. Az operációs rendszer is egy összetett utasítássorozat, amelynek feladata a számítógép használatának biztosítása a felhasználó számára. Mindezekről a fogalmakról és a mögöttük álló ismeretekről későbbi cikkekben rántjuk le a leplet.

Az operációs rendszerek esetében a kompatibilitás azt jelenti, hogy az adott operációs rendszer melyik processzorcsaládon, architektúrán képes futni. Az IBM PC kompatibilis számítógépekben ún. x86-os architektúrájú processzorok találhatók. Az x86-os processzorokat az AMD és az Intel gyártja. Az AMD és az Intel processzoraival szerelt számítógépeken képes futni például a Microsoft Windows, a Linux valamelyik disztribúciója vagy az Apple iOS operációs rendszere, tehát ezek az operációs rendszerek kompatibilisek ezekkel a processzorokkal, végső soron az x86-os architektúrával.

Álljunk meg egy szóra!
Szoftverek közötti kompatibilitásról írtunk, az AMD vagy az Intel processzora viszont hardverelem. Hogy is van ez? A válasz az, hogy a processzort is program működteti. A processzorba fixen beágyazva található egy utasításkészlet. A kompatibilitás abban áll tehát, hogy az adott operációs rendszer utasításait valójában a processzor beépített utasításai, vagyis belső szoftvere hajtja végre. Nyilván az operációs rendszert olyan utasításokkal kell megírni, amelyek ismerik a processzorok belső utasításkészletét, képesek azokat utasítani egy adott művelet végrehajtására.

Egy alkalmazásnak egy operációs rendszerrel kell kompatibilisnek lennie, vagyis képesnek kell lennie azon elindulni, futni. Egy szoftverkészítő egy adott alkalmazást felkészíthet több operációs rendszeren való futtatásra is, külön változatot készítve az egyes operációs rendszerekhez. Ilyen szoftver például a Microsoft Office irodai alkalmazáscsomag, amelynek ismert Windowson, iOS-en és Androidon (Linux) futó változata is.

Egyazon operációs rendszeren futó alkalmazások között is fennállhat a kompatibilitás. Ez megvalósulhat közvetlen adatcserével vagy a másik alkalmazás által előállított adatállomány kezelésével.

Közvetlen adatcsere alatt azt értjük, hogy például egy szövegszerkesztő alkalmazásban készített táblázatot minden tulajdonságával együtt átemelhetünk a másik szövegszerkesztő alkalmazásba. Az adatállományok közötti kompatibilitás pedig azt jelenti, hogy az alkalmazások képesek egymás adatállományait kezelni, tehát megnyitni, a tartalmat megjeleníteni, módosítani, majd menteni, majd ezt követően az azt készítő alkalmazás ismét képes az ily módon kezelt adatállományt megnyitni és sajátjának tekinteni.

Az alkalmazások közötti esetleges kompatibilitásért a szoftvert előállító felel. Teszi ezt azért, hogy termékét piacképessé tegye, elterjedését növelje. Az operációs rendszer készítők is azért építenek be az operációs rendszerbe adatcserét biztosító szoftverkomponenseket, hogy a kompatibilitás biztosításával is emeljék termékeik versenyképességét. Az alkalmazáskészítők pedig ezek segítségével kevesebb munkával ruházhatják fel terméküket az adatcsere képességével.

Tipp: Az alkalmazások közötti adatcsere több módon is megvalósulhat.
A leggyakoribb és közismert eszköz a vágólap, amelyet minden operációs rendszer tartalmaz és a felhasználók többsége ismeri és használja. A kevésbé ismert, két szabványos módszer az ún. DDE (Dynamic Data Exchange – Dinamikus Adatcsere) és az OLE (Object Linking and Embedding – Objektum Csatolás és Beágyazás). Ezeket a szoftverszabványokat azért hozták létre, hogy az alkalmazások közötti adatcserének, vagyis kompatibilitásnak szabályozott eszközei legyenek. Mindkettő része a legtöbb alkalmazásnak, számos szoftver kínál is menüparancsot alkalmazásukra.
A fenti három eljárás használatáról későbbi cikkekben írunk majd.

5. Kompatibilis adatállományok (datafile compatibility)

Az elmúlt évtizedek alatt számos olyan alkalmazás született, amelyek bizonyos területeken ma már igen elterjedtnek, így nélkülözhetetlennek számítanak. Ebbe a csoportba számos dokumentumkezelő, grafikai, tervező, segédprogram stb. alkalmazás tartozik.

Az ezen alkalmazások által előállított adatállományok, más néven zárt dokumentumformátumok elterjedtté, közismertté, kvázi szabvánnyá váltak az évek során. Ma ilyen formátumnak számít például a DOC és DOCX, az XLS és XLSX, a PDF, a PNG, az MP3, az MKV vagy az AVI. A piaci verseny miatt a sokféle formátum a következő problémákat hozta magával:

  • A szoftverkészítő cégek foggal-körömmel védték a szoftverük által előállított adatállományok belső felépítését, nehogy más szoftverkészítő azt kezelő alkalmazással léphessen piacra, növelve a versenyt.
  • Az adatállomány belső felépítését szabadon módosíthatta a gyártó, az újabb és újabb szoftververziókban megjelenő újabb és újabb szolgáltatások által előállított objektumok mentésével. Például, ha egy szövegszerkesztő alkalmazás képessé vált táblázatok, diagramok, képletek kezelésére, vagy újabb szövegformázások alkalmazására, akkor ezeket is tudnia kellett elmenteni az adatállományába. Ezeket az újabb adatállományokat a fejlesztő régebbi alkalmazásai már nem kezelték, ezért a felhasználónak meg kellett vennie az újabb szoftververziót.
  • A zárt dokumentumformátum termékké vált a piacon, vagyis aki az adott adatállományt kezelni képes alkalmazást akart írni (pl. hogy képes legyen beolvasás után menteni az adott formátumban, vagy képes legyen azt kinyomtatni), annak ún. liszensz-, vagyis használati díjat kellett fizetnie a gyártónak. Ez nyilván korlátozta a versenyt, illetve megdrágította az alkalmazásokat.

Ha egy versenytárs liszenszelt egy dokumentumformátumot, akkor képessé vált olyan alkalmazást készíteni, amely adatállomány szinten kompatibilis tudott lenni a piacvezető cég termékével, vagyis a két szoftvercég által előállított két adatállomány kompatibilis volt egymással.

6. Nyílt dokumentumformátumok

A fenti piaci anomáliák kiküszöbölésére indultak kezdeményezések, először kvázi, majd véglegesített szabványok létrehozásával. A cél az volt, hogy egyes elterjedt dokumentumformátumokat függetleníteni lehessen a cégektől, pontosabban ezen dokumentumformátumok kialakítása és továbbfejlesztése mindig konszenzusos megegyezésen alapuljon, és azok használata ingyenes, a belső felépítés pedig bárki által megismerhető legyen. Voltak olyan cégek is, például az Adobe a PDF formátummal, amelyek maguk tették nyilvánossá elterjedtté vált dokumentumformátumukat, miközben továbbra is kezelik, fejlesztik azt. Fontos lépést tett a Microsoft is, amikor az irodai programcsomagja által kezelt saját dokumentumformátuma mellett nyilvánossá tette az ún. Microsoft Office OXML (Open XML = nyílt XML) formátumot.

A törekvéseket siker koronázta, létrejött az OpenDocument szabvány, amely számos, gyakori dokumentumformátumot ír le.

Tipp: A szabvány neve teljes nevén a következő: Open Document Format for Office Applications (ODF) – Nyílt Dokumentumformátum az Irodai Alkalmazásokhoz. Ez egy ún. XML alapú adatállományon alapuló, az XML szabványhoz kapcsolódó, annak dokumentumok leírásával bővített kiegészítése. A szabványt az OASIS (Organization for the Advancement of Structured Information Standards) nevű konzorcium készítette és publikálta 2005-ben.
Az XML (Extensible Markup Language = Kiterjeszthető Jelölő Nyelv) egy szabványos, webes célra létrehozott, általános célú leíró nyelv (speciális utasításokból áll a tartalom képernyőn és más eszközökön történő megjelenítéséhez, tulajdonképpen egy programozási nyelv). Elsődleges célja strukturált szöveg és információ szabványos formátumban történő megosztása az interneten keresztül. A szabványról többet az internetes technológiákról szóló cikkekben írunk majd.
Az OXML pedig ennek a nyelvnek egy kiterjesztése. 2008-ban vette át a Microsofttól a szabvány kezelését az ISO.

Az OXML vagy ODF szabvány között találunk

  • szövegszerkesztő (ODT – Open Document Text),
  • táblázatkezelő (ODS – Open Document Spreadsheet),
  • prezentációkészítő (ODP – Open Document Presentation),
  • grafikai (ODG – Open Document Graphics) és
  • képleteket kezelő (ODF – Open Document Formulas)

alkalmazásokhoz ajánlott dokumentumformátumot.

A szabványnak köszönhetően a felhasználók olyan dokumentumformátumokat kaptak, amelyekkel szemben – nyíltságuk miatt – meglett a bizalom, és amelyek megadják azt a nyugalmat, hogy a felhasználók igényeikhez és pénztárcájukhoz igazodva választhatnak irodai szoftvert.

7. A hibakompatibilitás (bug-for-bug/error compatibility)

A rend kedvéért megemlítünk egy negyedik fajta kompatibilitást is, amellyel a felhasználók ritkán, a fejlesztők és szakemberek annál inkább találkozhatnak. Ez a hibakompatibilitás.

Egy terméknél előfordulhat, hogy az valamiért hibásan működik. Ha a hiba ismertté válik, akkor a gyártó egy újabb hardver- vagy szoftververziót készít és dob piacra. Ez az új verzió működésében felülről kompatibilis a hibás verzióval, tehát továbbra is használhatók a hibás verzióhoz készült szoftverek.

Igen ám, de a hibás verzióhoz készült szoftverek számítanak a hibára, tartalmaznak olyan összetevőket, amelyek kikerülik a hibás részt. Ha a szoftvert a javított eszközön kezdik használni, akkor a hiba hiánya hibás működést eredményezhet a programban, ami inkompatibilitást okozhat. Ahhoz, hogy a kompatibilitás helyreálljon, a javított termék képes szimulálni a hibás működést, ha egy olyan szoftver jelenlétét érzékeli, amely számít a hibára.

Az egyik legsúlyosabb eset, ha a processzor belső működésében áll elő zavar – ezt okozhatja tervezési hiba vagy a belső szoftver hibája. Ilyen esetekre azt elmúlt években többször is volt példa, amiket az operációs rendszer készítők szoftveresen, többnyire az operációs rendszerhez írt javításokkal küszöböltek ki.

Miről szólt ez a cikk?
Egy nagyon fontos fogalommal, a kompatibilitással és annak hatásaival ismerkedtünk meg ebben a cikkben. Megtudtuk, mennyire fontos a számítástechnikában, mennyire befolyásolja a hardverek és szoftverek fejlesztését, használatát. Megismerkedtünk a hardverek, szoftverek és adatállományok közötti kompatibilitással és a dokumentumformátumok létezésével.
Megtudtuk azt is, hogy a kompatibilitás fenntartásának eszköze a szabványok léte.