Открыть сервис

Файловая система

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

История

Ранние системы

Первые компьютеры не имели файловых систем в современном понимании. Данные записывались на перфокарты, перфоленты или магнитные ленты последовательно, и доступ к ним был линейным. С появлением магнитных барабанов и дисков возникла необходимость в произвольном доступе к данным. В 1960-х годах компания IBM разработала для мейнфреймов систему IBSYS, которая поддерживала иерархическую структуру каталогов.

Развитие в 1970-1980-х годах

Ключевым этапом стало создание в 1977 году компанией Microsoft FAT (File Allocation Table) для операционной системы 86-DOS. FAT использовала таблицу размещения файлов для отслеживания кластеров на диске. Версия FAT12 поддерживала 8.3-формат имён (8 символов имени, точка, 3 символа расширения). В 1980-х годах с ростом объёмов дисков появились FAT16 и FAT32. В 1984 году компания Apple представила HFS (Hierarchical File System) для Macintosh, а в 1987 году Microsoft — HPFS (High Performance File System) для OS/2.

Современные системы

В 1993 году с выходом Windows NT 3.1 была представлена NTFS (New Technology File System), ставшая стандартом для семейства Windows. В мире Unix и Linux доминирующей стала ext2 (1993), затем ext3 (2001) с поддержкой журналирования и ext4 (2008). Для компакт-дисков был разработан стандарт ISO 9660 (1988), а для DVD — UDF (Universal Disk Format, 1995). В 2010-х годах для твердотельных накопителей и больших массивов данных появились ZFS (Sun Microsystems, 2005), Btrfs (Oracle, 2009) и APFS (Apple, 2017).

Классификация

По назначению

  • Для жёстких дисков и SSD: NTFS, ext4, APFS, FAT32, exFAT.
  • Для оптических дисков: ISO 9660, UDF.
  • Для флеш-накопителей и карт памяти: FAT32, exFAT (поддержка файлов более 4 ГБ).
  • Сетевые и распределённые: NFS (Network File System), SMB/CIFS, Ceph, GlusterFS.
  • Виртуальные и псевдо-файловые системы: procfs (информация о процессах в Linux), sysfs, tmpfs (в оперативной памяти).

По способу хранения метаданных

  • Журналируемые: ext3, ext4, NTFS, APFS. Ведут журнал (лог) изменений, что повышает устойчивость к сбоям.
  • Нежурналируемые: FAT32, ext2. При внезапном отключении питания возможна потеря данных или повреждение структуры.
  • С контролем целостности: ZFS, Btrfs. Используют контрольные суммы для всех данных и метаданных.

По типу адресации

  • Табличные: FAT (использует таблицу размещения файлов).
  • На основе индексных дескрипторов (inode): ext2/3/4, UFS (Unix File System). Каждый файл описывается индексным дескриптором, содержащим его атрибуты и указатели на блоки данных.
  • B-деревья: NTFS (использует мастер-файловую таблицу MFT), Btrfs, ReiserFS.

Устройство и принципы работы

Основные компоненты

Любая файловая система состоит из нескольких логических частей:

  • Загрузочная запись (boot sector): содержит информацию о структуре тома и код загрузчика (для системных дисков).
  • Метаданные: описывают структуру каталогов, имена файлов, права доступа, временные метки (создания, изменения, доступа), размеры и расположение данных на диске.
  • Область данных: собственно содержимое файлов, хранящееся в блоках (кластерах) фиксированного или переменного размера.
  • Таблицы размещения: в FAT — таблица FAT, в NTFS — мастер-файловая таблица (MFT), в ext — таблица индексных дескрипторов.

Процесс чтения и записи

При записи файла операционная система обращается к файловой системе, которая:

  1. Находит свободные блоки (кластеры) на диске.
  2. Создаёт запись в каталоге (имя файла, ссылка на индексный дескриптор или запись в MFT).
  3. Записывает данные в выделенные блоки.
  4. Обновляет метаданные (размер, временные метки, журнал).

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

Фрагментация

По мере записи и удаления файлов свободное пространство разбивается на фрагменты. Файлы, записанные в несмежные блоки, называются фрагментированными. Это снижает скорость последовательного чтения. Для борьбы с фрагментацией используются дефрагментация (для HDD) и TRIM-команды (для SSD, которые оптимизируют запись на уровне контроллера). Современные файловые системы (ext4, Btrfs, APFS) включают встроенные механизмы снижения фрагментации.

Основные характеристики и сравнение

