Как устроены файлы? Разбор

Сегодня мы залезем в самую суть файлов и раскроем их метаданные! Чем TXT отличается от WAV и ZIP. Что значат буквы ODF и OOXML?
vedensky 21 июня 2021 в 10:22

Файлы… что вообще может быть проще? Мы все привыкли создавать, удалять, редактировать, перекидываться файлами.

Но можем ли мы заглянуть внутрь каждого файла и понять как он устроен? Конечно можем, поэтому сегодня мы немного покопаемся в бинарном коде и пощупаем метаданные.

Заодно узнаем, почему iPhone зависает от SMS и распотрошим PowerPoint.

Почему форматов файлов так много?

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

Но как же тогда понять, где заканчивается один файл и начинается другой?

Поначалу эту проблему человечество решало брутально. Люди записывали один файл на один жесткий диск, чтобы уж точно не ошибиться. Поэтому раньше словом файл называли не отдельную область на жестком диске, а прям целое устройство. К примеру IBM 305.

CTSS (Compatible Time-Sharing System)

Но потом, люди придумали файловые системы. Если очень упростить, это такое оглавление в котором указано имя файла, где он начинается и его длина. А также всякие метаданные, типа время создания, изменения, и можно ли его перезаписывать.

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

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

Расширение даёт подсказку операционной системе и программам, о том какой тип данных он содержит и как это всё структурировано. Например, увидев файл droider.jpg операционная система и мы, люди, сразу понимаем, что это картинка в формате JPEG.

Естественно, для типов данных и разных задач оптимальной будет разная структура файла. Поэтому и форматов файлов существует огромная масса.

Поэтому давайте разберем, как устроены наиболее популярные форматы файлов от более простых к более сложным.

TXT

Один из самый простых форматов — это TXT. Это текстовый формат. Знаменитое приложение «Блокнот» в Windows работает как раз с этим форматом.

TXT — формат незамысловатый. Он может хранить в себе только простой неформатированный текст, то есть в нем нет никаких выделений, подчеркиваний, курсивов, отступов, разных шрифтов. Только голый текст, а точнее просто символы.

Каждый символ в TXT-формате хранится в виде бинарного кода.

Hello, world!

То что мы с вами видим как осмысленный текст, операционная система видит вот так:

01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100 00100001

Каждые 8 цифр, то есть 8 бит этого кода — это отдельный символ.

Например, 01001000 — это “H”, 01100101 — это “e”, и так далее.

01001000 — H

01100101 — e

01101100 — l

01101100 — l

01101111 — o

Но как операционная система расшифровывает эти данные? Всё просто. Операционной системе требуется загрузить таблицу, в которой описано соответствие бинарного кода конкретному символу. Таких таблиц много, самые известные сегодня — CP1251 (Windows), UTF-8 (Android, Mac) и так далее. Такие таблицы, часто называют кодировками. В данном файле используется кодировка UTF-8, то есть 8-битный Юникод.

Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит»

Подобрав правильную кодировку остается дело техники. Система сопоставляет бинарный код с таблицей кодировки UTF-8 и готово! Но что будет если система подберет кодировку неправильно? Вариантов не много, скорее всего мы увидим крякозябры:

çÁ%%?Œ€Ï?Ê%À (кодировка EBCDIC).

И такое часто случается, так как TXT-файл не содержит никакой дополнительной информации о кодировке. И это большой недостаток формата.

Еще интересный момент. Исторически, компьютеры «знали» только латиницу, которая используется в большинстве европейских языков. И тут произошла проблема: 8-бит — это всего лишь 256 возможных значений. Это немного, но этого было достаточно, чтобы закодировать все базовые символы + латинские буквы.

И вдобавок, эту таблицу нужно было загрузить в оперативную память при загрузке компьютера, а у типового ПК в начале 80-х годов редко было больше 640 килобайт оперативки. А использовать 16-битные таблицы (65536 вариантов) было просто невозможно, такая таблица просто не влезла бы в память.

Но мощность компьютеров росла и проблема ушла. К таблицам с латинскими символами добавились кириллические, которые занимали уже не по 8 бит, а по 16 бит каждый. Поэтому текст на русском занимает в два раза больше памяти, при том же количестве символов.

11010000 10011111 11010001 10000000 11010000 10111000 11010000 10110010 11010000 10110101 11010001 10000010 00101100 00100000 11010000 10111100 11010000 10111000 11010001 10000000 00100001

