Лекции / 5. ввод-вывод и файловые системы
.pdfüОснова структуры тома NTFS – главная таблица файлов (MFT), которая содержит хотя бы одну запись для каждого файла тома, включая саму себя.
üКаждая запись MFTимеет фиксированную длину, зависящую от объема диска – 1, 2 или 4 Кбайт.
üФайлы в томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT.
üВесь том NTFS состоит из последовательности кластеров. Порядковый номер кластера в томе NTFS называется логическим номером кластера (LCN). Порядковый номер кластера внутри файла называется виртуальным номером кластера (VCN).
üЕдиница распределения дискового пространства – отрезок. Адрес отрезка – (LCN, k), логический номер его первого кластера и количество кластеров в отрезке.
üЧасть файла, помещенная в отрезок и начинающаяся с виртуального кластера VCN характеризуется адресом (VCN, LCN, k).
üДля хранения номера кластера в NTFS используются 64-разрядные указатели. Это дает возможность поддерживать тома и файлы до 264 кластеров. При размере кластера в 4 Кбайт это позволяет использовать тома и файлы, состоящие из 64 миллиардов килобайт.
42
Атрибуты файлов
Сведения о владельце файла, биты флагов, |
43 |
временные метки, биты архивирования и т.д. |
|
Структура файлов NTFS
Небольшой файл NTFS
Большой файл
44
Очень большой файл
45
Сверхбольшой файл
46
Каталоги NTFS
Небольшой каталог
47
Большой каталог
48
exFAT
ü Разработанная MicrosoJ расширенная таблица размещения файлов (Extended File Alloca\on Table, exFAT), также называемая FAT64, представляет собой усовершенствованную версию традиционных файловых систем FAT и предназначена главным образом для флэш-накопителей.
ü Ее основным предназначением является обеспечение ряда расширенных функциональных возможностей, предлагаемых NTFS, но без структур метаданных для служебной информации и журналов метаданных, алгоритмы записи которых не подходят для большинства флэш-накопителей.
üРазмер файла увеличился до 264, то есть в ней допустимы файлы размером до 16 эксабайт. Это изменение соответствует увеличению максимального размера кластера, который в настоящее время реализуется как 32-мегабайтный
иможет включать в себя до 2255 секторов.
üВ exFAT также появилась бит-карта, отслеживающая свободные кластеры, что благотворно сказалось на
процедурах выделения места и удаления.
üexFAT позволяет поместить в одну папку более 1000 файлов. Результатом всего этого явились лучшая масштабируемость и поддержка дисков больших размеров.
üВ exFAT реализован ряд возможностей, ранее доступных только в NTFS, например поддержка списков контроля доступа (ACL) и транзакций — в этом случае exFAT называют FAT с поддержкой безопасных транзакций (Transac\on-
Safe FAT, TFAT). Эти функциональные возможности реализованы в exFAT операционной системы Windows Embedded CE, но не реализованы в версии exFAT для Windows.
Размер.тома |
Размер.кластера.по.умолчанию |
|
|
<7 Мбайт |
Не поддерживается |
|
|
7–256 Мбайт |
4 Кбайт |
|
|
256 Мбайт – 32 Гбайт |
32 Кбайт |
|
|
32 Гбайт – 256 Тбайт |
128 Кбайт |
|
|
>256 Тбайт |
Не поддерживается |
|
|
49
•exFAT была впервые представлена в 2008 году в Windows начиная с версии XP при помощи обновлений ОС. Файловая система exFAT была
создана и оптимизирована для использования на внешних накопителях — флешках, SD-картах и внешних жестких дисках, и призвана заменить собой устаревшую систему FAT32.
•exFAT обладает лучшей совместимостью с различными операционными системами, чем NTFS, и устройства с ней читаются и
перезаписываются как на Windows и Mac OS, так и на Linux (при условии установки некоторого программного обеспечения). exFAT поддерживается операционной системой Mac OS по умолчанию
50
В июле 2019 года Microsoft опубликовала спецификацию exFAT и дала своё разрешение разработчикам ядра Linux использовать её и связанный открытый код. Вполне возможно, что в самом скором времени Linux получит полноценную поддержку exFAT «прямо из коробки».
О новой позиции Microsoft заявил хорошо известный инженер компании и член правления Linux Foundation Джон Госсман. В корпоративном блоге он написал:
«Сегодня мы рады объявить, что Microsoft полностью поддерживает добавление технологии exFAT в ядро Linux ... Для нас важно, чтобы сообщество Linux могло с полным спокойствием использовать exFAT, включённый в состав ядра. С этой целью мы делаем техническую спецификацию для exFAT общедоступной, чтобы облегчить разработку любых совместимых реализаций. Мы также поддерживаем возможное включение "ядра Linux с поддержкой exFAT" в будущую редакцию определения Linux-системы в рамках Open Invention Network, где, после признания соответствующего кода, он получит полную защиту от патентных претензий от более чем 3040+ членов и лицензиатов OIN.»
51