Главная
            
           » 
          
            
            Информационные системы
            
           »
                        
                            
                            Операционные системы
                            
                           »
                        
                            
                            Файловая система 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/.
Кроме того, для каждого пользователя определен начальный каталог, который при регистрации пользователя в системе назначается рабочим. Процесс может в любой момент сменить рабочий каталог с помощью системного вызова.
 
                
                
                
            
                            Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.