Файлы и каталоги


Основные функции файловой системы

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

Основные функции, выполняемые файловой системой, можно условно разделить на две группы:

· функции для работы с файлами, то есть их создание, удаление, изменение атрибутов, определение структуры файлов;

· функции для работы с данными, хранящимися в файлах, то есть чтение и запись, поиск и т.д.

Таким образом, в логическом плане файловую систему можно разделить на следующие составные части:

· файлы, хранящиеся на устройстве ввода/вывода;

· структура файлов;

· функции работы с файлами и их структурой.

В разных источниках по информатике и вычислительной техники определения термина «файл» так же, как и термина «операционная система», могут варьироваться. Наиболее распространенными являются формулировки, что «файл - это наименьший именованный массив информации» или «файл - основная единица организации информации на носителе». В различных файловых системах файлы могут описываться различными, вообще говоря, наборами параметров и характеристик.

Основным атрибутом файла является его имя. Имя файла - это символьная строка, длина которой зависит от конкретной файловой системы. Так, в файловой системе FAT (File Allocation Table), используемой в MS DOS, длина имени файла не может превышать 11 символов, 3 из которых предназначены для расширения. В ОС UNIX System V под имя файла отводится 14 символов, а в файловой системе NTFS (New Technology File System) для Windows NT - 255 символов. От файловой системы также зависит, какие символы могут использоваться в имени файла.

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

В некоторых системах, например UNIX, одному файлу может быть сопоставлено несколько имен. Это особенно удобно для многопользовательских систем. В таком случае необходимо адресовать файл идентификатором, который будет связывать файл и его имена. В системе UNIX таким идентификатором служит номер индексного дескриптора.

Другие атрибуты файла, которые могут использоваться файловой системой, перечислены ниже:

· текущий размер файла;

· максимальный размер файла;

· длина записи;

· времена создания, последнего доступа и последнего изменения;

· владелец файла;

· создатель файла;

· информация о доступе к файлу;

· пароль для доступа к файлу;

· признак «только для чтения»;

· признак «скрытый файл»;

· признак «системный файл»;

· признак «архивный файл»;

· признак «двоичный/символьный»;

· признак «временный»;

· признак блокировки.

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

Структура каталогов в зависимости от файловой системы может быть древовидной, когда один файл может входить только в один каталог, и сетевой, когда один файл может входить в различные каталоги. Пример системы с древовидной структурой каталогов - система FAT. Сетевая структура, более подходящая для многопользовательских систем, реализована в UNIX.

В так называемых DOS-совместимых (впрочем, и в некоторых других) системах к файлу обращаются с помощью полного имени, которое состоит:

· из пути (англ. Path) - последовательности имен каталогов, в которых содержится файл, разделенных символом \ (в UNIX для этого используется символ /);

· собственно имени файла (англ. Name);

· расширения (англ. Extension), которое является необязательным элементом и, как правило, информирует о типе данных, хранимых в файле. Расширение отделяется от имени точкой (.)

В качестве примера может быть приведено следующее имя файла:

C:\DIR1\DIR2\OIR3\NAME.EXT

В различных файловых системах существуют ограничения на то, какие символы могут присутствовать в именах файлов.