Форматы файлов
Возможно, эта статья содержит оригинальное исследование. |
Эта статья нуждается в переработке. Пожалуйста, уточните проблему в статье с помощью более узкого шаблона. |
Формат файла, формат данных — спецификация структуры данных, записанных в компьютерном файле. Идентификатор формата файла, как правило, указывается в конце имени файла в виде «расширения». Расширение имени файла помогает идентифицировать формат данных, содержащихся в файле, программам, которые могут с ним работать. Иногда формат данных дополнительно указывается в начале содержимого файла.
В операционной системе для определения программы, которая может открыть какой-либо файл, применяется сопоставление (ассоциирование) файлов и программ.
Например, окончание имени (расширение) «.txt» обычно используют для обозначения файлов, содержащих только текстовую информацию, а «.doc» — содержащих текстовую информацию, структурированную в соответствии со стандартами программы Microsoft Word. Файлы, содержимое которых соответствует одному формату (реже — одному семейству форматов), иногда называют файлами одного типа.
Так как общепринятая в вычислительной технике концепция файла — неструктурированная последовательность байтов, компьютерные программы, сохраняющие структурированные данные в файлы, должны как-то преобразовывать их в последовательность байтов и наоборот (в ООП эти операции называются, соответственно, «сериализацией» и «десериализацией»; для текстовой информации последнее также называется «разбор» или «парсинг»). Алгоритм этих преобразований, а также соглашения о том, как различные фрагменты структурированных данных располагаются внутри файла, и составляют его «формат».
Различные форматы файлов могут различаться степенью детализации, один формат может быть «надстройкой» над другим или использовать элементы других форматов. Например, текстовый формат накладывает только самые общие ограничения на структуру данных. Формат HTML устанавливает дополнительные правила на внутреннее устройство файла, но при этом любой HTML-файл является в то же время текстовым файлом.
Другой пример — структура компьютерных программ — исполняемых файлов: она должна строго соответствовать некоторым ожиданиям (спецификации) запускающей её операционной системы.
Спецификации
Для многих форматов файлов существуют опубликованные спецификации, в которых подробно описана структура файлов данного формата, то, как программы должны кодировать данные для записи в этот формат и как декодировать их при чтении. Большинство таких спецификаций свободно доступно, некоторые распространяются за плату.
Иногда компании могут считать определённые форматы файлов своей коммерческой тайной и не публиковать их. Хорошо известный пример — форматы файлов пакета Microsoft Office. Однако, с переходом на открытый формат Office Open XML компания Microsoft все же опубликовала спецификации форматов под [англ.]. В некоторых случаях компания, выпустившая приложение, просто не считает нужным тратить время на написание подробной спецификации.
Если спецификация формата недоступна, то для обеспечения совместимости программы с данным форматом приходится заниматься обратной разработкой. В большинстве или во всех странах форматы файлов не защищены законами об авторских правах. Однако в некоторых странах патентами могут быть защищены алгоритмы, используемые для кодирования данных в какой-либо формат. Например, в широко распространённом формате GIF использовался патентованный алгоритм (срок действия патентов в разных странах истек в 2003—2004 гг.), что привело к разработке альтернативного формата PNG.
Определение типа файла
Тип файла — это информация для быстрой идентификации содержимого файла операционной системой и пользователем без необходимости считывания всего содержимого файла. Благодаря этой информации пользователь приблизительно знает тип содержащейся информации в файле, а в операционной системе может быть сопоставлена программа для обработки файлов данного типа. Для того, чтобы правильно работать с файлами, программы должны иметь возможность определять их тип. По историческим причинам в разных операционных системах используются разные подходы к решению этой задачи.
Расширение имени файла
Некоторые операционные системы, например, CP/M, RT-11, DOS и Microsoft Windows, используют для определения типа файла часть его имени, то есть «расширение имени файла». В старых операционных системах это были три символа, отделённые от имени файла точкой (в файловых системах семейства FAT имя и расширение хранились отдельно, точка добавлялась уже на уровне ОС); в более новых системах расширение может являться просто частью имени, и тогда его длина ограничена только неиспользованной длиной имени (которая может составлять, например, 255 символов). Например, HTML-файлам может соответствовать расширение «.htm» или «.html».
Пользователь может свободно изменить расширение файла. Поскольку многие оболочки пользователя используют расширение, чтобы определить программу, с помощью которой нужно открыть файл, это может сделать последний недоступным для работы или вообще «потерянным», если пользователь забудет исходное расширение. Поэтому Windows Explorer по умолчанию скрывает расширения. Эта практика имеет и обратную сторону: так как расширения файла не видно, можно обмануть пользователя, заставив его думать, что, например, файл с расширением .exe — изображение с другим расширением. В то же время опытный пользователь может использовать возможность изменить назначенный файлу тип, просто сменив расширение, чтобы открыть его в другой программе, не указывая её напрямую. Это может быть полезно, если в программе не предусмотрено открытия файлов с каким‑то расширением, а пользователь знает, что их формат подходит для обработки в данной программе.
Магические числа
Другой способ, широко используемый в UNIX-подобных операционных системах, заключается в том, чтобы сохранить в самом файле некое «магическое число» (сигнатуру) — последовательность символов, по которой может быть опознан формат файла. Первоначально этот термин использовался для специального набора 2-байтовых идентификаторов, сохраняемых в начале файла (эта практика перекочевала и в другие ОС, например, MZ в MS-DOS), однако, любая последовательность символов, характерная для данного формата, может быть использована как «магическое число».
Для определения формата файла служит команда file, которая использует файл /usr/share/misc/magic
$ file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped $ file notes.txt notes.txt: UTF-8 Unicode text $ file leave_2009-10-12.odt leave_2009-10-12.odt: OpenDocument Text
Строки с так называемыми «шебангами» в файлах скриптов — особая разновидность «магических чисел». Здесь сигнатура — человекочитаемый текст, который определяет программу — интерпретатор скрипта.
Метаданные
Некоторые файловые системы позволяют сохранять дополнительные атрибуты для каждого файла, то есть «метаданные». Эти метаданные можно использовать для хранения информации о типе файла. Такой подход используется в компьютерах Apple Macintosh. Метаданные поддерживаются такими современными файловыми системами, как HPFS, NTFS, ext2, ext3 и другими. Недостатком этого метода является плохая переносимость — при копировании файлов между файловыми системами разных типов метаданные могут быть потеряны.
MIME
Типы данных, определённые стандартом MIME, широко используются в различных сетевых протоколах, однако в файловых системах они пока применяются редко.
См. также
- Расширение имени файла
- Типы файлов (UNIX)
Примечания
- Tamura Jones. Microsoft releases Office Binary Formats (англ.). www.tamurajones.net. Дата обращения: 13 июня 2023. Архивировано 5 июля 2011 года.
- Open Specification Promise (англ.). msdn.microsoft.com. Дата обращения: 11 января 2018. Архивировано 7 декабря 2017 года.
- Understanding Office Binary File Formats (англ.). msdn.microsoft.com. Дата обращения: 11 января 2018. Архивировано 11 июля 2017 года.
Ссылки
- Энциклопедия форматов файлов (англ.)
- fileext.ru — Описание форматов, типов и расширений файлов. Чем открыть файлы различных форматов. (рус.)
- fileformats.ru — База расширений файлов и типов файлов. (рус.)
- Magic signature database — Standard file format information and FFID registry (англ.)
- Format wars File formats for websites and print explained (англ.)
- File signatures (aka magic numbers) found in files to indicate their file type (англ.)
- dotwhat.net — File extension and format information (англ.)
- PRONOM technical registry (англ.)
- Library of Congress file format information (англ.)
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Форматы файлов, Что такое Форматы файлов? Что означает Форматы файлов?
Vozmozhno eta statya soderzhit originalnoe issledovanie Proverte sootvetstvie informacii privedyonnym istochnikam i udalite ili ispravte informaciyu yavlyayushuyusya originalnym issledovaniem V sluchae neobhodimosti podtverdite informaciyu avtoritetnymi istochnikami V protivnom sluchae statya mozhet byt vystavlena na udalenie 31 maya 2022 Eta statya nuzhdaetsya v pererabotke Pozhalujsta utochnite problemu v state s pomoshyu bolee uzkogo shablona Pozhalujsta uluchshite statyu v sootvetstvii s pravilami napisaniya statej 31 maya 2022 Format fajla format dannyh specifikaciya struktury dannyh zapisannyh v kompyuternom fajle Identifikator formata fajla kak pravilo ukazyvaetsya v konce imeni fajla v vide rasshireniya Rasshirenie imeni fajla pomogaet identificirovat format dannyh soderzhashihsya v fajle programmam kotorye mogut s nim rabotat Inogda format dannyh dopolnitelno ukazyvaetsya v nachale soderzhimogo fajla V operacionnoj sisteme dlya opredeleniya programmy kotoraya mozhet otkryt kakoj libo fajl primenyaetsya sopostavlenie associirovanie fajlov i programm Naprimer okonchanie imeni rasshirenie txt obychno ispolzuyut dlya oboznacheniya fajlov soderzhashih tolko tekstovuyu informaciyu a doc soderzhashih tekstovuyu informaciyu strukturirovannuyu v sootvetstvii so standartami programmy Microsoft Word Fajly soderzhimoe kotoryh sootvetstvuet odnomu formatu rezhe odnomu semejstvu formatov inogda nazyvayut fajlami odnogo tipa Tak kak obsheprinyataya v vychislitelnoj tehnike koncepciya fajla nestrukturirovannaya posledovatelnost bajtov kompyuternye programmy sohranyayushie strukturirovannye dannye v fajly dolzhny kak to preobrazovyvat ih v posledovatelnost bajtov i naoborot v OOP eti operacii nazyvayutsya sootvetstvenno serializaciej i deserializaciej dlya tekstovoj informacii poslednee takzhe nazyvaetsya razbor ili parsing Algoritm etih preobrazovanij a takzhe soglasheniya o tom kak razlichnye fragmenty strukturirovannyh dannyh raspolagayutsya vnutri fajla i sostavlyayut ego format Razlichnye formaty fajlov mogut razlichatsya stepenyu detalizacii odin format mozhet byt nadstrojkoj nad drugim ili ispolzovat elementy drugih formatov Naprimer tekstovyj format nakladyvaet tolko samye obshie ogranicheniya na strukturu dannyh Format HTML ustanavlivaet dopolnitelnye pravila na vnutrennee ustrojstvo fajla no pri etom lyuboj HTML fajl yavlyaetsya v to zhe vremya tekstovym fajlom Drugoj primer struktura kompyuternyh programm ispolnyaemyh fajlov ona dolzhna strogo sootvetstvovat nekotorym ozhidaniyam specifikacii zapuskayushej eyo operacionnoj sistemy SpecifikaciiDlya mnogih formatov fajlov sushestvuyut opublikovannye specifikacii v kotoryh podrobno opisana struktura fajlov dannogo formata to kak programmy dolzhny kodirovat dannye dlya zapisi v etot format i kak dekodirovat ih pri chtenii Bolshinstvo takih specifikacij svobodno dostupno nekotorye rasprostranyayutsya za platu Inogda kompanii mogut schitat opredelyonnye formaty fajlov svoej kommercheskoj tajnoj i ne publikovat ih Horosho izvestnyj primer formaty fajlov paketa Microsoft Office Odnako s perehodom na otkrytyj format Office Open XML kompaniya Microsoft vse zhe opublikovala specifikacii formatov pod angl V nekotoryh sluchayah kompaniya vypustivshaya prilozhenie prosto ne schitaet nuzhnym tratit vremya na napisanie podrobnoj specifikacii Esli specifikaciya formata nedostupna to dlya obespecheniya sovmestimosti programmy s dannym formatom prihoditsya zanimatsya obratnoj razrabotkoj V bolshinstve ili vo vseh stranah formaty fajlov ne zashisheny zakonami ob avtorskih pravah Odnako v nekotoryh stranah patentami mogut byt zashisheny algoritmy ispolzuemye dlya kodirovaniya dannyh v kakoj libo format Naprimer v shiroko rasprostranyonnom formate GIF ispolzovalsya patentovannyj algoritm srok dejstviya patentov v raznyh stranah istek v 2003 2004 gg chto privelo k razrabotke alternativnogo formata PNG Opredelenie tipa fajlaTip fajla eto informaciya dlya bystroj identifikacii soderzhimogo fajla operacionnoj sistemoj i polzovatelem bez neobhodimosti schityvaniya vsego soderzhimogo fajla Blagodarya etoj informacii polzovatel priblizitelno znaet tip soderzhashejsya informacii v fajle a v operacionnoj sisteme mozhet byt sopostavlena programma dlya obrabotki fajlov dannogo tipa Dlya togo chtoby pravilno rabotat s fajlami programmy dolzhny imet vozmozhnost opredelyat ih tip Po istoricheskim prichinam v raznyh operacionnyh sistemah ispolzuyutsya raznye podhody k resheniyu etoj zadachi Rasshirenie imeni fajla Nekotorye operacionnye sistemy naprimer CP M RT 11 DOS i Microsoft Windows ispolzuyut dlya opredeleniya tipa fajla chast ego imeni to est rasshirenie imeni fajla V staryh operacionnyh sistemah eto byli tri simvola otdelyonnye ot imeni fajla tochkoj v fajlovyh sistemah semejstva FAT imya i rasshirenie hranilis otdelno tochka dobavlyalas uzhe na urovne OS v bolee novyh sistemah rasshirenie mozhet yavlyatsya prosto chastyu imeni i togda ego dlina ogranichena tolko neispolzovannoj dlinoj imeni kotoraya mozhet sostavlyat naprimer 255 simvolov Naprimer HTML fajlam mozhet sootvetstvovat rasshirenie htm ili html Polzovatel mozhet svobodno izmenit rasshirenie fajla Poskolku mnogie obolochki polzovatelya ispolzuyut rasshirenie chtoby opredelit programmu s pomoshyu kotoroj nuzhno otkryt fajl eto mozhet sdelat poslednij nedostupnym dlya raboty ili voobshe poteryannym esli polzovatel zabudet ishodnoe rasshirenie Poetomu Windows Explorer po umolchaniyu skryvaet rasshireniya Eta praktika imeet i obratnuyu storonu tak kak rasshireniya fajla ne vidno mozhno obmanut polzovatelya zastaviv ego dumat chto naprimer fajl s rasshireniem exe izobrazhenie s drugim rasshireniem V to zhe vremya opytnyj polzovatel mozhet ispolzovat vozmozhnost izmenit naznachennyj fajlu tip prosto smeniv rasshirenie chtoby otkryt ego v drugoj programme ne ukazyvaya eyo napryamuyu Eto mozhet byt polezno esli v programme ne predusmotreno otkrytiya fajlov s kakim to rasshireniem a polzovatel znaet chto ih format podhodit dlya obrabotki v dannoj programme Magicheskie chisla Drugoj sposob shiroko ispolzuemyj v UNIX podobnyh operacionnyh sistemah zaklyuchaetsya v tom chtoby sohranit v samom fajle nekoe magicheskoe chislo signaturu posledovatelnost simvolov po kotoroj mozhet byt opoznan format fajla Pervonachalno etot termin ispolzovalsya dlya specialnogo nabora 2 bajtovyh identifikatorov sohranyaemyh v nachale fajla eta praktika perekochevala i v drugie OS naprimer MZ v MS DOS odnako lyubaya posledovatelnost simvolov harakternaya dlya dannogo formata mozhet byt ispolzovana kak magicheskoe chislo Dlya opredeleniya formata fajla sluzhit komanda file kotoraya ispolzuet fajl usr share misc magic file bin ls bin ls ELF 32 bit LSB executable Intel 80386 version 1 SYSV dynamically linked uses shared libs for GNU Linux 2 6 18 stripped file notes txt notes txt UTF 8 Unicode text file leave 2009 10 12 odt leave 2009 10 12 odt OpenDocument Text Stroki s tak nazyvaemymi shebangami v fajlah skriptov osobaya raznovidnost magicheskih chisel Zdes signatura chelovekochitaemyj tekst kotoryj opredelyaet programmu interpretator skripta Metadannye Nekotorye fajlovye sistemy pozvolyayut sohranyat dopolnitelnye atributy dlya kazhdogo fajla to est metadannye Eti metadannye mozhno ispolzovat dlya hraneniya informacii o tipe fajla Takoj podhod ispolzuetsya v kompyuterah Apple Macintosh Metadannye podderzhivayutsya takimi sovremennymi fajlovymi sistemami kak HPFS NTFS ext2 ext3 i drugimi Nedostatkom etogo metoda yavlyaetsya plohaya perenosimost pri kopirovanii fajlov mezhdu fajlovymi sistemami raznyh tipov metadannye mogut byt poteryany MIME Tipy dannyh opredelyonnye standartom MIME shiroko ispolzuyutsya v razlichnyh setevyh protokolah odnako v fajlovyh sistemah oni poka primenyayutsya redko Sm takzheRasshirenie imeni fajla Tipy fajlov UNIX PrimechaniyaTamura Jones Microsoft releases Office Binary Formats angl www tamurajones net Data obrasheniya 13 iyunya 2023 Arhivirovano 5 iyulya 2011 goda Open Specification Promise angl msdn microsoft com Data obrasheniya 11 yanvarya 2018 Arhivirovano 7 dekabrya 2017 goda Understanding Office Binary File Formats angl msdn microsoft com Data obrasheniya 11 yanvarya 2018 Arhivirovano 11 iyulya 2017 goda SsylkiEnciklopediya formatov fajlov angl fileext ru Opisanie formatov tipov i rasshirenij fajlov Chem otkryt fajly razlichnyh formatov rus fileformats ru Baza rasshirenij fajlov i tipov fajlov rus Magic signature database Standard file format information and FFID registry angl Format wars File formats for websites and print explained angl File signatures aka magic numbers found in files to indicate their file type angl dotwhat net File extension and format information angl PRONOM technical registry angl Library of Congress file format information angl
