Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Запуск и выключение Идентификация файла

Идентификация файла

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

Имя пути, которое не начинается со слеша, называется относительным путем и интерпретируется относительно текущего рабочего каталога процесса. (Этот каталог известен также под более короткими именами текущего каталога и рабочего каталога.) На сам текущий каталог можно непосредственно ссылаться по имени точка, которое записывается в виде одной точки (.). Имя файла точка-точка (..) ссылается на родительский каталог данного каталога. Корневой каталог сам является своим родителем.

Процесс может установить свой корневой каталог с помощью системного вызова chroot, а свой текущий каталог с помощью системного вызова chdir. Любой процесс в любое время может вызвать chdir, но chroot разрешен лишь процессу с правами суперпользователя. Chroot обычно используется для ограничения доступа к системе.

Используя файловую систему, если корневым каталогом процесса является корневой каталог файловой системы, а текущим каталогом является /usr, процесс может ссылаться на файл vi либо из корневого каталога с помощью абсолютного пути /usr/bin/vi, либо из текущего каталога с помощью относительного пути bin/vi.

Системные утилиты и базы данных хранятся в определенных хорошо известных каталогах. Часть хорошо определенной иерархии включает каталог, который содержит домашние каталоги для каждого пользователя (например, /usr/staff/mckusick и /usr/ staff/gnn). Когда пользователь регистрируется, текущим рабочим каталогом его оболочки устанавливается его домашний каталог. В пределах своих домашних каталогов пользователи могут создавать каталоги так же легко, как обычные файлы. Таким образом, пользователь может строить свои сравнительно сложные иерархии.

Пользователь обычно знает лишь об одной файловой системе, но система может знать, что эта одна файловая система на самом деле составлена из нескольких физических файловых систем, каждая на своем устройстве. Физическая файловая система не может занимать несколько логических устройств. Поскольку большинство физических дисков делятся на несколько логических устройств, на каждое физическое устройство может приходиться более одной файловой системы, но не более одной на одно логическое устройство. Одна файловая система - к которой привязаны все абсолютные пути, называется корневой файловой системой, и она всегда доступна. Другие могут монтироваться, т. е. могут быть интегрированы в иерархию каталогов корневой файловой системы. Ссылки на каталог, в котором смонтирована файловая система, прозрачным образом преобразуются ядром в ссылки на корневой каталог смонтированной файловой системы.

Системный вызов link принимает имя существующего файла и другое имя, которое создается для этого файла. После успешного выполнения link доступ к файлу может быть осуществлен по любому имени. Имя файла можно удалить с помощью системного вызова unlink. Когда удаляется последнее имя файла (и последний процесс, в котором файл открыт, закрывает его), файл удаляется.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 25 гостей онлайн