Файлов формат

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Файлов формат (или още формат на файл(ове)) е определен начин за кодиране на информацията, когато тя се преобразува за съхранение в компютърен файл.

Файловете представляват последователност от битове (нули и единици) и компютърните програми трябва по някакъв начин да преобразуване на информацията от достъпен за човека вид в нули и единици и обратно. За различните видове информация има различни видове формати. Даден тип файл, например документ на текстообработваща програма, обикновено може да бъде с няколко различни формата. Понякога тези формати се съревновават един с друг.

Обща част[редактиране | edit source]

Някои файлови формати са създадени за строго определени типове данни: например при изображенията JPEG форматът е разработен, за да съхранява само статични фотографски изображение|изображения. Други формати, обаче, са разработени за съхранение на различни типове данни: GIF (Graphics Interchange Format) форматът подържа както статични изображения, така и прости анимации, а QuickTime-форматът може да се използва като контейнер за различни типове мултимедия.

Текстов файл е файл, който съдържа текст, кодиран например като ASCII или UTF-8, с малко (ако въобще ги има) контролни знаци. Някои файлови формати като HTML, или изходния код (source code) на някой програмен език, всъщност са също текстови файлове, но отговарят на някои по-специални правила, които позволяват да бъдат използвани и за други специфични цели.

Възможно е дадена програма да прочете файл, кодиран по един начин, все едно, че е кодиран по друг. Например може да бъде пуснат един Microsoft Word-документ все едно, че е песен, като се използва програма за слушане на музика, която борави с безхедърни („headerless“) аудио файлове. Но резултатът със сигурност няма да звучи особено мелодично. Причината за това е, че подредба на битовете, която е смислена за един формат, почти винаги е безсмислена в друг формат.

Спецификации[редактиране | edit source]

Много файлови формати, включително повечето популярни формати, имат публикувани спецификации (обикновено с пример за реализацията им), които описват точно как данните трябва да бъдат кодирани и определят дали дадена програма обработва даден компютърен формат коректно. Сред причините не винаги да има точна спецификация на файловите формати е, че някои от разработчиците считат техните документи за спецификация за търговска тайна и по тази причина не ги правят публично достояние.

Използването на файлови формати, за които няма публично достъпна спецификация, може да струва скъпо. За да се научи как точно работи форматът, се изисква или използването на обратно проектиране (reverse engineering) от вече образувани файлове, или получаването на спецификация срещу определена сума от разработчиците на формата. Този втори подход е възможен единствено, ако съществува такъв документ и обикновено е съпътстван от подписването на споразумение за конфиденциалност (non-disclosure agreement). И двата подхода изискват значително време, пари или и двете. По тази причина, като правило, файловите формати с публично достъпни спецификации се поддържат от голям брой програми, докато затворените формати се поддържат само от някои специализирани програми.

За защита на файловите формати се прилага по-често патентното, отколкото авторското право. Макар според американските закони не се разрешават патенти директно за файлови формати, някои от форматите използват кодиране на информацията с алгоритми, които са обект на патент.

Например GIF-форматът изисква прилагането на патентован алгоритъм и макар в началото притежателите на патента да не са го изисквали, по-късно започват да искат пари за използването на алгоритъма. Това довежда до значително намаляване на използването на този формат и е отчасти причина за появяването на алтернативен формат - PNG (Portable Network Graphics). Въпросният патент обаче е изтекъл в САЩ през 2003, а в световен мащаб в средата на 2004. Според европейското право алгоритмите обикновено не се патентоват [1]

Определяне на типа на файла[редактиране | edit source]

Програмите виждат файловете като потоци от данни, следователно нужен е метод чрез който да се определи форматът на определен файл от файловата система — един пример за използване на метаданни. Различните операционни системи по традиция използват различни подходи към този проблем, като всеки подход има своите предимства и недостатъци.

Разбира се, повечето модерни операционни системи, както и самостоятелните приложения, трябва да могат да използват всеки един от тези подходи, за да обработват различни файлове, или ако не могат да работят пълноценно, поне да четат чужди файлови формати.

Разширения на файловите имена[редактиране | edit source]

Един популярен метод, който се използва при някои операционни системи, в това число Mac OS X, CP/M, DOS, VMS, VM/CMS, и Windows, е да се определя форматът на файла на базата на частта от неговото име след последната точка. Тази част от файла е известна като разширение (extension). Например, HTML документите се идентифицират с имена завършващи с .html (или .htm), а GIF изображенията чрез .gif. В оригинално създадената FAT-файлова система, файловите имена са ограничени до осем символа за идентификатор (име) и до три символа като разширение, което е известно като 8.3 filename. Поради това много формати все още използват разширения от три символа, въпреки че модерните операционни системи и приложения вече нямат такова ограничение. Тъй като няма стандартен списък с разширения, може да се случи няколко формата да използват едно и също разширение, което може да обърка операционната система, а впоследствие и потребителите.

Една особеност на този подход е, че системата може лесно да бъде измамена да третира файла като различен формат просто като се преименува — един HTML файл, например, може лесно де се третира като обикновен текст като се преименува от filename.html на filename.txt. Въпреки че тази стратегия е удобна за напреднали потребители, за които е лесно да разберат и използват тази информация, тя често е объркваща за по-малко технически ориентирани потребители, които биха могли по невнимание да да направят файловете неизползваеми (и дори да ги загубят) като просто ги преименуват некоректно. Поради това в по-новите операционни системи като Windows 95 и Mac OS X, разширенията на файловете не се показват при извеждането им като списъци. Разбира се, по-напредналите потребители винаги могат да видят разширението на даден файл.

Вградени метаданни[редактиране | edit source]

Втори начин за идентифициране на файлов формат е като се съхранява информация относно формата в самия файл. Обикновено такава информация се записва във вид на бинарен низ, тагове или прав текст, поставени на точно определени позиции в самия файл. Тъй като е най-лесно те да се поставят в началото на файла, тази област се нарича обикновено файлов хедър (когато е по-голяма) или магическо число (когато е само няколко байта).

Източници[редактиране | edit source]

  1. Foundation for a Free Information Infrastructure. Europarl 2003-09-24: Amended Software Patent Directive. // Посетен на 2007-01-07.

Вижте също[редактиране | edit source]

Външни препратки[редактиране | edit source]

Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „File format“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.