Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_Unix.doc
Скачиваний:
4
Добавлен:
26.11.2019
Размер:
2.41 Mб
Скачать

2.3 Имена файлов в ос unix

В ОС UNIX поддерживается три способа указания имен файлов:

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

В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при условии, что они принадлежат разным каталогам.

Относительное имя. Имя, не начинающееся с символа косой черты (/), но включающее такие символы. Оно ссылается на файл относительно текущего каталога. При этом для ссылки на файл или каталог в каком-то другом каталоге используется метасимвол косой черты (/). Например, команда ls -l ../.profile требует получить полную информацию о файле .profile в родительском каталоге текущего каталога, а команда

cat doc/text.txt требует выдать содержимое файл text.txt в подкаталоге doc текущего каталога.

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

ls -l /home/user01/.profile требует получить полную информацию о файле .profile в каталоге /home/user01 независимо от того, в каком каталоге выполняется.

Между файлом и его полным именем имеется взаимно однозначное соответствие

Другие символы, кроме косой черты, не имеют в именах файлов UNIX особого значения (это не метасимволы). В частности, нет системного понятия расширения файла. Имена файлов чувствительны к регистру.

В ОС UNIX нет теоретических ограничений на количество вложенных каталогов. Тем не менее, в каждой реализации имеются практические ограничения на максимальную длину имени файла, которое указывается в командах (как и на длину командной строки в целом).

2.4 Типы файлов

В UNIX существует несколько типов файлов, различающихся по функциональному назначению и действиям операционной системы при выполнении тех или иных операций над ними.

Обычный файл

Представляет собой наиболее общий тип файлов, содержащий данные в некотором формате. Для операционной системы такие файлы представляют собой просто последовательность байтов. К этим файлам относятся текстовые файлы, двоичные данные и выполняемые программы. Схема размещения:

Рисунок 2.2 – Представление обычного файла

В длинном листинге признаком обычного файла является дефис (-) в первой позиции первого столбца:

-rw-rw-r-- 1 root sys 8296 Фев 23 15:39 ps_data

Каталог

Каталог - это файл, содержащий имена находящихся в нем файлов, а также указатели на дополнительную информацию - метаданные, позволяющие операционной системе производить действия с этими файлами. Каталоги определяют положение файла в дереве файловой системы. Любой процесс, имеющий право на чтение каталога, может прочесть его содержимое, но только ядро имеет право на запись данных каталога.

Рисунок 2.3 – Представление каталога

В длинном листинге признаком каталога является символ d в первой позиции первого столбца:

drwxr-xr-x 2 informix informix 115 Фев 24 13:05 txt

Специальный файл устройства

Обеспечивает доступ к физическим устройствам. В UNIX различают символьные (character special device) и блочные (block special device) файлы устройств. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.

Символьные файлы устройств используются для небуферизованного обмена данными с устройством. Блочные файлы устройств позволяют производить обмен данными в виде пакетов фиксированной длины - блоков.

В длинном листинге признаком специального символьного и блочного устройств являются символы с и b в первой позиции первого столбца, соответственно

FIFO - именованный канал

Этот файл используется для связи между процессами по принципу очереди. Именованные каналы впервые появились в UNIX System V, но большинство современных систем поддерживают этот механизм.

В длинном листинге признаком именованного канала является символ p в первой позиции первого столбца:

Связь

Каталог содержит имена файлов и указатели на их метаданные. Такая архитектура позволяет одному файлу иметь несколько имен в файловой системе. Имена жестко связаны с метаданными и, соответственно, с данными файла, в то время как сам файл существует независимо от того, как его называют в файловой системе.

Стандарт POSIX требует реализовать поддержку двух типов связей - жестких и символических.

Жесткой связью считается элемент каталога, указывающий непосредственно на некоторый индексный дескриптор. Жесткие связи очень эффективны, но у них существуют определенные ограничения, так как они могут создаваться только в пределах одной физической файловой системы. Когда создается такая связь, связываемый файл должен уже существовать. Кроме того, каталоги не могут связываться жесткой связью.

Рисунок 2.4 – Представление жесткой ссылки

Количество жестких связей файла (а также количество файлов в каталоге, если файл является каталогом) отображается во втором поле длинного листинга.

Символическая связь (symbolic link) - это специальный файл, который содержит путь к другому файлу. Указание на то, что данный элемент каталога является символической связью, находится в индексном дескрипторе. Поэтому обычные команды доступа к файлу вместо получения данных из физического файла, берут их из файла, имя которого приведено в связи. Этот путь может указывать на что угодно: это может быть каталог, он может даже находиться в другой физической файловой системе, более того, указанного файла может и вовсе не быть.

Рисунок 2.5 – Представление символьной ссылки

Некоторые системы накладывают ограничение на количество символических связей в пути. POSIX требует, чтобы их поддерживалось не менее 20, но действительное значение зависит от конкретной реализации. Конечно, в описании пути можно использовать сочетание символических и жестких связей.

В длинном листинге признаком символической связи является символ l в первой позиции первого столбца

Сокет

Сокеты позволяют представить в виде файла в логической файловой системе сетевое соединение. В длинном листинге признаком сокета является символ s в первой позиции первого столбца.