Процесс идентифицирует файл, указывая имя пути файла, которое представляет собой строку, составленную из нуля или более имен файлов, разделенных символом слеша (/). Ядро связывает с каждым процессом два каталога для использования при интерпретации имен путей. Корневой каталог процесса является самой верхней точкой в файловой системе, к которой процесс может получить доступ; обычно в таком качестве выступает корневой каталог всей файловой системы. Имя пути, начинающееся со слеша, называется абсолютным путем и интерпретируется ядром, начиная с корневого каталога процесса.
Имя пути, которое не начинается со слеша, называется относительным путем и интерпретируется относительно текущего рабочего каталога процесса. (Этот каталог известен также под более короткими именами текущего каталога и рабочего каталога.) На сам текущий каталог можно непосредственно ссылаться по имени точка, которое записывается в виде одной точки (.). Имя файла точка-точка (..) ссылается на родительский каталог данного каталога. Корневой каталог сам является своим родителем.
Процесс может установить свой корневой каталог с помощью системного вызова chroot, а свой текущий каталог с помощью системного вызова chdir. Любой процесс в любое время может вызвать chdir, но chroot разрешен лишь процессу с правами суперпользователя. Chroot обычно используется для ограничения доступа к системе.
Используя файловую систему, если корневым каталогом процесса является корневой каталог файловой системы, а текущим каталогом является /usr, процесс может ссылаться на файл vi либо из корневого каталога с помощью абсолютного пути /usr/bin/vi, либо из текущего каталога с помощью относительного пути bin/vi.
Системные утилиты и базы данных хранятся в определенных хорошо известных каталогах. Часть хорошо определенной иерархии включает каталог, который содержит домашние каталоги для каждого пользователя (например, /usr/staff/mckusick и /usr/ staff/gnn). Когда пользователь регистрируется, текущим рабочим каталогом его оболочки устанавливается его домашний каталог. В пределах своих домашних каталогов пользователи могут создавать каталоги так же легко, как обычные файлы. Таким образом, пользователь может строить свои сравнительно сложные иерархии.
Пользователь обычно знает лишь об одной файловой системе, но система может знать, что эта одна файловая система на самом деле составлена из нескольких физических файловых систем, каждая на своем устройстве. Физическая файловая система не может занимать несколько логических устройств. Поскольку большинство физических дисков делятся на несколько логических устройств, на каждое физическое устройство может приходиться более одной файловой системы, но не более одной на одно логическое устройство. Одна файловая система - к которой привязаны все абсолютные пути, называется корневой файловой системой, и она всегда доступна. Другие могут монтироваться, т. е. могут быть интегрированы в иерархию каталогов корневой файловой системы. Ссылки на каталог, в котором смонтирована файловая система, прозрачным образом преобразуются ядром в ссылки на корневой каталог смонтированной файловой системы.
Системный вызов link принимает имя существующего файла и другое имя, которое создается для этого файла. После успешного выполнения link доступ к файлу может быть осуществлен по любому имени. Имя файла можно удалить с помощью системного вызова unlink. Когда удаляется последнее имя файла (и последний процесс, в котором файл открыт, закрывает его), файл удаляется.
- 18/05/2010 12:57 - Организация времени выполнения
- 18/05/2010 04:22 - Системный вход
- 17/05/2010 20:11 - Работа системы
- 16/05/2010 18:53 - Межпроцессное взаимодействие
- 15/05/2010 13:20 - Укорачивание файлов
- 13/05/2010 11:56 - Разбросанный ввод/вывод
- 21/03/2010 15:36 - Избежание перегрузки с помощью медленного старта
- 12/01/2010 06:53 - Передача информации ядру и от ядра. Вызов sysctl conf в FreeBSD.
- 09/01/2010 18:18 - Отладка системы FreeBSD. Отладчик GDB
- 09/01/2010 18:07 - Автоматическая перезагрузка и выключение системы