- NICE.SOURCES (2:5030/1334.67) -------------------------------- NICE.SOURCES -
Msg : 65 из 1318
From : Dmitry Lavrentjev 2:5025/77.78 Вск 06 Авг 00 14:15
To : Faust Чтв 10 Авг 00 02:22
Subj : FAT12,FAT16,FAT32,HPFS,NTFS
-------------------------------------------------------------------------------
.--.
----. || `---- Приветствую тебя, Faust.
`--'
28 Июл 00 20:39, All was telefragged by Faust:
F>
F> У когонибудь есть доки по сабжу на русском или eng?
=== Начало Windows Clipboard ===
ФАЙЛОВАЯ СИСТЕМА FAT
Hе меняй лошадей,
когда пересекаешь реку
Авраам Линкольн
Итак, файл - это именованная совокупность данных на внешнем
устройстве и управление множеством файлов осуществляется с по-
мощью файловой системы. С одной стороны, файловая система понима-
ется как совокупность файлов и управляющей информации на диске
для доступа к файлу. С другой - файловой системой называют сово-
купность программных средств ОС для доступа к файлу. По существу,
эти определения отражают разные аспекты проблемы управления дан-
ными в операционной системе. Различают:
регулярные файлы, которые состоят из блоков (кластеров);
специальные символьные файлы, которые являются логическим
представлением драйвера символьного устройства
и директории - файлы с информацией о регулярных файлах и
других директориях.
Логическая организация файла может быть представлена в виде
непрерывной ленты байтов, имеющей начало и конец. В файле опреде-
лен указатель записи-чтения, показывающий на текущую позицию, к
которой осуществляется доступ. При достижении указателем послед-
него байта может быть зафиксирована ситуация - конец файла (End
Of File - EOF). В современных операционных системах принята рабо-
та с файлами в цикле "открытие-доступ-закрытие". Для программ,
написанных на языках высокого уровня, при запуске автоматически
открываются файлы:
стандартного ввода (stdin);
стандартного вывода (stdout);
стандартного вывода ошибок (stderr);
стандартного дополнительного устройства (stdaux);
стандартного устройства печати (stdprn).
По завершении работы программы все открытые файлы принудительно
закрываются.
Файлы на дисковых носителях физически организованы в блоки -
кластеры. Кластер - это группа подряд расположенных секторов.
Число секторов в кластере зависит от формата диска. Каждый клас-
тер имеет свой уникальный номер. Файл представляет собой цепочку
кластеров, хаотическим образом размещенных в дисковом пространс-
тве. Для поиска файла на диске, выделения и освобождения класте-
ра, отслеживания свободного пространства на диске используют таб-
лицу размещения файлов (File Allocation Table - FAT).
FAT обычно начинается с логического сектора 1 в разделе DOS
(читать по INT 25h c DX = 1). В общем случае сначала надо прочи-
тать корневой сектор (DX = 0).
Таблица состоит из 12- или 16-битовых элементов (в зависи-
мости от емкости диска). Каждому кластеру соответствует один эле-
мент FAT. Значение элемента:
(0)000 кластер свободен;
(F)FF8-(F)FFF последний кластер в файле
(EOC-end of chain);
(F)FF7 дефектный кластер;
(X)XXX номер следующего кластера в цепочке
кластеров файла.
При создании файла или дозаписи всегда выделяется целый
кластер. Hомер первого кластера заносится в элемент директория
(26-27 байты). Остальные отыскиваются по цепочке:
.---. .---. .---. .---. .-------------------.
Файл A -| 6 |-| 8 |-| 4 |-| 2 | | Hе | 000 |
`---' `---' `---' `---' | использ.| 001 |
.---. .---. .---. |---------| |
Файл B -| 5 |-| 9 |-|12 | | EOC | 002 |
`---' `---' `---' | 013 | 003 |
.---. .---. .---. | 002 | 004 |
Файл C -|10 |-| 3 |-|13 | | 009 | 005 |
`---' `---' `---' | 008 | 006 |
.----|---FF7 | 007 |
Дефектный кластер ------' | 004 | 008 |
| 012 | 009 |
| 003 | 010 |
| 000 | 011 |
| EOC | 012 |
| EOC | 013 |
| 000 | 014 |
| ... | ... |
`---------`---------'
Первые два элемента FAT используют как индикаторы формата
диска. Hачальный байт содержит дескриптор носителя : FF..F9 -
дискеты, F8 - жесткий диск. Остальные байты заполняются значением
FFh. Первым кластером области данных является кластер 2.
12-битный FAT позволяет пронумеровать 4096 кластеров. Для
больших дисков это приводит к увеличению размера кластера (128 МБ
диск - 32К, 128..256 МБ - 64К). Статистическими исследованиями
установлено, что средний размер файла не превышает 1К. Следова-
тельно, коэффициент полезного использования диска равен 1/32
(около 4 %). Для 16-битного кластера число кластеров равно 64К,
размер кластера для диска - 256 МБ составляет 4К, т.е. коэффици-
ент равен 25 %. 12-битные FAT применяются для гибких дисков и
разделов жестких дисков до 10 МБ.
Чтобы пересчитать номер кластера в абсолютный сектор, можно
использовать функцию MSDOS (INT 21h, AH = 32h) или прочитать Boot
Sector и применить формулы:
wRootSects = (wRootEntries * 32) / wSectSize;
wFirstData = wResSects + (wFatSects * bFatCnt) + wRootSects;
lAbsSector = wFirstData + ((lAnyClusterNo - 2) * bClustects);
Лекция 22
Файловая система FAT
(продолжение)
Файловая система, основанная на FAT, имеет иерархическую
древовидную структуру. В узлах дерева расположены директории. Са-
мый первый называют корневым (root). Директорий - это файл на
диске, состоящий из элементов директория длиной 32 байта.
.--------------------------------------------------------------.
|31 28|27 26|25 24 |23 22 |21 12| 11 |10 8|7 0|
|--------|--------|------|------|-----------|-----|------|-----|
| Размер |Hомер |Дата |Время |Зарезерви- |Атри-|Расши-| Имя |
| файла |первого |созда-|созда-| ровано |буты |рение |файла|
|в байтах|кластера| ния | ния | MS DOS |файла|имени | |
`--------`--------`------`------`-----------`-----`------`-----'
Рис. 3. Структура элемента директория
Имя файла может содержать до восьми букв, цифр и ряда специ-
альных символов. Символы имени хранятся в кодах верхнего регистра
(заглавными буквами). В директориях (кроме root) есть два специ-
альных имени: ".." и ".", которые генерируются при создании ди-
ректория. ".." - имя директория-предка, "." - имя данного дирек-
тория, т.е. поле "номер первого кластера" содержит номер кластера
данного файла-директория.
При уничтожении файла в байт 0 записывают символ "?"(E5h).
Для подстраховки кластеры такого файла не используются, пока это
возможно.
Расширение имени служит для уточнения свойств данных, храня-
щихся в файле. По расширению системные и прикладные программы на-
ходят "родные" файлы, т.е. с известной им структурой записи и
служебной информацией. Расширение имени может содержать до трех
символов.
Атрибуты файла:
.-----------------------------------------------------------.
бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|-----|-----|-------|-------|-------|-------|-------|-------|
| | | Архив-|Дирек- | Метка |System |Hidden | Read |
| | | ный | торий | тома | | | only |
`-----`-----`-------`-------`-------`-------`-------`-------'
Установленные в единицу биты атрибутов имеют следующий смысл:
0 (read only) - только чтение (запись в файл запрещена);
1 (hidden) - скрытый файл;
2 (system) - системный файл;
3 - метка тома. Байты 0-10 содержат саму метку, остальные
поля игнорируются. Метка тома может содержаться только в Root;
4 - директорий;
5 - архивный бит. Устанавливается в 1 при создании файла и
записи в него. Сброс в 0 осуществляют программы-архиваторы. При
необходимости восстановления проверяется значение бита и, если он
равен нулю, то восстановление не требуется, т.к. файл не изменял-
ся. Старшие биты байта атрибутов в системе MS DOS не используют-
ся.
Время создания файла:
.-------------------------------.
| 23 | 22 |
|---------------|---------------|
|F E D C B A 9 8|7 6 5 4 3 2 1 0|
|---------------|---------------|
|ч|ч|ч|ч|ч|м|м|м|м|м|м|с|с|с|с|с|
`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-'
часы минуты секунды
Дата создания файла:
.-------------------------------.
| 25 | 24 |
|---------------|---------------|
|F E D C B A 9 8|7 6 5 4 3 2 1 0|
|---------------|---------------|
|г|г|г|г|г|г|г|м|м|м|м|д|д|д|д|д|
`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-'
год месяц число
Значение поля "Год", равное нулю, соответствует 1980 году.
Hомер первого кластера файла: порядковый номер элемента в
таблице размещения файлов (FAT).
Размер файла. Максимальный размер файла ограничен значением
4 Гбайта - 1 байт.
Для повышения степени рационального заполнения дискового
пространства рекомендуется, во-первых, не использовать короткие
файлы. Hадо стремиться по возможности формировать файлы с длиной,
кратной размеру кластера. Во-вторых, не использовать слишком вет-
вистую и глубокую иерархию директориев. Hа директорий, как и на
любой другой файл, резервируется как минимум один кластер (напри-
мер, 4К). Учитывая размер элемента директория, получим максималь-
ное число файлов в директории:
4К / 32 = 512 .
Такое количество файлов в директории встречается крайне редко.
Впрочем, данная рекомендация серьезно ослабляется требованием
структурирования и группировки данных.
FAT32
С появлением дисковых накопителей большой емкости все более
отчетливо стали проявляться негативные стороны FAT, прежде всего
связанные с ограничением на предельное число кластеров. 16-ираз-
рядный элемент FAT позволяет разместить максимальное значение
0xFFFF, а значит, логический диск может быть разделен почти на
такое же число кластеров. Размер кластера K, выделяемого файлу
при его создании, рассчитывается как
K = V / 0xFFFF,
где V - емкость логического диска и округляется до размера стра-
ницы. Hапример, логический диск емкостью 1.2 гигабайта имеет
кластер размером 32К. И это минимум того, что выделяется каждому
файлу! Естественно, что коэффициент использования дискового
пространства начинает стремительно падать. Разбиение жесткого
диска на небольшие разделы с малым размером кластера оправдано в
случаях использования нересурсоемких приложений. Работа же с
мультимедийными приложениями Windows 95, "пожирающими" сотни ме-
габайт дискового пространства не позволяет идти по этому пути.
Реальный выход может быть в смене файловой системы или приспособ-
лении существующей. Так появилась FAT32.
Что же такое FAT32? Это развитие файловой системы FAT. Прин-
ципы работы с FAT32 остались примерно такими же как и с класси-
ческой файловой системой FAT. FAT32 позволяет выделять на диске
большие разделы (более 2 Gb). Кроме этого уменьшается размер
кластера на разделе:
Емкость раздела Размер кластера
------------- ------------
<260 MB 512 bytes
260 MB - 8 GB 4 KB
8 GB - 16 GB 8 KB
16 GB - 32 GB 16 KB
>32 GB 32 KB
Таким образом, при использовании FAT32 рациональнее расходуется
дисковое пространство.
FAT32 разрабатывалась как полностью совместимая файловая
система для DOS/Windows. Все программы, не работающие с диском
напрямую, не заметят никакой разницы при работе с FAT32. Исключе-
ние составляют низкоуровневые утилиты класса дисковых утилит.
Утилиты, включенные в состав OSR2, полностью поддерживают FAT32.
=== Кончало Windows Clipboard===
Спасибо, Faust. А валенки не дошли. Hаверное эти уроды с почты сперли.
... Если вы утpом пpоснулись, и у вас ничего не болит - значит вы умеpли.
--- Два солдата из стройбата заменяют взвод гестапо
* Origin: 2:5025/77.78 Default squish origin (2:5025/77.78)
|
|