Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Акуленок_часть1.doc
Скачиваний:
41
Добавлен:
13.11.2019
Размер:
1.43 Mб
Скачать

4.3.4. Символические связи

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

4.3.5. Fifo – Именованные каналы

Именованный или программный канал (pipes) представляет собой файл, созданный для обмена информацией между двумя процессами на одной машине по принципу очереди. Посылающий процесс пишет данные в именованный канал, а принимающий процесс считывает данные из именованного канала. Канал – это временный файл, который существует так долго, как долго процессы обмениваются информацией. Данные из поименованного канала обрабатываются на основе алгоритма конвейера FIFO (сокращенно от "first–in–first–out" – "первым пришел – первым вышел"). Канал отличается от обычного файла тем, что содержит временные данные: информация, однажды считанная из канала, не может быть прочитана вновь. Кроме того, информация читается в том порядке, в котором она была записана в канале, и система не допускает никаких отклонений от данного порядка. Способ хранения ядром информации в канале не отличается от способа ее хранения в обычном файле, за исключением того, что здесь используются только блоки прямой, а не косвенной адресации.

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

4.3.6. Сокеты

Сокеты (sockets) –позволяют представить в виде файла в логической файловой системе сетевое соединение. Другими словами, сокет – это интерфейс прикладного программирования (API), который используется для обмена информацией между двумя компьютерами, т.е. сокет выполняет сетевой ввод/вывод. Абстракция сокета была создана на основе файлов, но сокет не является реальным файлом. Для использования сокета в программе следует создать сокет и сконфигурировать его с соответствующими адресами локального и удаленного хостов. После соединения локального сокета с сокетом на удаленном хосте программа может использовать его для обмена информацией с удаленными хостами.

4.3.7. Обозначение типов файлов

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

Таблица 4.1.

Типы файлов

Тип файла

Символ обозначения в системе

Обычный файл

Каталог

d

Байт–ориентированный файл устройства

c

Блок–ориентированный файл устройства

b

Символическая ссылка

l

Именованный канал

p

Доменное гнездо UNIX

s

Процедура доступа к внешним устройствам идентична процедуре доступа к любому файлу системы. Такой подход обеспечивает независимость программы пользователя от особенностей ввода–вывода на конкретное внешнее устройство. Это определяет мобильность программ, работающих под управлением OC UNIX.

Типы файлов можно увидеть только с помощью единственной команды ls с опцией –l, что означает листинг длинного формата (l – long).

Рассмотрим примеры обозначений.

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

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

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

drwxr–xr–x 2 informix informix 115 Фев 24 13:05 lib

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

$ ls –1 /dev/dsk15 /dev/rdsk15

br–––––––– 2 root root 0,21 Feb 12 15:40 /dev/dsk15

crw–rw–––– 2 root root 7,21 Mar 7 09:29 /dev/rdsk15

crw––w––w– 1 root unix 9,1 May 3 15:02 /dev/tty01

crw––w––w– 1 root unix 9,2 May 3 15:02 /dev/tty02

Два числа вместо размера – это так называемые старший и младший номера устройства (major device number, minor device number).

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

Пример 4. Признаком символической связи является символ l в первой позиции первого столбца. Рассмотрим простой пример создания символической связи:

$ ln –s f2 f4

$ ls –l f*

–rw–r––r–– 1 kravchuk 50 643 Мар 26 15:37 f2

lrwxrwxrwx 1 kravchuk 50 2 Мар 26 15:57 f4 –> f2

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

$ ls –l /etc/cron.d/FIFO

prw––––––– 1 root root 0 Фев 23 15:41 /etc/cron.d/FIFO

Пример 6. Признаком сокета является символ s в первой позиции первого столбца:

$ ls –l /var/spool/prngd/pool

$ srwxrwxrwx 1 root other 0 Мар 14 11:25 /var/spool/prngd/pool