$ cd /home/sergey
$ ls -l
...
lrwxrwxrwx 1 andrei staff 15 Jan 17 8:05 symfirst->../andrei/first
Как видно из вывода команды ls(1) , файл symfirst(символическая связь) существенно отличается от файла second(жесткая связь). Во-первых, фактическое содержимое файла symfirstотнюдь не то же, что и у файла firstили second, об этом говорит размер файла — 15 байт. На самом деле в этом файле хранится не что иное как имя файла, на которую символическая связь ссылается — ../andrei/first— ровно 15 байт. Во-вторых, файл symfirstне содержит никаких ограничений на доступ (символы 2–10 в первой колонке).
Символическая связь является особым типом файла (об этом свидетельствует символ 'l' в первой позиции вывода ls(1) ), и операционная система работает с таким файлом не так, как с обычным. Например, при выводе на экран содержимого файла symfirstпоявятся данные файла /home/andrei/first.
Сокеты предназначены для взаимодействия между процессами. Интерфейс сокетов часто используется для доступа к сети TCP/IP. В системах, ветви BSD UNIX на базе сокетов реализована система межпроцессного взаимодействия, с помощью которой работают многие системные сервисы, например, система печати. Мы подробнее познакомимся с сокетами в разделе "Межпроцессное взаимодействие в BSD UNIX" главы 3.
Структура файловой системы UNIX
Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, ее администрирование и переносимость. Эта структура используется в работе системы, например при ее инициализации и конфигурировании, при работе почтовой системы и системы печати. Нарушение этой структуры может привести к неработоспособности системы или отдельных ее компонентов.
Рис. 1.4Типичная файловая система UNIX
Приведем краткое описание основных каталогов.
Корневой каталог "/" является основой любой файловой системы UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического местонахождения.
В каталоге /binнаходятся наиболее часто употребляемые команды и утилиты системы, как правило, общего пользования.
Каталог /devсодержит специальные файлы устройств, являющиеся интерфейсом доступа к периферийным устройствам.
Каталог /devможет содержать несколько подкаталогов, группирующих специальные файлы устройств одного типа. Например, каталог /dev/dskсодержит специальные файлы устройств для доступа к гибким и жестким дискам системы.
В этом каталоге находятся системные конфигурационные файлы и многие утилиты администрирования. Среди наиболее важных файлов — скрипты инициализации системы. Эти скрипты хранятся в каталогах /etc/rc0.d, /etc/rc1.d, /etc/rc2.dи т.д, соответствующих уровням выполнения системы (run level), и управляются скриптами /etc/rc0, /etc/rc1, /etc/rc2и т.д. Во многих версиях BSD UNIX указанные каталоги отсутствуют, и загрузка системы управляется скриптами /etc/rc.boot, /etc/rcи /etc/rc.local. В UNIX ветви System V здесь находится подкаталог default, где хранятся параметры по умолчанию многих команд (например, /etc/default/suсодержит параметры для команды su(1M) ). В UNIX System V большинство исполняемых файлов перемещены в каталог /sbinили /usr/sbin.
В каталоге /libнаходятся библиотечные файлы языка С и других языков программирования. Стандартные названия библиотечных файлов имеют вид libx.a(или libx.so), где x— это один или более символов, определяющих содержимое библиотеки. Например, стандартная библиотека С называется libc.a, библиотека системы X Window System имеет имя libX11.a. Часть библиотечных файлов также находится в каталоге /usr/lib.
Каталог "потерянных" файлов. Ошибки целостности файловой системы, возникающие при неправильном останове UNIX или аппаратных сбоях, могут привести к появлению т.н. "безымянных" файлов — структура и содержимое файла являются правильными, однако для него отсутствует имя в каком-либо из каталогов. Программы проверки и восстановления файловой системы помещают такие файлы в каталог /lost+foundпод системными числовыми именами. Мы коснемся вопроса имен файлов далее в этой главе и, более подробно, в главе 4.
Читать дальше