Файлы и файловые системы

Что такое файл и почему расширение — только подсказка, как устроены папки и пути, как файловая система находит байты файла на накопителе, почему удалённый файл иногда можно вернуть и откуда в FAT32 ограничение в 4 ГБ.

Содержание

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

Файл — это байты с именем

Фотография, песня, сочинение, игра — на накопителе всё это выглядит одинаково: первый байт, второй, третий и так до конца. У файла есть имя и длина, а больше накопителю знать нечего.

Создадим в текстовом редакторе файл привет.txt с одним словом «Привет». В кодировке UTF-8 он займёт двенадцать байтов.

TXT
П      р      и      в      е      т
D0 9F  D1 80  D0 B8  D0 B2  D0 B5  D1 82

Байты записаны шестнадцатеричными цифрами, как в уроке Шестнадцатеричная система: две цифры на байт. Что эти байты означают, определяет формат файла — договорённость о том, как их читать. Для текста это кодировка, для картинки — порядок, в котором записаны размеры и цвета пикселей.

Расширение — подсказка, а не формат

Часть имени после последней точки называют расширением: .txt, .png, .pdf. По нему операционная система выбирает значок и программу, которая откроет файл. Но расширение — лишь надпись на коробке. Что лежит внутри, видно только по содержимому.

Многие форматы начинаются с условленных байтов — сигнатуры. Программа читает начало файла и сразу понимает, с чем имеет дело.

ФорматПервые байты файлаЧто получится, если прочитать их как буквы
PNG89 50 4E 47 0D 0A 1A 0Aсо второго байта — PNG
PDF25 50 44 46 2D%PDF-
ZIP50 4B 03 04в начале — PK
JPEGFF D8 FFбукв нет

Проверьте по таблице ASCII: 50 — это буква P, 4E — N, 47 — G. Буквы PK в архиве — инициалы Фила Каца, который придумал формат ZIP в 1989 году.

Два опыта, которые можно проделать дома.

  • Переименуйте копию файла cat.png в cat.txt. Байты не изменились, поменялась только надпись. Текстовый редактор покажет мешанину знаков, в начале которой читается PNG. Верните прежнее имя — картинка откроется как раньше.
  • Переименуйте копию документа essay.docx в essay.zip. Она откроется как архив с папками внутри. Документы .docx на самом деле и есть ZIP-архивы, и первые их байты — 50 4B 03 04.

Папки и пути

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

Дерево папок: в корне лежат папки school и photos, в school — файл essay.docx и папка physics с файлом lab1.txt, в photos — файл cat.png; выделен путь к lab1.txt
Рисунок 1 — Путь перечисляет папки, через которые нужно пройти от корня до файла

Путь — это запись дороги к файлу. Он бывает двух видов.

  • Абсолютный путь начинается от корня: /school/physics/lab1.txt. Он одинаково понятен, где бы Вы ни находились, — как полный почтовый адрес с городом и улицей.
  • Относительный путь начинается от текущей папки — как объяснение «соседний подъезд, третий этаж». Если Вы находитесь в папке /school, тот же файл можно назвать physics/lab1.txt.

Две точки в пути означают «на уровень выше». Из папки /school к картинке ведёт путь ../photos/cat.png: поднялись в корень, спустились в photos.

В разных операционных системах пути записывают по-разному.

WindowsLinux и macOS
Разделительобратная косая черта \косая черта /
Кореньу каждого диска свой: C:\, D:\один на всё: /
Пример путиC:\school\physics\lab1.txt/school/physics/lab1.txt

Наше дерево маленькое. В настоящей системе личные папки лежат глубже, например в /home/masha или C:\Users\Masha.

Как файловая система находит байты

Накопитель разбит на блоки одинакового размера, часто по 4096 байтов. Блоки пронумерованы. Файловая система ведёт таблицу: для каждого файла там записаны имя, длина и номера блоков, в которых лежат его байты.

Похоже на камеру хранения с одинаковыми ячейками и журналом у дежурного. Большой багаж в одну ячейку не влезает, его раскладывают по нескольким — по тем, что свободны, не обязательно соседним. В журнале записано: «Маша — ячейки 2, 3 и 6». Без журнала вещи не найти: ячейки снаружи одинаковые.