11010000 10011111 — П

11010001 10000000 — р

10111000 11010000 — и

11010000 10110010 — в

Привет, мир!

Старики помнят лайфхак, если писать SMS на латинице, то влезет в два раза больше текста. Всё это как раз из-за кодировки.

Кстати, помните все эти случаи, когда iPhone умирал от присланного сообщения со странными символами или картинки? Это как раз связано с тем, что система не могла правильно распознать присланные символы и правильно определить их длину.

Например, вот такое сообщение в своё время заставляло любой айфон уйти в цикличный ребут:

Power
لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ

WAV

Так вот, чтобы у операционной системы не было проблем с пониманием как прочитать файл. Помимо самих данных, в разные форматы стали добавлять данные о данных. То есть метаданные, которые хранятся прямо внутри файла и содержат дополнительную информацию о том, как этот файл прочитать.

К примеру, возьмём файл в формате WAV.

Это простой аудиоформат, который содержит несжатый. Всё CD диски записаны в формате WAV.

Первые 44 байта классического WAV-файла содержат заголовок, к котором указывается полезнейшая информация:

  • количество аудио каналов,
  • частота дискретизации,
  • битовая глубина
  • и многое другое.

Все эти данные позволяют быть уверенным, что аудио будет воспроизведено корректно.

Открытые и проприетарные форматы

Структура WAV хорошо известна и наверное такой файл сможет прочитать практически любой плеер. Всё потому, что WAV-файл — это пример открытого формата.

Есть и другие открытые форматы, которыми вы ежедневно пользуетесь. Например:

  • язык разметки web-страниц — HTML
  • картинки — PNG
  • аудио в формате — OGG
  • архива — ZIP,
  • видео — MKV,
  • электронной книги — EPUB
  • и другие…

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

Проприетарные форматы всем прекрасны, но в отдельных случаях они препятствуют конкуренции в сфере программного обеспечения, так как приводят к замыканию на поставщике. Есть даже такой термин Vendor lock-in.

Старый офис

Например, раньше такая ситуация была с форматами Microsoft Office: DOC, XLS, PPT.

Мало того, что это были проприетарные форматы компании Microsoft и работали только с фирменным ПО. Так еще Microsoft постоянно меняли свою структуру файлов от одной версии MS Office к другой. И в результате? при выходе новой версии офисного пакета? файлы из старого редактора уже не читались новым, а наоборот — и подавно.

Такая ситуация не очень нравилась Европейскому Союзу. Поэтому, ЕС взъелся на тему ограничения конкуренции. В итоге, форматы файлов опубличили, и все научились хотя бы их читать, но для записи в старые форматы, по-прежнему, нужна лицензия Microsoft. И параллельно этому начали разрабатываться открытые форматы.

ODF и OOXML

1 мая 2006 года на свет появился формат формат ODF, что буквально расшифровывается как открытый формат документов для офисных приложений. Он был разработан консорциумом OASIS и Sun Microsystems.

  • ODF — Open Document Format for Office Application
  • OASIS — Organization for the Advancement of Structured Information Standards

Формат основан на универсальном языке разметки XML. А сам файл ODF представляет из себя ZIP-архив с папками, XML-файлами и всякими вложениями в виде картинок, видео и прочим. Иными словами, если открыть такой файл через архиватор мы можем спокойно увидеть все внутренности. Вот так пример открытости!

Microsoft тоже не спал. Под давлением Европейского суда они объединились с рядом компаний в ассоциацию ECMA и разработали свой открытый формат Office Open XML, который появился на свет чуть позже в 2006 году.

OOXML стандартизирован European Computer Manufacturers Association. Standard ECMA-376

К привычным форматом конце добавилась буква X и мы получили: DOCX, XLSX, PPTX.

OOXML — Office Open XML (DOCX, XLSX, PPTX)

OOXML, в целом, очень похож на ODF. Он также основан на XML-разметке и также представляет из себя ZIP-архив. Поэтому вы также можете заглянуть внутрь офисных файлов при помощи любого архиватора. Можно даже вытащить картинки и даже подменить их, что бывает особенно удобно при работе с презентациями или когда вам присылают текстовый документ с картинками внутри файла.

Несмотря на кажущуюся простоту, формат реально сложный. Только основная документация — это 5 тысяч страниц. И это практически без картинок.

