Binary Hell's main site

 Главная страница 
 Новости 
 Статьи 
 Продукты 
 Документация 
 Наши проекты 
 О группе 
 
 Пишите нам 
 Опыт ФИДО конференций 
 Доки по ASM-у 
 Учебники 
 Форматы файлов 
 

- 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)

  

Rambler's Top100 Rambler's Top100 NET's Top100