Типы файлов
Файлы можно разделить на исполняемые (программы) и неисполняемые (файлы данных и документов). Исполняемые файлы могут запускаться операционной системой на выполнение, а неисполняемые файлы могут только изменять свое содержимое в процессе выполнения программ. Далее можно разделить файлы на основные, присутствие которых обязательно для работы операционной системы и программных продуктов, служебные, хранящие конфигурацию и настройки основных файлов, рабочие, содержимое которых изменяется в результате работы основных программных файлов и собственно ради которых и создаются все остальные файлы, а также временные файлы, создающиеся в момент работы основных и хранящие промежуточные результаты.
Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.
Обычные файлы подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.
Специальные файлы - это файлы, ассоциированные с устройствами ввода-вывода, и позволяющие пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. Специальные файлы, так же как и устройства ввода-вывода, делятся на блок-ориентированные и байт-ориентированные.
Каталог – специальный вид файла. В нем содержатся ссылки на другие файлы. Поскольку ссылки на эти файлы содержатся лишь в одном из каталогов, для пользователей эти файлы как бы расположены в каталоге. На самом деле, конечно, все файлы находятся в секторах диска. Но это истинно лишь на физическом уровне, а на уровне представления данных файлы находятся в каталогах. Отметим, что каталоги появились не сразу и не во всех операционных системах. Они возникли там, где требовался большой объем хранимой информации (например, в файловых системах жестких дисков) и, следовательно, возникли сложности с организацией и размещением большого числа файлов. Эти преимущества каталогов следует использовать при работе с операционными системами, содержащих каталоги.
В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:
Ú информация о разрешенном доступе,
Ú пароль для доступа к файлу,
Ú владелец файла,
Ú создатель файла,
Ú признак "только для чтения",
Ú признак "скрытый файл",
Ú признак "системный файл",
Ú признак "архивный файл",
Ú признак "двоичный/символьный",
Ú признак "временный" (удалить после завершения процесса),
Ú признак блокировки,
Ú длина записи,
Ú указатель на ключевое поле в записи,
Ú длина ключа,
Ú времена создания, последнего доступа и последнего изменения,
Ú текущий размер файла,
Ú максимальный размер файла.
Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS-DOS, или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX (рисунок 1.).
Рис. 1.Структура каталогов: а - структура записи каталога MS-DOS (32 байта);
б - структура записи каталога ОС UNIX
Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.
Рис. 2. Логическая организация файловой системы
а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)