Файловая системаМакс. размер файлаМакс. размер томаЖурналированиеПоддержка прав доступаОперационные системы
FAT324 ГБ2 ТБ (теоретически до 8 ТБ)НетНетВсе (Windows, macOS, Linux, Android)
exFAT16 ЭБ (эксабайт)64 ЗБ (зеттабайт)НетНетWindows, macOS, Linux (с драйверами)
NTFS16 ЭБ256 ТБ (Windows), 8 ПБ (теоретически)ДаДа (ACL)Windows, macOS (только чтение), Linux (через ntfs-3g)
ext416 ТБ1 ЭБДаДа (POSIX)Linux, macOS (через ext4fuse), Windows (через драйверы)
APFS8 ЭБ9 ЗБДаДа (POSIX)macOS, iOS, iPadOS
ZFS16 ЭБ256 ЗБДаДаFreeBSD, Linux, Solaris
Btrfs16 ЭБ16 ЭБДаДаLinux

Применение

В персональных компьютерах и серверах

  • Windows: NTFS — основная системная файловая система, обеспечивающая шифрование (EFS), сжатие, дисковые квоты и теневые копии. Для внешних накопителей часто используется exFAT или FAT32.
  • Linux: ext4 — стандартная файловая система для корневых разделов и домашних каталогов. Btrfs и ZFS применяются на серверах и NAS (сетевых хранилищах) благодаря поддержке снимков (snapshots), сжатия и RAID-подобных функций.
  • macOS: APFS — системная файловая система с 2017 года, заменившая HFS+. Поддерживает шифрование, клонирование файлов и пространственное сжатие.

В мобильных устройствах

  • Android: использует ext4 для системного раздела и внутренней памяти, FAT32 или exFAT для карт памяти microSD.
  • iOS/iPadOS: APFS — единственная файловая система для внутреннего хранилища, обеспечивающая шифрование и безопасное удаление данных.

В оптических носителях

  • CD/DVD: ISO 9660 (стандарт для дисков с данными), UDF (для DVD-Video и Blu-ray).
  • Blu-ray: UDF версии 2.5 и выше.

Во встраиваемых системах и IoT

Для устройств с ограниченными ресурсами (микроконтроллеры, роутеры) применяются лёгкие файловые системы: YAFFS (Yet Another Flash File System), JFFS2 (Journaling Flash File System), LittleFS и SPIFFS. Они оптимизированы для работы с NAND- и NOR-флеш-памятью, минимизируют износ ячеек и не требуют большого объёма RAM.

Критика и ограничения

  • Фрагментация: FAT32 и NTFS подвержены значительной фрагментации при активной записи/удалении. ext4 и Btrfs справляются с ней лучше, но не идеально.
  • Сложность восстановления: При повреждении метаданных (например, сбой MFT в NTFS) восстановление данных может быть затруднено без специализированного ПО.
  • Ограничения FAT32: невозможность хранить файлы размером более 4 ГБ и отсутствие поддержки прав доступа делают её непригодной для современных операционных систем.
  • Проблемы с большими томами: FAT32 и exFAT не имеют журнала, что повышает риск потери данных при внезапном отключении питания.
  • Совместимость: NTFS ограниченно поддерживается в macOS (только чтение) и Android. ext4 не поддерживается в Windows нативно.

Интересные факты

  • Название FAT (File Allocation Table) происходит от ключевой структуры — таблицы размещения файлов, которая хранится в начале раздела и содержит записи о каждом кластере.
  • NTFS использует мастер-файловую таблицу (MFT), которая сама является файлом. При повреждении MFT том может стать недоступным.
  • Файловая система ZFS была разработана компанией Sun Microsystems для операционной системы Solaris и позже портирована на Linux и FreeBSD. Она объединяет функции файловой системы и менеджера томов.
  • Btrfs (B-tree File System) изначально разрабатывалась как замена ext4 для Linux, но до сих пор не стала стандартной из-за сложности и неполной стабильности некоторых функций.
  • APFS поддерживает клонирование файлов: при копировании файла в пределах одного тома данные физически не дублируются, пока один из копий не будет изменён (технология copy-on-write).

Источники

  • Таненбаум Э., Бос Х. «Современные операционные системы» (4-е издание). — СПб.: Питер, 2015.
  • Silberschatz A., Galvin P. B., Gagne G. «Operating System Concepts» (10th edition). — Wiley, 2018.
  • Документация Microsoft по файловым системам Windows (NTFS, FAT, exFAT).
  • Документация Linux Kernel (ext4, Btrfs, ZFS).
  • Спецификация APFS от Apple Inc.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →