Челябинский государственный университет

    О наших тестах
news Физикам -   GISMETEO: Погода по г.Челябинск
преподавателям и студентам
    

Что такое формат файла?

В статье дается описание понятию «формат файла», виды, особенности, преимущества и недостатки.


Очень давно, когда первые операционные системы учились размещать файлы на магнитных дисках, возникла проблема: если с именами файлов было все вроде понятно, то людям и командным процессорам приходилось совершать множество действий, чтобы определить, что же находится в файле.

Вспомним компьютерную грамотность и дадим определение понятию файл. «Файл – это именованная область информации на диске, объединенная по логическому признаку и обрабатываемая как единый объект». Как-то так, хотя это определение не академическое. Да бог с ним, с именем – интереснее узнать, что в файле находится: программа, электронная таблица, видео или аудио, текстовый документ или еще что-нибудь?

В системах Unix/Linux программу можно определить по атрибуту X, а вот в системах вроде MS-DOS и Windows это недоступно. Зато изначально там был командный процессор command.com, который и заведовал тем – запускать ли файл как программу или считать его файлом данных. Лезть внутрь файла для автоматического определения формата разработчики не стали, так как это дело темное и не всегда однозначное. Выход был найден в том, чтобы присвоить файлу расширение. С тех пор система и считает, что .doc, к примеру, это документ Word, хотя это может быть текстовый файл 1989 года. Или же пробует запустить .exe, который тоже может являться чем угодно, и не только программой. Что уж говорить о пользователях, которых вводит в ступор расширение вроде tar.gz.zip?

Так уж получилось, что каждая приличная программа хранит данные в файле, причем как она это делает – зачастую секрет фирмы. Расширение файла – единственный признак, чтобы определить ее формат, но типичных расширений несколько сотен – музыкальные файлы, базы данных, программы, документы, таблицы… Программисты и хакеры умеют «на глаз» определять формат файла по его шестнадцатиричному дампу, основываясь на известных ключевых моментах: «магических числах», текстовых полях, структурах. Собственно, важно знать то, что форматы файлов могут быть текстовыми и бинарными, и если первые можно исследовать с большим успехом, то вторые содержат намного более сложную информацию.

К примеру, известный формат .doc является контейнером, в котором находится целая файловая система, хранящая потоки данных и внедренные объекты. Avi тоже все разные, и представляют собой такие же контейнеры со звуковыми и аудиопотоками, закодированными разными форматами (поэтому один может читаться нормально, а другому нужен свой кодек). Графические файлы имеют свой формат, обычно состоящий из сотен нумерованных связных полей, где каждое поле может хранить комментарий, информацию о глубине цвета, размерах, способе упаковки данных. Знание формата файла дает возможность реализовать приложение, поддерживающее этот формат, что делает программу весьма привлекательной для пользователей. К примеру, до сих пор высоко ценятся хорошие конвертеры данных, преобразующие один формат в другой.