Содержание
Файл — это последовательность байтов, у которой есть имя. Файловая система — порядок, по которому операционная система ведёт учёт файлов: как они называются и в каких местах накопителя лежат их байты. Сам накопитель о файлах ничего не знает: для него существуют только пронумерованные блоки.
Файл — это байты с именем
Фотография, песня, сочинение, игра — на накопителе всё это выглядит одинаково: первый байт, второй, третий и так до конца. У файла есть имя и длина, а больше накопителю знать нечего.
Создадим в текстовом редакторе файл привет.txt с одним словом «Привет». В кодировке UTF-8 он займёт двенадцать байтов.
П р и в е т
D0 9F D1 80 D0 B8 D0 B2 D0 B5 D1 82
Байты записаны шестнадцатеричными цифрами, как в уроке Шестнадцатеричная система: две цифры на байт. Что эти байты означают, определяет формат файла — договорённость о том, как их читать. Для текста это кодировка, для картинки — порядок, в котором записаны размеры и цвета пикселей.
Расширение — подсказка, а не формат
Часть имени после последней точки называют расширением: .txt, .png, .pdf. По нему операционная система выбирает значок и программу, которая откроет файл. Но расширение — лишь надпись на коробке. Что лежит внутри, видно только по содержимому.
Многие форматы начинаются с условленных байтов — сигнатуры. Программа читает начало файла и сразу понимает, с чем имеет дело.
| Формат | Первые байты файла | Что получится, если прочитать их как буквы |
|---|---|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | со второго байта — PNG |
25 50 44 46 2D | %PDF- | |
| ZIP | 50 4B 03 04 | в начале — PK |
| JPEG | FF 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/physics/lab1.txt. Он одинаково понятен, где бы Вы ни находились, — как полный почтовый адрес с городом и улицей. - Относительный путь начинается от текущей папки — как объяснение «соседний подъезд, третий этаж». Если Вы находитесь в папке
/school, тот же файл можно назватьphysics/lab1.txt.
Две точки в пути означают «на уровень выше». Из папки /school к картинке ведёт путь ../photos/cat.png: поднялись в корень, спустились в photos.
В разных операционных системах пути записывают по-разному.
| Windows | Linux и macOS | |
|---|---|---|
| Разделитель | обратная косая черта \ | косая черта / |
| Корень | у каждого диска свой: C:\, D:\ | один на всё: / |
| Пример пути | C:\school\physics\lab1.txt | /school/physics/lab1.txt |
Наше дерево маленькое. В настоящей системе личные папки лежат глубже, например в /home/masha или C:\Users\Masha.
Как файловая система находит байты
Накопитель разбит на блоки одинакового размера, часто по 4096 байтов. Блоки пронумерованы. Файловая система ведёт таблицу: для каждого файла там записаны имя, длина и номера блоков, в которых лежат его байты.
Похоже на камеру хранения с одинаковыми ячейками и журналом у дежурного. Большой багаж в одну ячейку не влезает, его раскладывают по нескольким — по тем, что свободны, не обязательно соседним. В журнале записано: «Маша — ячейки 2, 3 и 6». Без журнала вещи не найти: ячейки снаружи одинаковые.
Блок нельзя поделить между файлами. Пусть в файле essay.docx 10 000 байтов.
2 блока: 2 · 4096 = 8 192 байта — мало
3 блока: 3 · 4096 = 12 288 байтов — хватает
свободный остаток: 12 288 − 10 000 = 2 288 байтов
Остаток в третьем блоке пропадает. Поэтому в свойствах файла Windows показывает два числа: «Размер» и «На диске».
Настоящие файловые системы записывают эти сведения по-разному — цепочками, списками, деревьями. Суть одна: по имени находятся номера блоков.
Что происходит при удалении
Когда Вы удаляете файл, файловая система вычёркивает запись из таблицы и помечает его блоки свободными. Сами байты остаются на месте, пока поверх них не запишут другой файл. Отсюда три следствия.
- Удаление занимает мгновение, даже если файл копировался десять минут.
- Удалённый файл иногда можно вернуть специальной программой, если его блоки ещё не заняты.
- Перед продажей телефона или накопителя простого удаления мало: нужен полный сброс, который стирает сами данные.
Корзина — не удаление. Файл просто переносят в особую папку, и его запись в таблице цела.
Почему на флешку не помещается файл больше 4 ГБ
На флешках и картах памяти часто используют файловую систему FAT32: её понимают телевизоры, фотоаппараты и автомагнитолы. В записи о файле она отводит под длину 4 байта, то есть 32 бита. Самое большое число, которое помещается в 32 бита, известно из урока Двоичная система счисления.
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 байтов.
Файл можно не только хранить, но и отправить на другой компьютер. О том, как это происходит, — последний урок: Как компьютеры общаются.
Использованная литература
- Portable Network Graphics (PNG) Specification — W3C [Электронный ресурс]. — URL: https://www.w3.org/TR/png/ (дата обращения: 09.10.2026).
- Список сигнатур файлов — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Список_сигнатур_файлов (дата обращения: 09.10.2026).
- Файловая система — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Файловая_система (дата обращения: 09.10.2026).
- FAT32 — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/FAT32 (дата обращения: 09.10.2026).