Понятие «файл» включает не только хранимые им данные и имя, но и атрибуты. Атрибуты - это информация, описывающая свойства файла.
Примеры возможных атрибутов файла:
тип файла (обычный файл, каталог, специальный файл и т.п.);
владелец файла;
создатель файла;
пароль для доступа к файлу;
информация о разрешенных операциях доступа к файлу;
время создания, последнего доступа и последнего изменения;
текущий размер файла;
максимальный размер файла;
признак «только для чтения»;
признак «скрытый файл»;
признак «системный файл»;
признак «архивный файл»;
признак «двоичный/символьный»;
признак «временный» (удалить после завершения процесса).
Набор атрибутов файла определяется спецификой файловой системы: в файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов. В однопользовательской ОС в наборе атрибутов будут отсутствовать характеристики, имеющие отношение к пользователям и защите, такие как владелец файла, создатель файла, пароль для доступа к файлу, информация о разрешенном доступе к файлу.
Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять - только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается.
Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS. На рис. 5.4, а представлена структура 32-байтной записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены бинарные признаки файла: R - только для чтения, А – архивный, Н - скрытый, S - системный, M – метка тома, D – каталог.
8 байтов 3 байта 1 байт 4 байта
Имя файла | Расширение | R | А | Н | S | M | D | Резервные | |
Резервный | Время | Дата | № первого кластера | Размер | |||||
а
2 байта 14 байтов
№ индексного дескриптора | Имя файла |
б
Рис. 5.4. Структура каталогов:
a – структура записи каталога MS-DOS (32 байта);
б – структура записи каталога ОС UNIX
Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы.
Такой подход реализован, например, в файловой системе ufs ОС UNIX.
В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла (рис. 5.4, б). В обоих вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора.