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

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

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

История

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

Первые компьютеры не имели файловых систем в современном понимании. Данные записывались на перфокарты, перфоленты или магнитные ленты последовательно, и доступ к ним был линейным. С появлением магнитных барабанов и дисков возникла необходимость в произвольном доступе к данным. В 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).

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

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

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

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

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

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

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

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

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

  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

Применение

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

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

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

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

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

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

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

Источники

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

На главную BFOmetr →