Файлы

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

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

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

С позиции пользователя наиболее важным аспектом файловой системы является ее представление, то есть что собой представляет файл, как файлы именуются и защищаются, какие операции разрешено проводить с файлами и т. д. А подробности о том, что именно используется для отслеживания свободного пространства хранилища — связанные списки или битовая матрица, и о том, сколько секторов входит в логический дисковый блок, ему не интересны, хотя они очень важны для разработчиков файловой системы. Поэтому мы разбили главу на несколько разделов. Первые два раздела посвящены пользовательскому интерфейсу для работы с файлами и каталогами соответственно. Затем следует подробное рассмотрение порядка реализации файловой системы и управления ею. И наконец, будут приведены несколько примеров реально существующих файловых систем.

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

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

Конкретные правила составления имен файлов варьируются от системы к си­стеме, но все ныне существующие операционные системы в качестве допустимых имен файлов позволяют использовать от одной до восьми букв. Поэтому для имен файлов можно использовать слова andrea, bruce и cathy. Зачастую допускается так­же применение цифр и специальных символов, поэтому допустимы также такие имена, как 2, urgent!, и Fig.2-14. Многие файловые системы поддерживают имена длиной до 255 символов.

Некоторые файловые системы различают буквы верхнего и нижнего регистров, а некоторые не делают таких различий. Система UNIX подпадает под первую ка­тегорию, a MS-DOS — под вторую. Поэтому система UNIX может рассматривать все последующие сочетания символов как имена трех разных файлов: maria, Maria и MARIA. В MS-DOS все эти имена относятся к одному и тому же файлу.