Fájlformátum

A fájlformátum azon eljárásnak a meghatározása, hogy egy számítógépes adat (kép, program, hang, adatbázis stb.) miképpen tárolható fizikai adathordozón, illetve hogyan jeleníthető meg egységes módon.

Amióta a merevlemezek csak biteket tárolnak, a számítógépnek számos lehetősége van, hogy az információt nullákká és egyesekké alakítsa át. A különböző információk részére különböző formátumok léteznek. 
A formátumokat típusosan a fájlok neve után találjuk, amelyek kettőtől négy betűig terjedő fájlkiterjesztésből állnak. Például, ha egy tárolt kép JPEG formátumú, akkor a fájl mypicture.jpeg vagy valami ehhez hasonló nevű.

Egyéb operációs rendszerek, mint például a régebbi verziójú Mac OS nem követelték meg a fájlkiterjesztést, de a fájltípusok és a készítő program sajátosságai megtalálhatók voltak a fájlban. Ezeket az operációs rendszer kezelte és a felhasználó előtt rejtve maradtak. Egy Microsoft Windows operációs rendszert futtató számítógépen a kiterjesztések a futtatható alkalmazások szempontjából fontosak (mivel az alkalmazások sokszor speciális adatformátumokat követelnek meg). A Unix és a Unix-alapú rendszerek hozhatnak létre kiterjesztést, bár ezt úgy kell tekintenünk, mint opcionális beállítást, és nem kötelezően alkalmazandó. Ezen rendszerek alatt alapvetően adatfájlokat, könyvtárakat (amelyek valójában speciális fájlok) vagy futtatható állományokat találunk.

Az operációs rendszer beállítása meghatározza, hogy alapértelmezettként melyik program futtatható egy általános megnyitás paranccsal és rendelkezik meghatározott kiterjesztéssel. Például, ha egy fájl  .htm  kiterjesztéssel rendelkezik, a beállítások meghatározzák, van-e olyan alapértelmezett böngésző vagy szerkesztő, esetleg szövegmegjelenítő, amely megjeleníti a HTML kódot.

Számos fájlformátumnak létezik kiadott specifikációs dokumentuma (gyakran referencia implementálással), ami pontosan leírja, hogyan történik az adatok kódolása, és melyik program kezeli, ismeri vagy nem ismeri fel a speciális fájlformátumot. Két kivétel létezik: először is egyes fájlformátumok fejlesztői úgy tekintik a specifikációs dokumentumokat, mint üzleti titkot, és nem hozzák őket nyilvánosságra; másodsorban egyes fejlesztők kellemetlenségnek veszik, ha specifikációs dokumentumot kell készíteniük. Pedig a formátum csak külsőleg van meghatározva a programok nagyon gyakran módosítják az adatokat a fájlformátumban.

Jegyezzük meg, hogy a fájlformátumok használata mindenféle nyilvános és elérhető specifikáció nélkül általában költséges. Ahhoz, hogy megtudjuk hogyan működnek a fájlformátumok, két dolog szükséges: reverse-engineering, melyet a referencia implementációból kapunk meg vagy a specifikációs dokumentum, melyet a formátumfejlesztőktől kaphatunk meg egy bizonyos díj megfizetése ellenében. (Jegyezzük meg, hogy a második eset csak úgy lehetséges, ha létezik egyáltalán specifikációs dokumentum, ugyanis akkor a fejlesztő megkövetel egy aláírásunkkal hitelesített nem szabadon közzétehető megállapodást). Mindkettő eset igen költséges és időigényes. Éppen ezért általános szabályként elmondható, hogy számos program található „publikált” fájlformátummal és hozzáférhető specifikációval, míg a nem publikált fájlformátumok csak kevés programnál fordulnak elő.

Egyes fájlformátumokat úgy terveztek meg, hogy nagyon különös adathalmazokat tudunk bennük tárolni. Például a JPEG formátumban csak teljes képeket tudunk tárolni, míg más formátumokat eleve úgy terveztek meg, hogy különféle típusú adatokat is tudunk bennük tárolni egyszerre. A GIF formátum támogatja képek és egyszerűbb animációk tárolását, míg az AVI különböző multimédiás adatok tárolására is alkalmas. A text fájlokban bármilyen szöveget, számokat és vezérlő karaktereket tudunk rögzíteni. A kiterjesztés lehet .txt de sokkal specifikusabb is, például a .par egy paraméter fájl, a .pas egy Pascal-forrás. Valójában a HTML fájl is egy text fájl, a karaktereket weblapok számára kódoljuk, tehát a weblapok a fájl egy magasabb szintjén találhatók. 

Míg a programok a fájlokat mint adatfolyamokat használják, addig a különböző metódusok a fájl formátumát jelölik. Egyik módszer ezen metaadatok jelölésére a fájlkiterjesztés, míg egy másik, amit maga a fájlrendszer is támogathat, az off-band adatok vagy a fájl szerkezetén belüli in-band, aminek megkülönböztető szerkezete van (mágikus számnak is nevezünk). Például a GIF fájlok könnyen felismerhetők a .gif kiterjesztésükről, egyes metaadatok típusai pedig meghatározhatók az első négy bájtjukról, például GIF8.

Néha előfordul, hogy a programok úgy olvasnak be egy bizonyos módszerrel kódolt fájlokat, mintha azokat egy másik módszerrel kódoltuk volna be. Egy zenelejátszó programot használhatunk (egy speciálisan módosított) Word dokumentum lejátszására, mintha az egy zeneszám lenne. Igaz, az eredmény nem zene, bár ez várható is, mivel a bitek egy speciális elrendeződése egy adott formátumban majdnem teljesen érzékelhetetlen egy másik formátum számára.

Nem könnyű egy szabályozott általánosan megfogalmazható konverzió létrehozása fájlformátumok és programnyelvek, vagy egy „normál program” és értelmezőprogram között. Egy programnyelvet úgy tekinthetünk, mint egy fájlformátumot, amit algoritmusok tárolására használunk. 

A szellemi tulajdon védelméről szóló törvény leghasznosabb része a magántulajdon, jelen esetben a fájlformátumok védelme, ez általánosságban a szabadalmi perekben bukkan föl. Fájlformátumok szabadalmaztatása tilos, viszont egyes formátumok megkövetelik a kódolás során a szabadalmaztatott algoritmusok használatát. A GIF formátum esetében fontos a szabadalmaztatott algoritmus használata, a szabadalom tulajdonosának mégsem fizet díjat senki sem, mivel használja az algoritmust. Ez azt eredményezi, hogy a GIF formátumot használók számát tekintve egy jelentős csökkenés tapasztalható.

Külső hivatkozások 
 Wotsit.org – The Programmer's File and Data Resource
 Magic signature database – Standard file format information and FFID registry
File extension encyclopedia  
 Format wars File formats for websites and print explained
 File signatures (aka magic numbers) found in files to indicate their file type
 PRONOM technical registry
 Library of Congress file format information
  Intoduction to Uniform Type Identifiers
 Game File Format Central – A large and expanding list of detailed descriptions of game-related file-formats 
 BIEW Binary vIEW project

Fájlformátumok