Разновидности файлов
Файловые системы поддерживают несколько функционально различных типов файлов, в число которых, как правило, входят
· обычные файлы,
· файлы-каталоги,
· специальные файлы,
· именованные конвейеры,
· отображаемые в память файлы и другие.
Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных ОС (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов — их собственные исполняемые файлы.
Каталоги — это особый тип файлов, которые содержат системную справочную информацию о наборе файлов, сгруппированных пользователями по какому-либо неформальному признаку, (например, в одну группу объединяются файлы, содержащие документы одного договора, или файлы, составляющие один программный пакет). Во многих операционных системах в каталог могут входить файлы любых типов, в том числе другие каталоги, за счет чего образуется древовидная структура, удобная для поиска. Каталоги устанавливают соответствие между именами файлов и их характеристиками, используемыми файловой системой для управления файлами. В число таких характеристик входит, в частности, информация (или указатель на другую структуру, содержащую эти данные) о типе файла и расположении его на диске, правах доступа к файлу и датах его создания и модификации. Во всех остальных отношениях каталоги рассматриваются файловой системой как обычные файлы.
Специальные файлы — это фиктивные файлы, ассоциированные с устройствами ввода-вывода, которые используются для унификации механизма доступа к файлам и внешним устройствам. Специальные файлы позволяют пользователю выполнять операции ввода-вывода посредством обычных команд записи в файл или чтения из файла. Эти команды обрабатываются сначала программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются операционной системой в команды управления соответствующим устройством.
Современные файловые системы поддерживают и другие типы файлов, такие как символьные связи, именованные конвейеры, отображаемые в память файлы.
Формат имен файлов
В различных ФС допустимое имя файла может иметь различную длину, и в нем могут использоваться различные наборы символов. В СР/М и ее потомках МS DOS-DR DOS. а также в VМS имена файлов хранятся в 8-битной АSСII-кодировке. Все перечисленные системы используют нечувствительный к регистру букв поиск в каталогах: имена file.с, File.С и FILE.С считаются одним и тем же именем.
Наибольшим либерализмом в смысле имен отличаются ОС семейства Unix в которых имя файла может состоять из любых символов кодировки АSCII кроме символов '\000' и '/', например, из восьми символов перевода каретки. При этом '\000' является ограничителем имени, а '/' — разделителем между именем каталога и именем файла. Никакого разделения на имя и расширение нет, и хотя имена файлов с программой на языке С заканчиваются ".с", а объектных модулей — ".о", точка здесь является частью имени. Вы можете создать файл С именем "gсс-2.5.8.tar.gz". В UNIХ SVRЗ длина имени файла ограничена 14 символами, а в ВSD UNIХ, Linuх и SVR4— только длиной блока на диске, т. е. 512 байтами или более. При этом нулевой символ считается концом имени в каталоге.
Впоследнее время ОС поддерживают длинные имена файлов. Большинство ОС при поиске файла приводят к одному регистру все алфавитные символы в имени. С одной стороны, это означает дополнительное удобство для пользователя — при наборе имени не нужно заботиться о регистре букв, с другой - пользователь не может создать в одном каталоге файлы"text.txt " "Теxt.txt". Главная же проблема, возникающая при работе с нечувствительными к регистру именами, - это преобразование регистра в именах, использующих национальные алфавиты: русский, греческий, японскую слоговую азбуку и т.д. Файловая система, поддерживающая такие имена, должна учитывать языковые особенности ОС, что создает много сложностей. В системах семейства Win 32 эта проблема решена за счет хранения имен в формате Unicode. Некоторые ОС поддерживают также номер версии файла. В каталоге может существовать несколько версий файла с одним именем; если номер версии при открытии файла не задается, то открывается последняя версия. Версии файла очень удобны при разработке любых объектов, от программ или печатных плат до книг: если вам не понравились изменения, внесенные вами в последнюю версию, вы всегда можете откатиться назад.
Атрибуты файлов
Понятие «файл» включает не только хранимые им данные и имя, но и атрибуты. Атрибуты — это информация, описывающая свойства файла. Примеры возможных атрибутов файла:
· тип файла (обычный файл, каталог, специальный файл и т. п.);
· владелец файла; - создатель файла;
· пароль для доступа к файлу;
· информация о разрешенных операциях доступа к файлу;
· времена создания, последнего доступа и последнего изменения;
· текущий размер файла; - максимальный размер файла;
· признак «только для чтения»;
· признак «скрытый файл»;
· признак «системный файл»; - признак «архивный файл»; - признак «двоичный/символьный»;
· признак «временный» (удалить после завершения процесса);
· признак блокировки;
· длина записи в файле;
· указатель на ключевое поле в записи;
· длина ключа.
Набор атрибутов файла определяется спецификой файловой системы: в файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов. Например, в файловых системах, поддерживающих неструктурированные файлы, нет необходимости использовать три последних атрибута в приведенном списке, связанных со структуризацией файла. В наборе атрибутов однопользовательской ОС будут отсутствовать характеристики, имеющие отношение к пользователям и защите, такие как владелец файла, создатель файла, пароль для доступа к файлу, информация о разрешенном доступе к файлу.
Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается.
Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS. На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.
Рис.Структура каталогов: a – структура записи каталога MS-DOS (32 байта),
б – структура записи каталога ОС UNIX
Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла. В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора.
Тип файла
Расширение
Во многих случаях желательно связать с файлом – неважно, структурированный ли этот файл или битовый поток – какую-то метаинформацию: в каком формате хранятся данные, какие операции над ним допустимы, а иногда и сведения о том, кому и зачем эти данные нужны. По-видимому, наиболее общим решением этой проблемы был бы объектно-ориентированный подход, в котором файл данных рассматривается как объект, а доступные операции – как методы этого объекта. Ни в одной из известных ОС эта идея в полной мере не реализована, но пользовательские интерфейсы многих современных ОС предоставляют возможность ассоциировать определенные действия с файлами различных типов. Так, например Explorer – пользовательская оболочка Windows позволяет связать ту или иную программу с файлами, имеющими расширение DOC. От ОС при этом требуется только дать возможность каким-то образом различать типы файлов. Первые попытки ассоциировать с файлом признак типа были сделаны еще в 60-е годы. При этом идентификатор типа добавляется к имени файла в виде короткой, но мнемонической последовательности символов – расширения(extention). В большинстве современных ОС расширения отделяются от имени символом “.”, но проследить истоки этой традиции не удалось. При этом, например, файлы на языке С будут иметь расширение «с», на С++ - «С», а документы в формате LATEX – «tex».
Дата добавления: 2016-06-05; просмотров: 4214;