Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 46
Текст из файла (страница 46)
гаZАтр ибутыЗар езервир овано дл*Ф ю1*го0.Элемент каталога для длинного имени файла (FAT12, FAT6 и FAT32):-:а*sСимволы 1-5 именифайла в UnicodeбутьCS1к£ 9огаа. лофоиSЗар4I!заноуммагаСимволы 6-11 именифайла в UnicodeX-° Б* 9о гоч °-Символы12-13именифайлавUnicode&S T 3 I 4 I 5 I 6 I 7 I 819110 11 12 13 14115|16| 17118|19|20|21|22|23|24|25 26|27 28|29|30|31Рис. 6.3.
Элементы каталогов для FAT, VFAT и FAT32174Глава 6. Файловые системыПомимо повышения максимального объема логического диска и уменьшения эффекта кластеризации, файловая система FAT32 вносит ряд необходимых усовершенствований в структуру корневого каталога.
Предыдущие реализации требовали, чтобы вся информация корневого каталога FAT находилась в одном дисковомкластере. При этом корневой каталог мог содержать не более 512 файлов. Необходимость представлять длинные имена и обеспечить совместимость с прежнимиверсиями FAT привела разработчиков компании Microsoft к компромиссному решению: для представления длинного имени они стали использовать элементыкаталога, в том числе и корневого.
По этой причине для того, чтобы компенсировать сокращение элементов главного каталога при использовании длинных именв FAT32 было увеличено их количество с 512 до 2048. Более того, чтобы не испытывать возможных проблем из-за расходования элементов активного каталога наописания файлов с длинными именами, компания Microsoft не рекомендует давать файлам слишком длинные имена.Рассмотрим способ представления в VFAT длинного имени файла (рис. 6.3).Первые 11 байт элемента каталога DOS используются для хранения имени файла.Каждое такое имя разделяется на две части: в первых восьми байтах хранятся символы собственно имени, а в последних трех — символы так называемого расширения, с помощью которого реализуются механизмы предопределенных типов. Быливведены соответствующие системные соглашения, и файлы определенного типажелательно именовать с оговоренным расширением.
Например, исполняемые файлы с расширением СОМ определяют исполняемую двоичную программу с простейшей односех'ментной структурой1. Более сложные программы имеют расширение ЕХЕ. Определены расширения для большого количества типов файлов иэти расширения используются для ассоциированного запуска программ, обрабатывающих эти файлы.Если имя файла состоит менее чем из восьми символов, то в элементе каталога онодополняется символами пробела, чтобы полностью заполнить все восемь байтовсоответствующего поля.
Аналогично и расширение может содержать от нуля дотрех символов. Остальные (незаполненные) позиции в элементе каталога, определяющие расширение имени файла, заполняются символами пробела. Посколькупри работе с именем файла учитываются все одиннадцать свободных мест, то необходимость в отображении точки, которая обычно вводится между именем файла и его расширением, отпадает. В элементе каталога она просто подразумевается.В двенадцатом байте элемента каталога хранятся атрибуты файла. Шесть из восьми указанных разрядов используются DOS 2 .
Они перечислены ниже.• A (Archive — архив). Показывает, что файл был открыт программой таким образом, чтобы у нее была возможность изменить содержимое этого файла. DObустанавливает этот разряд при открытии файла. Программы резервного копирования (или, как часто говорят, архивирования, то есть составления архивов12Для программных модулей, имеющих такую структуру, может использоваться и расширение ьиВ некоторых операционных системах, В частности в Novell Netware, используется один или дваполпнтельных разряда атрибутов.,ряйловая система FAT175данных) нередко сбрасывают его в ходе резервного копирования файла. Еслиприменяется подобная методика, то в следующую создаваемую по порядку резервную копию будут добавлены только те файлы, в которых данный разрядустановлен.п D (Directory — каталог).
Показывает, что данный элемент каталога указываетна подкаталог, а не на файл.р V (Volume — том). Применяется только к одному элементу каталога в корневом каталоге. В нем собственно и хранится имя дискового тома. Этот атрибуттакже применяется в случае длинных имен файлов, о чем можно будет узнатьиз следующего раздела.Q S (System — системный).
Показывает, что файл является частью операционнойсистемы или специально отмечен подобным образом прикладной программой,что иногда делается для защиты от копирования.а Н (Hidden — скрытый). К скрытым относятся также файлы с установленныматрибутом S (системный), которые не отображаются по команде DIR.• R (Read only — только для чтения).
Показывает, что данный файл не подлежит изменению. Разумеется, поскольку это лишь разряд байта, хранящегося на диске, то любая программа может изменить этот разряд и, значит,разрешить изменение соответствующего файла. Этот атрибут в основном используется для примитивной защиты от пользовательских ошибок, то естьон помогает избежать неумышленного удаления или изменения ключевых. файлов.Следует отметить, что файл, помеченный одним или более из указанных выше атрибутов, может иметь вполне определенный смысл.
Например, большинство файлов, отмечаемых в качестве системных, отмечаются также атрибутами «скрытый»и «только для чтения».На дисках FAT 12 или FAT 16 следующие за именем 10 байт не используются. Обыкновенно они заполняются нулями и считаются резервными значениями. А на диске с файловой системой FAT32 эти 10 байт содержат самую разную информациюо файле. При этом байт, отмеченный как зарезервированный для NT, представляет собой, как подразумевает его название, поле, не используемое в DOS или Windows 9х, но применяемое в Windows NT.Из соображений совместимости поля, которые встречаются в элементах каталогаДля коротких имен формата FAT 12 и FAT 16, находятся на тех же местах и в элементах каталога для коротких имен формата FAT32.
Остальные поля, которыевстречаются только в элементах каталога для коротких имен формата FAT32, соответствуют зарезервированной области длиной 10 байт в элементах каталога длякоротких имен форматов FAT12 и FAT16.^ак видно из рис.
6.3, для длинного имени файла используется несколько элементов каталога. Таким образом, появление длинных имен фактически привело к дальнейшему уменьшению количества файлов, находящихся в корневом каталоге. Покольку длинное имя может содержать до 256 символов, всего один файл с полнымДлинным именем занимает до 25 элементов FAT (1 для имени 8.3 и еще 24 для176Глава 6, Файловые системысамого длинного имени).
Таким образом, количество элементов корневого каталога VFAT уменьшается до 21. Очевидно, что это не вполне красивое решение, поэтому компания Microsoft советует избегать длинных имен в корневых каталогахпри отсутствии системы FAT32, у которой количество элементов каталога простотребуемым образом увеличено 1 .Загрузочная запись для системы FAT32 несколько отличается от загрузочной записиFAT 16. Так, например, в загрузочном секторе для тома с FAT32 в блоке DPB содержатся дополнительные поля, а те поля, что находятся в привычном для системы FAT 16месте, перенесены.
Поэтому операционная система, в которой есть возможность работать с файловой системой FAT 16, но нет системы управления файлами, понимающейспецификации FAT32, не может читать данные с томов, отформатированных под файловую систему FAT32. В загрузочном секторе для файловой системы FAT32 по-прежнему байты с ООН по ОАН содержат команду перехода и OEM ID, а в байтах с ОВНпо 59Н содержатся данные блока параметров диска (PDB). Отличие заключаетсяименно в несколько иной структуре блока DPB (табл. 6.5).Таблица 6 . 5 .
Структура загрузочной записи для FAT32Смещение поля,байтДлина поля,байт00Н(0)ОбозначениеполяСодержимое поляJUMP3EHБезусловный переход на началосистемного загрузчикаОЗН (3)8ОВН (11)2SectSizeРазмер сектора, байт0DH(13)1ClastSizeЧисло секторов в кластере0ЕН(14)2ResSecsЧисло зарезервированных секторов,для FAT32 равно 32ЮН (16)1FATcntЧисло копий FAT11Н (17)2RootSize0000Н13Щ19)2TotSecs0000НСистемный идентификатор15Н (21)1MediaДескриптор носителя16Щ22)2FATsize0000Н18Щ24)2TrkSecsЧисло секторов на дорожке1АЩ26)2HeadCntЧисло рабочих поверхностей1СЩ28)4HidnSecsЧисло скрытых секторов(располагаются перед загрузочнымсектором). Используется при загрузкедля вычисления абсолютного смещениякорневого каталога и данныхПомните и о том, что длина полной файловой спецификации, включающей путь и имя файла (длинное или в формате 8.3), тоже ограничивается 260 символами.
FAT32 успешно справляется с проблемой длинных имен в корневом каталоге, но проблема с ограничением длины полной файловой спецификации остается. По этой причине Microsoft рекомендует ограничивать длинные имена75-80 символами, чтобы оставить достаточно места для пути (180-185 символов).гЬяйловая система HPFSСмещение поля,байт20Н (32)Длина поля,байт4177ОбозначениеСодержимое поляЧисло секторов на логическом диске24Н (36)4Число секторов в таблице FAT28Н (37)2Расширенные флаги2АН (38)2Версия файловой системы2СН (39)4Номер кластера для первого кластеракорневого каталога34Н (43)2Номер сектора с резервной копиейзагрузочного сектора36Н (54)12ЗарезервированоЗаметим, что загрузочная запись для диска с FAT32 занимает не один сектор, какв FAT16 и FAT12, а три. Резервная загрузочная запись, как правило, располагается в секторах 7-9.Файловая система HPFSФайловая система HPFS (High Performance File System - высокопроизводительная файловая система) впервые появилась в операционных системах OS/2 1.2 иLAN Manager.