Двенадцать пронумерованных блоков накопителя: файл essay.docx занимает блоки 2, 3 и 6, файл cat.png — блоки 4, 5, 9 и 10; ниже таблица файловой системы с этими номерами
Рисунок 2 — Файл может лежать в блоках, которые не идут подряд: порядок хранит таблица

Блок нельзя поделить между файлами. Пусть в файле essay.docx 10 000 байтов.

TXT
2 блока: 2 · 4096 =  8 192 байта   — мало
3 блока: 3 · 4096 = 12 288 байтов  — хватает
свободный остаток: 12 288 − 10 000 = 2 288 байтов

Остаток в третьем блоке пропадает. Поэтому в свойствах файла Windows показывает два числа: «Размер» и «На диске».

Настоящие файловые системы записывают эти сведения по-разному — цепочками, списками, деревьями. Суть одна: по имени находятся номера блоков.

Что происходит при удалении

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

  • Удаление занимает мгновение, даже если файл копировался десять минут.
  • Удалённый файл иногда можно вернуть специальной программой, если его блоки ещё не заняты.
  • Перед продажей телефона или накопителя простого удаления мало: нужен полный сброс, который стирает сами данные.

Корзина — не удаление. Файл просто переносят в особую папку, и его запись в таблице цела.

Почему на флешку не помещается файл больше 4 ГБ

На флешках и картах памяти часто используют файловую систему FAT32: её понимают телевизоры, фотоаппараты и автомагнитолы. В записи о файле она отводит под длину 4 байта, то есть 32 бита. Самое большое число, которое помещается в 32 бита, известно из урока Двоичная система счисления.

TXT
2³² − 1 = 4 294 967 295

Длиннее файл быть не может: его размер просто нечем записать. Это на один байт меньше четырёх гибибайтов, или примерно 4,29 ГБ; в разговоре предел округляют до «4 ГБ». Чем гибибайт отличается от гигабайта, рассказано в уроке Байты, килобайты и гигабайты. Фильм в 5 ГБ на такую флешку не скопируется, даже если она пуста и рассчитана на 64 ГБ.

Выход — отформатировать флешку в другой файловой системе, например exFAT: в ней под длину отведено больше битов. Учтите, что форматирование создаёт пустую таблицу, и прежние файлы станут недоступны. У компьютеров свои файловые системы: NTFS в Windows, APFS на устройствах Apple, ext4 в Linux.

Частые вопросы

Если заменить расширение .png на .jpg, картинка станет JPEG?

Нет. Байты останутся прежними, и внутри по-прежнему будет PNG. Чтобы сменить формат, откройте картинку в редакторе и сохраните в другом формате: тогда программа запишет новые байты.

Почему файл из одной буквы занимает на диске 4 КБ?

Место выдаётся целыми блоками. Даже одному байту нужен блок целиком.

Удалённый файл всегда можно вернуть?

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

Коротко

  • Файл — последовательность байтов с именем; смысл байтам придаёт формат.
  • Расширение — подсказка для операционной системы. Формат определяется содержимым, часто по сигнатуре в первых байтах.
  • Папки образуют дерево. Абсолютный путь идёт от корня, относительный — от текущей папки.
  • В Windows разделитель \ и свой корень у каждого диска, в Linux и macOS — / и один корень.
  • Файловая система хранит таблицу «имя → номера блоков». Удаление стирает запись в таблице, а не данные.
  • В FAT32 длина файла записана в 32 битах, поэтому файл не может быть больше 2³² − 1 байтов.

Файл можно не только хранить, но и отправить на другой компьютер. О том, как это происходит, — последний урок: Как компьютеры общаются.

Использованная литература

  1. Portable Network Graphics (PNG) Specification — W3C [Электронный ресурс]. — URL: https://www.w3.org/TR/png/ (дата обращения: 09.10.2026).
  2. Список сигнатур файлов — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Список_сигнатур_файлов (дата обращения: 09.10.2026).
  3. Файловая система — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Файловая_система (дата обращения: 09.10.2026).
  4. FAT32 — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/FAT32 (дата обращения: 09.10.2026).