Все, що вам потрібно знати про формати файлів і їх властивості

Файл є однією з фундаментальних частин комп'ютерного досвіду. Але що таке «файл»? Це значок на стільниці, запис у списку, який відкриває ваш бюджет у вигляді електронної таблиці, і ім'я, яке ви можете дати своїй останній селфі. Зрештою, «файл» - це набір битів (нулів і одиниць), розташованих за шаблоном, який розуміє якийсь додаток.


Розробники можуть зберігати ці шаблони в секреті, що може змусити користувачів зберігати конкретну програму, незважаючи на альтернативи Інші розробники можуть заохочувати прийняття їх форматів. У деяких випадках ви можете легко відкривати та інтерпретувати формат, або може виявитися неможливим використання поза його власною програмою. Ми розглянемо приклади всього вищепереліченого у цій статті.

Текстові та двійкові формати файлів

Перший важливий аспект різних типів файлів - це двійкові або текстові файли. Давайте подивимося на кожен з них по черзі.

Текстові формати

Текстовий файл - це основний формат файла. Це може бути прочитано практично будь-якою системою з процесором. Цей формат є послідовністю бітів (одиниць і нулів), яка відповідає стандарту ASCII (на даний момент ми пропустимо Юнікод), що означає, що комп'ютер може інтерпретувати кожен байт (8 біт) як символ з числа наступних:

  • AZ (включаючи верхній і нижній регістр
  • 0-9
  • Космічний персонаж
  • Вибір символів (наприклад, знаки перепинання)
  • Символи керування (наприклад, DEL)

Оскільки дані зберігаються як текст, ви можете переглянути вміст файлу, відкривши його в текстовому редакторі, навіть у таких простих, як Windows Notepad (або еквіваленти для Mac, iOS і Android) Оскільки майже всі обчислювальні платформи поставляються з базовим текстовим редактором, ви можете помістити деяку (текстову) інформацію до одного з цих файлів і бути впевненим, що ви завжди зможете отримати до неї доступ. Іншим програмам не потрібно нічого знати, щоб хоча б правильно прочитати дані.

Однак все стає складніше, коли вам потрібно уявити щось на зразок шрифту тексту або автоматично заповненої дати на титульній сторінці. У цих випадках символи ASCII вносять свій внесок у текстовий формат, такий як Markdown або XML. Хоча це дає перевагу простому тексту, наприклад прозорості, ці файли часто вимагають більше місця для таких елементів, як теги. Розгляньмо наступний файл з одним реченням у вигляді простого тексту, а потім у форматі «Відкритий ODT» (FODT) у форматі відкритого документа, в якому використовується XML. На зображенні нижче показано, що текстова версія має розмір 53 байти, а версія ODT - 25 000 байтів.

Двоїчні формати

Навпаки, бінарні формати файли, які програма створюватиме поступово. Ви можете спробувати відкрити ці файли у текстовому редакторі, але він, ймовірно, не знатиме, як їх інтерпретувати. Нижче показано результат спроби відкрити файл Microsoft Excel за допомогою текстового редактора.

Програма повинна обробляти дані в двійковому файлі певним чином. Під час відкриття XLS-файлу програма повинна обробляти перші шістнадцять байтів файлу як маркер «Початок файлу» (BOF). У цьому маркері п'ятий елемент являє собою один біт, який вказує, чи був файл востаннє редагувався на платформі Windows («fWin»). Він йде після чотирьох інших елементів, кожен по два байти, що означає, що елемент «fWin» - це 65-й біт у файлі Excel.

Як ми бачили, якщо ви спробуєте відкрити його за допомогою програми, яка не обробляє 65-й біт як прапор «fWin», цей додаток не відкриє його правильно. Він може показувати багато викривлених символів на екрані (показано вище), витончено обробляти це з повідомленням про помилку (також показано вище, тому що Linux), або вилітати. У будь-якому випадку він не буде знати, як правильно читати дані, і тому не буде відображати їх правильно. Але програми, одного разу запрограмовані, можуть обробляти стільки форматів файлів, скільки забажають.

Відкриті та пропріетарні формати

Наступне міркування полягає в тому, чи є формат файлу відкритим (тобто доступним для легкого використання іншими користувачами) або закритим. Зверніть увагу, що «пропріетарне» не те ж саме, що закрите, принаймні, не у всіх випадках. Тоді як вищенаведені дебати «текст проти двійного коду» носили технічний характер, «відкритий проти пропрієтарного» більше пов'язаний з умовами ліцензування формату файлу. Докладніше про це у наступних розділах.

Відкриті формати

Відкриті формати - це ті, де ліцензія дозволяє користувачам застосовувати їх для своїх власних додатків. Якоюсь мірою орган зі стандартизації повинен також стежити за їх поточною розробкою спільнотою учасників, щоб формати були дійсно «відкритими». Відкриті формати також не вимагають витрат і обмежень на ліцензування - вони можуть використовуватися ким завгодно і для будь-яких цілей. Можливо, найвідоміший відкритий формат - це Open Document Oneat (ODF)., вперше випущений у 2005 році OASIS. Його мета полягала в тому, щоб запропонувати альтернативу замку, який Microsoft мав на ринку продуктивності.

З відкритими форматами вам ніколи не потрібно боятися, що ваша інформація заблокована всередині певного файлу. Розгляньмо наступне, яке показує наш файл формату Flat ODT. Незважаючи на те, що навколо нього багато сторонньої інформації, ви можете побачити фактичні дані там, як день.

Ще однією перевагою відкритих форматів є їх ретельна документація. Одна справа, щоб файл був легко читаним. Програміст все одно (методом проб і помилок) повинен з'ясувати, що саме робить кожна його функція. Але у випадку ODF специфікація версії 1.2 дає програмісту все, що їм потрібно знати, щоб ефективно реалізувати його підтримку.

Власні формати

Нарешті, пропріетарні формати захищені їх розробниками. Це може бути пов'язано з тим, що вони містять комерційну таємницю, з метою (передбачуваної) безпеки або просто тому, що розробник не хоче ділитися своєю роботою. Незалежно від причини, ці формати є власністю в силу Ліцензійних угод з кінцевим користувачем (E  s) або інших умов, що забороняють користувачеві намагатися перепроектувати або іншим чином «зламати» формат файлу.

Колись просто «заборонений», Закон про авторське право цифрового тисячоліття Закон про авторське право (DCMA) змінив речі. Розробники тепер мають юридичну підтримку для тих, хто перепроектує їхню роботу. Ви повинні подумати про майбутнє, перш ніж інвестувати в додаток, який використовує власний формат. Вам потрібно буде перенести цю інформацію куди-небудь у майбутньому? Якщо так, то наскільки боляче це буде? Чи буде компанія десь через рік або п'ять? Вам слід подумати про те, чи стоять функції програми, якщо це також означає, що їх потрібно заблокувати для цього розробника через власні формати.

Приклади форматів файлів

Якщо ви подивитеся на вищесказане, пара комбінацій вискочить на вас. Це правда, що текстові формати файлів піддаються відкриттю. Точно так само, якщо метою формату є приватна власність, простіше зберегти його таким, зробивши його двійковим. Але це не завжди так.

Формат зображення GIMP XCF - це відкритий формат, який також є двійковим. Проект включає детальний опис того, як формат містить графіку, текст і шари, які складають файл GIMP, у вигляді необроблених бітів і байтів (показано нижче). Розробники можуть використовувати це для кодування своєї власної реалізації, тому зовнішні програми, такі як ImceMagick, інструментарій може імпортувати їх.

І навпаки, новітній формат Microsoft Visio (VSDX) представляє собою формат на основі XML (і, отже, на основі тексту). Він публікує докладну довідку про склад цих файлів. Однак у довідковому документі наголошується, що у Microsoft «є патенти, які можуть охоплювати вашу реалізацію» підтримки. VSDX. Крім того, Бібліотека Конгресу заявляє, що використання специфікації VSDX «не гарантує безкоштовну ліцензію всіх відповідних патентів», якщо ви її використовуєте. Це ще один спосіб сказати, що ви можете кинути кістки і включити цю підтримку. Але Microsoft може або не може хотіти, щоб ви заплатили за неї пізніше, залежно від того, наскільки тісно вона конкурує з Visio.

Якщо ви думаєте, що це складно, як щодо непоганого формату ODT. Це файл ZIP (двоїчний і відкритий, якщо ви не використовуєте його шифрування), який містить текст документа (content.xml, відкритий текстовий формат) і графіку (наприклад, PNG, двоїчний, але відкритий).

Наскільки важливі формати файлів?

Це складне питання. З одного боку, деякі операційні системи, такі як iOS, взагалі намагалися захистити користувачів від роботи з файлами. У вас є програма, яка створила файл, щоб відкрити його, кого хвилює його структура або його розширення? Тим не менш, багато організацій (особливо уряди) наполягають на тому, щоб загальнодоступні дані знаходилися у відкритому форматі.

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

Що ви думаєте? Чи вимагаєте ви, щоб ваша інформація знаходилася у відкритих текстових форматах, які ви можете конвертувати і перевіряти? Або які формати використовуються розробниками, пропріетарні чи ні, вам достатньо? Дайте нам знати нижче в коментарях!