Тем не менее, кто-то всё таки смог прочитать всю эту документацию и поэтому на свет появились классные офисные пакеты, например МойОфис, которые умеют работать и ODF форматом, и с Office Open XML, и даже с устаревшими форматами типа DOC.

Но есть важная ремарка про старые форматы. Как правило, современный софт умеет их только читать, но не записывать, потому как это действие требует приобретение лицензии Microsoft. Впрочем, в наше время это действие, мягко говоря, бессмысленно.

МойОфис

Перейдём теории к практике. Как видите, форматов файлов много. У всех форматов есть своя специфика и история. Поэтому, если мы говорим про офисное ПО, важно, чтобы оно работало как с можно большим количеством форматов. И что приятно, такой софт есть. Одно из таких приложений сделали нашими разработчики и назвали его МойОфис.

Вообще, МойОфис — это хороший пример, современного приложения. Во-первых, есть бесплатные десктопная и мобильная версии приложения для работы с текстом и таблицами. На секундочку, это не урезанные, полнофункциональные приложения, без рекламы!

Во-вторых, мобильную версию приложения «МойОфис Документы» хочется отдельно похвалить, хотя у него и так высокий рейтинг в AppStore и GooglePlay. Приложение очень удобное и быстрое. Приложение работает со всеми форматами OOXML, OpenDocument, и даже с устаревшими бинарными форматами (DOC, XLS).

А еще все работает в одном приложении. Вместо того чтобы отдельно качать программу для презентаций, таблиц, текста и даже PDF, достаточно поставить «МойОфис Документы» и готово. Почему все так не делают?

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

В десктопной версии есть тоже куча мелочей ускоряющих работу:

  • Меню быстрых действий, которое можно открыть сочетанием клавиш [Ctrl]+[/] в любом месте документа.
  • Есть подсказки быстрых клавиш
  • Более удобная работа с абзацами и прочее, прочее.
  • А главное, приложение просто удобное и понятное. Без труда сможет разобраться хоть школьник, хоть бабушка.

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

Итого

Что мы в итоге узнали? Файлы бывают нескольких типов:

Самые базовые — бинарные. Такие форматы любят придумывать компании, чтобы никто не понял, как их программы хранят данные.

Более открытый вариант — xml-контейнеры. К счастью, большинство популярных офисных форматов сейчас такие. Если хотите работать со всеми этими файлами хоть дома, хоть на бегу, скачивайте программы МойОфис! На этом у нас сегодня всё.

vivo, OPPO и Xiaomi создают систему беспроводной передачи файлов

Китайские компании объединились, чтобы сделать быструю и простую систему передачи файлов и данных
aka_opex 5 января 2020 в 05:15

Мобильные гиганты vivo, OPPO и Xiaomi объявляют о сотрудничестве с целью создания инновационной системы беспроводной передачи файлов для пользователей по всему миру. Новая технология, ставшая инициативой «Объединения пирингового обмена данными» («Peer-to Peer Transmission Alliance»), обеспечивает беспрепятственную передач файлов между устройствами брендов в одно касание.

Vivo, OPPO и Xiaomi создали «Объединение пирингового обмена данными», чтобы обеспечить пользователей беспрецедентным опытом обмена информацией. Новая система позволит клиентам этих трёх брендов легко передавать файлы между мобильными устройствами без
использования сторонних приложений или сетевых подключений.

Технология поддерживает прием и отправку широкого спектра документов: фотографий, видео, музыки и иных форматов. Данный шаг сделан в ожидании повсеместного распространения 5G-сетей, когда предполагается увеличение среднего размера файлов вместе с расширением разнообразия контента.

«Vivo, OPPO и Xiaomi имеют обширную пользовательскую базу, и такое партнерство принесет пользу значительному числу потребителей во всем мире. Для vivo это возможность предоставить клиентам уникальный, безопасный и быстрый способ беспроводной передачи данных. Мы и впредь намерены поддерживать стратегические инициативы, делающие комфортнее жизнь наших пользователей по всему миру», – сказал Спарк Ни, старший вице-президент vivo.

Мгновенное стабильное соединение с низким энергопотреблением

Беспроводная система передачи файлов не требует подключения к интернету. Технология использует Bluetooth для быстрого сопряжения и технологию Wi-Fi P2P (Peer to Peer) для передачи данных, создавая моментальное, стабильное и высокоскоростное соединение между устройствами при низком энергопотреблении. Средняя скорость передачи данных составляет 20 Мбайт/с. Кроме того, Wi-Fi P2P не прерывает текущее Wi-Fi-соединение, позволяя пользователям оставаться в сети во время передачи файла.

