Машинно-независимые свойства операционных систем
Файловые системы FAT16, FAT32, NTFS
Одной из важнейших характеристик операционной системы помимо управления памятью, ресурсами компьютера и задачами является поддержка файловой системы- основного хранилища системной и пользовательской информации. Всякая ОС создает на каждом томе (дискете, диске, CD-диске) совокупность системных данных, которая называется файловой системой.
Файловая система создается при разметке тома, затем корректируется ОС (подсистемой управления данными) при текущей работе, в процессе создания, удаления, модификации файлов пользователя
В данной лекции рассмотрены основные файловые системы, поддерживаемые в Microsoft Windows -FAT16, FAT32, NTFS, а также такие файловые системы как CDFS и UDF. Каждая файловая система имеет свои достоинства и недостатки, которые мы обсудим позже.
Начнем с того, что вспомним, какие файловые системы поддерживаются в различных операционных системах фирмы Microsoft (таблица 1)
Таблица 1
Операционная система Файловая система
Microsoft Windows 2000 NTFS, FAT16, FAT32
Microsoft Windows NT NTFS, FAT
Microsoft Windows 98 FAT16,FAT32
Microsoft Windows 95 OSR2 FAT16, FAT32
Microsoft Windows 95 FAT16
Microsoft MS-DOS FAT16
Как видно из данной таблицы, наиболее популярной и широко используемой файловой системой является FAT. Именно с нее мы и начнем наше знакомство с файловыми системами Windows.
ФАЙЛОВЫЕ СИСТЕМЫ FAT
FAT16
Файловая система FAT16 начала свое существование еще во времена, предшествовавшие MS-DOS , и поддерживается всеми операционными системами Microsoft для обеспечения совместимости. Ее название File Allocation Table (таблица расположения файлов) отлично отражает физическую организацию файловой системы, к основным характеристикам которой можно отнести то, что максимальный размер поддерживаемого тома не превышает 4095Мбайт. Во время MS-DOS 4-гигабайтные жесткие диски казались несбыточной мечтой, потому такой запас был вполне оправданным.
Таблица 2
Размер тома (Мбайт) | Число секторов в кластере | Размер кластера (Кбайт) |
0 – 32 | 0,5 | |
33 – 64 | ||
65 - 128 | ||
129 - 255 | ||
256 - 511 | ||
512 - 1023 | ||
1024 - 2047 | ||
2048 - 4095 |
Том, отформатированный для использования FAT 16, разделяется на кластеры. Размер кластера по умолчанию зависит от размера тома и может колебаться от 512 байт до 64 Кбайт. В таблице 2 показано, как размер кластера зависит от размера тома. Отметим, что размер кластера может отличаться от значения по умолчанию, но должен иметь одно из значений, указанных в таблице 2.
Не рекомендуется задействовать файловую систему FAT 16 на томах больше 511 Мбайт, так как для относительно небольших по объему файлов дисковое пространство будет использоваться крайне неэффективно (файл размером в 1 байт будет занимать 64 Кбайта). Независимо от размера кластера файловая система FAT 16 не поддерживается для томов больше 4 Гбайта.
На рисунке 1 показано, как организован том при использовании файловой системы FAT16.
Загрузочный сектор | FAT16 (оригинал) | FAT2 (копия) | Корневой каталог | Каталоги и файлы |
Рисунок 1. Организация тома FAT16
В файловой системе FAT 16 кластеры могут иметь различное значение. Например, это может быть свободный (неиспользованный) кластер, кластер, занятый файлом, дефектный кластер или последний кластер файла.
Единственным различием между корневым и другими каталогами является то, что первый располагается в определенном месте и имеет фиксированное число вхождений. Каждый каталог и файл используют одно и более вхождений. Например, если число фиксированных вхождений для корневого каталога равно 512 и создано 100 подкаталогов, в корневом каталоге можно создать не более 412 файлов (512 – 100).
Для каждого файла и каталога в файловой системе хранится информация (в таблице 3 приведены данные для коротких имен файлов).
Таблица 3 - Информация, хранящаяся в таблице расположения файлов
Информация | Размер |
Имя файла или каталога | 88 бит |
Байт атрибутов | 8 бит |
Резервный байт | 8 бит |
Время создания | 24 бит |
Дата создания | 16 бит |
Дата последнего доступа | 16 бит |
Два резервных байта | 16 бит |
Время последней модификации | 16 бит |
Дата последней модификации | 16 бит |
Номер начального кластера в FAT | 16 бит |
Размер файла | 32 бит |
Итого | 32 байт |
В структуре каталогов файлу отводится первый незанятый кластер, доступный на томе. Номер начального кластера позволяет определить местонахождения файла: каждый кластер содержит указатель на следующий кластер или значение FFF, указывающее на то, что это последний кластер в цепочке кластеров, занимаемых файлом. Расположение файлов по кластерам показано на рис. 2.
Как видно из рисунка 2, в папке расположены три файла. Первый из них – File1. ext занимает три кластера (файл не фрагментирован, кластеры 2,3 и 4 расположены последовательно), второй файл – File2.ext фрагментирован и располагается в кластерах 5,6 и 8, а третий - File2.ext занимает всего один кластер. Вхождение для каждого файла содержит адрес его начального кластера (2,5 и 7 соответственно). Последний кластер каждого файла (4,8 и 7) в качестве адреса следующего на то, что последний кластер для данного файла.
Так как все вхождения имеют одинаковый размер информационного блока, они различаются по байту атрибутов. Один из битов в данном байте может указывать, что это каталог, другой – что это метка тома. Для пользователей доступны четыре бита, позволяющих управлять атрибутами файла – архивный, системный, скрытый и доступный только для чтения.
FAT 32
Начиная с Microsoft Windows 95 OEM Serviсe 2 в Windows появилась поддержка 32 битной FAT. Для систем на базе Windows NT эта файловая система впервые стала поддерживаться в Microsoft Windows 2000. Если FAT 16 может поддерживать тома объемом до 4 Гбайт, то FAT 32 способна обслуживать тома объемом до 2 Тбайт. Размер кластера в FAT 32 может изменяться от 1 (512 байт) до 64 секторов (32 Кбайт). Для хранения значений кластеров FAT 32 требуется 4 байт (32 бит, а не 16, как в FAT 16). Это означает, в частности, что некоторые файловые утилиты, расcчитанные на FAT 16, не могут работать с FAT 32.
Основным отличием FAT 32 от FAT 16 является то, что изменился размер логического раздела диска. FAT 32 поддерживает тома объемом до 127 Гбайт. При этом , если при использовании FAT 16 с 2 – гигабайтными дисками требовался кластер размером в 32 Кбайта подходит для дисков объемом от 512 Мбайт до 8 Гбайт. (табл. 4)
Это соответственно означает более эффективное использование дискового пространства – чем меньше кластер, тем меньше места требуется для хранения файла и, как следствие, диск реже становится фрагментированным.
Таблица 4.
Размер раздела | Размер кластера по умолчанию |
Менее 8 | |
8 и более, но менее 16 | |
16 и более, но менее 32 | |
32 и более |
При применении FAT 32 максимальный размер файла может достигать 4 Гбайт минус 2байта. Если при использовании FAT 16 максимальное число вхождений в корневой каталог ограничивалось 512, то FAT 32 позволяет увеличить это число до 65 535.
FAT 32 накладывает ограничения на минимальный размер тома – он должен быть не менее 65 527 кластеров. При этом размер кластера не может быть таким, чтобы FAT занимала более 16 Мбайт – 64 Кбайт\4 или 4 млн. кластеров.
При использовании длинных имен файлов данные, необходимые для доступа из FAT 16 и FAT 32, не перекрываются. При создании файла с длинным именем Windows создает соответствующее имя в формате 8.3 и одно или более вхождений в каталог для хранения длинного имени( по 13 символов из длинного имени файла на каждое вхождение). Каждое последующее вхождение хранит соответствующую часть имени файла в формате Unicode. Такие вхождения имеют атрибуты «идентификатор тома», «только чтение», «системный», и «скрытый» - набор, который игнорируется MS – DOS; в этой операционной системе доступ к файлу осуществляется по его «псевдониму» в формате 8.3.
Файловая система NTFS
В состав Microsoft Windows 2000 входит поддержка новой версии файловой системы NTFS, которая, в частности, обеспечивает работу с сервисами каталогов Active Directory, точки пересчета, средства защиты информации, контроль за доступом и ряд других возможностей.
Как и при использовании FAT, основной информационной единицей в NTFS является кластер. В табл. 5 показаны размеры кластеров по умолчанию для томов различной емкости.
Таблица 5
Размер тома | Число секторов в кластере | Размер кластера |
512 и менее | 0,5 | |
513 - 1024 | ||
1025 – 2048 | ||
Более 2049 |
При формировании файловой системы NTFS программа форматирования создает файл Master File Table и другие области для хранения метаданных. Метаданные используются NTFS для реализации файловой структуры. Первые 16 записей в MFT зарезервированы самой NTFS. Местоположение файлов метаданных $Mft и $MftMirr записано в загрузочном секторе диска. Если первая запись в MFT повреждена, NTFS считывает вторую запись для нахождения копий первой. Полная копия загрузочного сектора располагается в конце тома. В табл. 6 перечислены основные метаданные, хранимые в MTF.
Таблица 6.
Системный файл | Имя файла | Запись MTF | Назначение |
Master file table | $Mft | Содержит одну базовую файловую запись для каждого файла или каталога на томе NTFS. Если эта информация занимает более одной записи, создаются дополнительные записи. | |
Master file table 2 | $MftMirr | Копия первых четырех записей MTF. Гарантирует доступ к MTF в случае, если первый сектор поврежден | |
Log file | $Log File | Содержит список действий, необходимых для восстановления NTFS. Размер зависит от размера тома. Используется Windows 2000 для восстановления файловой системы в случае системных сбоев. | |
Volume | $Volume | Содержит о томе – метку и номер версии. | |
Attribute definition | $AttrDef | Таблица имен атрибутов и описания | |
Root file name index | $ | Корневой каталог | |
Cluster bitman | $ Bitman | Информация о том, какие кластеры заняты | |
Boot sector | $ Boot | Содержит под загрузки для загрузочных томов | |
Bad cluster file | $Bad Clus | Информация о дефектных секторах | |
Security file | $Secure | Содержит уникальные дискрипторы для всех файлов | |
Upcase table | $Upcase | Используется для преобразования символов нижнего регистра в соответствующие Unicode – символы верхнего регистра | |
NTFS extension file | $Extend | Используется различными службами операционной системы – службой квот, службой перерасчета и идентификаторами объектов. | |
12 - 15 | Зарезервировано для будущих версий. |
Остальные записи MTF содержат записи для каждого файла и каталога, расположенных на данном томе.
Обычно один файл использует одну запись в MTF, но если у файла большой набор атрибутов или он становится слишком фрагментированным, то для хранения информации о нем могут потребоваться дополнительные записи. В этом случае первая запись о файле, называемая базовой записью, хранит местоположение других записей. Данные о файлах и каталогах небольшого размера (до 1500байт) полностью содержаться в первой записи.