Главная
»
Информационные системы
»
Операционные системы
»
Файловая система UNIX
Файловая система UNIX
В системе UNIX пространство имен файловой системы имеет иерархическую структуру. У него есть единый корневой элемент, но при этом допускается монтирование в одно пространство нескольких файловых систем (Рис.9.2).

Рис.9.2. Иерархическое пространство имен файловой системы.
В классической UNIX, в отличие от операционных систем, где файлы делятся на записи, файл в UNIX представляет собой неструктурированный байтовый поток с произвольным доступом.
Помимо обычных дисковых файлов в UNIX поддерживаются специализированные файлы, предназначенные для доступа к устройствам или для взаимодействия между процессами. Подобные файлы обычно хранятся в каталоге /dev. Например, после открытия файла /dev/hda приложение получает непосредственный доступ к блокам на жестком диске. Доступ к таким файлам разрешен только привилегированным пользователям системы.
Для выполнения операций ввода-вывода операционная система предоставляет стандартные системные вызовы, в частности такие, как:
open(), close(), read(), mount() и другие.
Иерархическое пространство имен обычно очень велико и включает пространства нескольких файловых систем, расположенных на разных устройствах. Когда файловая система монтируется в существующее дерево имен, ее корневой каталог заменяет некоторый заданный каталог, для чего используется следующий вызов:
mount (′/bin′,′/dev/hda′, R/W) {монтировать}
В результате устройство, представленное файлом /dev/hda, монтируется в каталог /bin. Признак R/W указывает, что оно может использоваться как для чтения, так и для записи.
Использовать для доступа к файлам их полные имена, заданные относительно корневого каталога, не всегда удобно. Поэтому ядро UNIX связывает с каждым процессом каталог, называемый текущим или рабочим, и все имена интерпретируются как заданные относительно этого каталога, что не только упрощает работу пользователей, но и ускоряет поиск. Например, /bin/sh – это путевое имя, начинающееся с имени корневого каталога, а sh – имя того же файла при условии, что текущим (или рабочим) каталогом является /bin/.
Кроме того, для каждого пользователя определен начальный каталог, который при регистрации пользователя в системе назначается рабочим. Процесс может в любой момент сменить рабочий каталог с помощью системного вызова.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.