Пользователям просто нужно включить Wi-Fi и Bluetooth и выбрать файлы, которыми они хотят поделиться. После подтверждения со стороны другого пользователя владелец смартфона увидит уведомление, и выбранные файлы будут переданы.

Клиентоориентированный подход для стимулирования здорового развития отрасли

«Альянс пирингового обмена файлами» – часть коллективной приверженности компаний vivo, OPPO и Xiaomi по созданию мобильных технологий нового поколения. Бренды будут продолжать активное сотрудничество с целью создания прорывных мобильных решений. Альянс также надеется, что в будущем к инициативе присоединится больше производителей в целях расширения экосистемы.

Доступность

Функция беспроводной передачи файлов будет постепенно внедряться в новые продукты vivo на различных рынках с февраля 2020 года.

[Видео] Как перенести данные с iPhone на Android?

Илья Рябов 30 сентября 2016 в 11:29

За последние годы грань между Android и iOS практически стёрлась. Неважно какая ОС в смартфоне — популярные сервисы и приложения доступны членам обоих лагерей. Однако переход с одной системы на другую всё ещё вызывает дискомфорт, особенно если пользователь отдавал предпочтение сервисам Apple, а не Google.

Борис Введенский расскажет о максимально безболезненном и универсальном способе мигрировать с iPhone на Android. (далее…)

Bluetooth 5: Быстрее в 4 раза, дальше в 2 раза

Илья Рябов 17 июня 2016 в 03:37

Марк Пауэлл, исполнительный директор Bluetooth SIG (Special Interest Group), официально анонсировал новый стандарт Bluetooth.

Технология стала быстрее и «ловит» большем расстоянии, если сравнивать с версией 4.2.
(далее…)

Now on Tap распознаёт информацию с камеры смартфона

Илья Рябов 8 марта 2016 в 04:11

Важной частью Android 6.0 Marshmallow стал Now on Tap — контекстный поиск по данным с экрана смартфона. По долгому нажатию кнопки «Домой», система анализирует информацию из запущенного приложения и преобразует её в полезные карточки.

Now on Tap

На днях возможности технологии распространились на изображения с объектива камеры в смартфоне.
(далее…)

Google, WhatsApp и другие поддержали Apple в вопросе пользовательской приватности

Илья Рябов 19 февраля 2016 в 02:14

Apple опубликовала открытое письмо, в котором рассказала о требовании ФБР разработать прошивку для разблокировки запароленных iOS-устройств. Спецслужбы объяснили запрос необходимостью доступа к iPhone террориста из Сан-Бернардино. В компании же уверены, что единичным случаем всё не ограничится.

Сундар Пичаи

Google, WhatsApp и другие IT-компании поддержали Тима Кука в морально непростом решении не жертвовать приватностью пользователей.
(далее…)

В России появится доступный LTE-оператор

Илья Рябов 5 февраля 2016 в 04:18

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

По информации CNEWS, именно на эту группу нацелится 4G-оператор, который скоро может появиться в России.
(далее…)

GranitePhone — «защищённый» смартфон от Archos и Sikur

Илья Рябов 12 октября 2015 в 02:34

Бум анонимности и безопасности потихоньку затихает, но взрывная волна в виде «защищённых» смартфонов с опозданием доходит до пользователей гаджетов.

После анонса на MWC, GranitePhone доступен для заказа на официальном сайте за 849 долларов.
(далее…)

«Википедия» оригинально решила вопрос блокировки Роскомнадзором

Илья Рябов 23 августа 2015 в 05:57

Ситация с блокировкой «Википедии» решилась так же неожиданно, как и началась: 21 августа страница, к которой были претензии у Роскомнадзора, была перенесена.

Случилось это вопреки требованиям ведомства удалить статью, якобы содержащую способы приготовления наркотического вещества.
(далее…)

Samsung будет хранить данные русских пользователей на территории РФ

Илья Рябов 11 июня 2015 в 08:02

С 1 сентября 2015 года начнет действовать закон, согласно которому все персональные данные россиян должны храниться на серверах в России.

Желая избежать блокировки, всё больше компаний переносят дата-центры на территорию нашей страны и Samsung не стала исключением. (далее…)