Понятие каталога позволяет систематизировать все объекты, размещенные на носителе данных (например, на диске). В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог, объединяющий все данные в файловой системе - это “корень” всей файловой системы, корневой каталог .
Корневой каталог может содержать любые объекты файловой системы, и в частности, подкаталоги ( каталоги первого уровня вложенности). Те, в свою очередь, также могут содержать любые объекты файловой системы и подкаталоги (второго уровня вложенности) и т. д. Таким образом, все, что записано на диске - файлы, каталоги и специальные файлы - обязательно “принадлежит” корневому каталогу: либо непосредственно (содержится в нем), либо на некотором уровне вложенности.
Иерархию вложенных друг в друга каталогов можно соотнести с иерархией данных в системе: объединить тематически связанные файлы в каталог, тематически связанные каталоги - в один общий каталог и т. д. Если строго следовать иерархическому принципу, то чем глубже будет уровень вложенности каталога, тем более частным признаком должны быть объединены содержащиеся в нем данные. Если не следовать этому принципу, то вскоре окажется гораздо проще складывать все файлы в один каталог и искать среди них нужный, чем выполнять такой поиск по всем подкаталогам системы. Однако в этом случае о какой бы то ни было систематизации файлов говорить не приходится.
Структуру файловой системы можно представить наглядно в виде дерева, “корнем” которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 3.1 изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием - имена каталогов.
В любой файловой системе Linux всегда есть только один корневой каталог, который называется ”/”. Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: нескольких жестких или сетевых дисках, съемных дисках, CD-ROM и т. п.
Для того чтобы отключать и подключать файловые системы на разных устройствах в состав одного общего дерева, используются процедуры монтирования и размонтирования, о которых речь пойдет в лекции 11. После того, как файловые системы на разных носителях подключены к общему дереву, содержащиеся на них данные доступны так, как если бы все они составляли единую файловую систему: пользователь может даже не знать, на каком устройстве какие файлы хранятся.
Положение любого каталога в дереве каталогов точно и однозначно описывается при помощи полного пути. Полный путь всегда начинается от корневого каталога и состоит из перечисления всех вершин, встретившихся при движении по ребрам дерева до искомого каталога включительно. Названия соседних вершин разделяются символом ”/” (”слэш”). В Linux полный путь, например, до каталога ”ivan” в файловой системе, приведенной на рис. 3.1, записывается следующим образом: сначала символ ”/”, обозначающий корневой каталог, затем к нему добавляется ”home”, затем разделитель ”/”, за которым следует название искомого каталога ”ivan”, в результате получается полный путь ”/home/ivan”.
Организация каталогов файловой системы в виде дерева не допускает появления циклов: т. е. каталог не может содержать в себе каталог, в котором содержится сам. Благодаря этому ограничению полный путь до любого каталога или файла в файловой системе всегда будет конечным.
Расширения | Размещение компонентов системы: стандарт FHS |