Файл: понятие, структура и виды¶
Файл — именованная область хранения данных на носителе информации, которая имеет имя, тип и атрибуты, доступна программам через операционную систему и может быть считана, изменена или удалена. В бытовой речи слово «файл» часто используется как синоним любого небольшого документа или изображения, сохранённого на компьютере или телефоне — например, «файлик».
¶Происхождение термина
Слово «файл» происходит от англ. file — «папка, картотека». В бумажном документообороте файлом называли папку с листами бумаги, подшитыми на общий стержень. Перенос термина на электронное хранение данных произошёл в 1950-е годы, когда файлами стали называть наборы записей на перфокартах и магнитных лентах. В русском языке слово «файл» вошло в употребление в 1970-е — 1980-е годы вместе с распространением ЭВМ, а уменьшительная форма «файлик» появилась позже как разговорная.
¶Устройство файла
Файл состоит из двух логических частей: метаданных и содержимого (данных).
Метаданные хранятся в файловой системе и включают:
- имя файла и расширение;
- размер в байтах;
- дату создания, последнего изменения и доступа;
- права доступа (кто может читать, изменять, исполнять);
- тип файла.
Содержимое — это непосредственно байты: текст, изображение, звук, программа или произвольные данные. Операционная система не «понимает» содержимое файла — она лишь управляет его хранением и доступом. Интерпретацией данных занимается прикладное программное обеспечение.
¶Имя и расширение
Имя файла задаёт пользователь или программа. В разных файловых системах действуют разные ограничения: например, в NTFS допускается до 255 символов, в ext4 — до 255 байт. Старые системы (FAT16) ограничивали имя 8 символами, а расширение — 3 (формат 8.3).
Расширение — часть имени после точки (.docx, .jpg, .mp3), указывающая на формат данных. Оно не является обязательным, но помогает операционной системе определить программу для открытия файла. В Windows расширение скрыто по умолчанию, в Linux и macOS — видно.
¶Файловые системы
Файл существует в рамках файловой системы — слоя, организующего хранение файлов на носителе. Основные файловые системы:
| Файловая система | ОС | Особенности |
|---|---|---|
| NTFS | Windows | Журналирование, права доступа, сжатие |
| ext4 | Linux | Стандарт для дистрибутивов Linux |
| APFS | macOS | Оптимизирована для SSD |
| FAT32 | кроссплатформенная | Простая, но ограничена размером файла 4 ГБ |
| exFAT | кроссплатформенная | Для съёмных накопителей |
¶Виды файлов
По назначению файлы делятся на:
- Документы — текстовые, таблицы, презентации (
.docx,.xlsx,.pdf); - Изображения — растр (
.jpg,.png) и вектор (.svg); - Звук и видео —
.mp3,.wav,.mp4,.mkv; - Исполняемые файлы — программы (
.exeв Windows, без расширения в Linux); - Библиотеки —
.dll,.so,.dylib; - Архивы —
.zip,.rar,.7z; - Конфигурационные файлы —
.ini,.json,.yaml; - Системные файлы — данные операционной системы.
¶Файловые архивы
Архив — файл, содержащий один или несколько других файлов, обычно сжатых. Архивирование снижает объём занимаемого места и упрощает перенос группы файлов. Популярные форматы: ZIP (универсальный), RAR (проприетарный, разработан российским программистом Евгением Рошалем), 7z (открытый, с высокой степенью сжатия).
¶Идентификация файла
Помимо расширения, файлы определяются по магической последовательности — сигнатуре в первых байтах. Например, у JPEG это FF D8 FF, у PNG — 89 50 4E 47. Сигнатура позволяет определить формат даже при переименованном расширении.
Контрольная сумма (MD5, SHA-256) вычисляется по содержимому файла и используется для проверки целостности — например, при скачивании программ с сайтов.
¶Файл в программировании
В программном обеспечении работа с файлами ведётся через системные вызовы: open, read, write, close в POSIX-системах или соответствующие функции WinAPI в Windows. В языках программирования для этого есть стандартные библиотеки: File в Java, System.IO в C#, os и pathlib в Python.
Потоковый доступ позволяет обрабатывать файл по частям, не загружая его целиком в память — важно для больших файлов.
¶Файлы и облачные хранилища
С развитием интернета файлы всё чаще хранятся не локально, а на удалённых серверах — в облачных хранилищах (Яндекс Диск, Google Drive, Dropbox). Пользователь получает доступ к файлам через браузер или специальное приложение, синхронизирующее локальную папку с облаком.
¶Интересные факты
- Самый распространённый формат изображения в мире — JPEG, созданный в 1992 году Объединённой группой экспертов по фотографии (JPEG).
- Формат PDF был разработан компанией Adobe в 1993 году и в 2008 году признан международным стандартом ISO 32000-1.
- Ограничение FAT32 на размер файла в 4 ГБ стало причиной перехода консолей PlayStation 3 и Xbox 360 на другие файловые системы.
Источники:
- Таненбаум Э. Современные операционные системы
- Рэйфилд Д. Файловые системы Linux
- ГОСТ Р ИСО/МЭК 14776 — стандарты на файловые системы
