Логические структуры и файловые системы жестких дисков. Основные дисковые структуры и процесс загрузки, страница 6

·  Анализируются первые шесть непробельных символов длинного имени файла. Все символы, которые допустимы в длинных именах, но не разрешены в стандартных именах (это символы + , ; = [ ]), заменяются на символ подчеркивания. Все строчные буквы преобразуются в прописные. Полученные шесть символов сохраняются как первые шесть символов имени файла.

·  Последним двум символам имени файла присваиваются "~1". Если это вызывает конфликт из-за наличия в каталоге файла с таким псевдонимом, то подставляются символы "~2" и т.д. до определения уникального псевдонима.

Длинные имена файлов хранятся в обычных каталогах с использованием стандартных элементов каталогов, но с применением специальных приемов. Файловая система Windows 95 создает для файла стандартный элемент каталога, в который помещается короткий псевдоним. Затем она использует несколько дополнительных элементов каталога для хранения длинного имени файла. Одно длинное имя файла может занимать несколько элементов каталога (так как каждый элемент каталога имеет длину всего 32 байта). Поэтому рекомендуется не помещать длинные имена файлов в корневой каталог, в котором ограничено число элементов каталога.

Чтобы старые версии DOS не запутались в таком необычном использовании элементов каталога, каждый из дополнительных элементов каталога, используемый для хранения длинного имени файла, отмечается следующей странной комбинацией атрибутов файла: только считываемый, скрытый, системный и метка тома. Цель такого приема состоит в том, чтобы старые версии DOS не пытались что-то сделать с такими элементами длинных имен и не пытались перезаписать их, считая их свободными. Приведенная комбинация атрибутов файлов заставляет старые программы, в общем, игнорировать дополнительные элементы каталога, используемые файловой системой FAT.

Атрибуты файлов

Каждый файл использует элемент каталога, который описывает характеристики файла, а также содержит указатель на то, где файл хранится на диске. Одной из характеристик, хранимых для каждого файла, является набор атрибутов файла, который сообщает DOS и приложениям дополнительную информацию о файле и его целевом использовании.

Использование атрибутов является "сознательным", т.е. любая программа может "заглянуть" в элемент каталога, чтобы узнать атрибуты файла, и, опираясь на них принять обоснованные решения о том, как оперировать файлом. Например, утилита удаления программы управления файлами, встретив файл, отмеченный как только считываемый, должна, по крайней мере, предупредить пользователя перед удалением файла. Однако она не обязана делать этого. Программа, которая знает, что делать, может проигнорировать атрибуты файла.

DOS и большинство других операционных систем присваивают определенный смысл атрибутам, хранимым для файлов, и изменяют свое поведение соответственно атрибутам. Если, например, на стимул DOS ввести "DIR" для просмотра файлов в каталоге, по умолчанию не отображаются файлы, которые имеют установленный атрибут "скрытый" (hidden). Для просмотра скрытых файлов необходимо ввести "DIR /AH".

Атрибут

Битовый код

Read-Only (только считываемый)

00000001

Hidden (скрытый)

00000010

System (системный)

00000100

Volume Label (меткатома)

00001000

Directory (каталог)

00010000

Archive (архивный)

00100000

Файл может иметь несколько атрибутов, хотя практический смысл имеют только определенные комбинации. Атрибуты хранятся в одном байте и каждый бит байта представляет собой конкретный атрибут (фактически используются только шесть битов). Каждый бит, установленный в единицу, означает, что файл имеет этот атрибут включенным. С помощью такого способа в компьютерах хранятся параметры типа "да/нет" ради экономии пространства. В таблице приведены атрибуты и используемые ими биты в байте атрибутов.

Приведем более подробное описание смысла атрибутов.

·  Read-Only (только считываемый): Большинство программ, встретив файл, отмеченный как только считываемый, откажутся удалять или модифицировать его. Например, DOS сообщит "Access denied" (Доступ отвергнут) при попытке удалить только считываемый файл. С другой стороны, Windows Explorer (Проводник) удалит его. Некоторые программы позволяют удалить или модифицировать файл, но после запроса на подтверждение.

·  Hidden (скрытый): Если файл отмечен как скрытый, то при обычных обстоятельствах он скрыт от просмотра. DOS не отображает файл по команде "DIR" без указания специального флажка, как показано ранее.

·  System (системный): Этот атрибут применяется для отметки важных файлов, которые используются системой и не должны изменяться и удаляться с диска. В сущности, это "более серьезный" атрибут по сравнению с только считываемым.

·  Volume Label (метка тома): Каждому дисковому тому можно присвоить идентифицирующую метку при форматировании или впоследствии, например командой "LABEL". Метка тома хранится в корневом каталоге как файл, но с установленным атрибутом метки тома.

·  Directory (каталог): Этот атрибут отличает элементы, которые описывают файлы, от элементов, которые описывают подкаталоги внутри текущего каталога.