- •2. Структура ос Unix
- •2.1. История создания Unix
- •Основные этапы развития Unix
- •2.2. Основные свойства Unix
- •2.3. Концептуальная модель Unix
- •2.4. Современные версии Unix
- •2.5. Архитектура ос Unix
- •2.6. Архитектура ядра Unix
- •2.7. Основные понятия ос Unix
- •2.8. Файловая система (пользовательский аспект)
2.8. Файловая система (пользовательский аспект)
Файлы в Unixиграют ключевую роль, что не всегда справедливо для других операционных систем.
Файлы в Unix:
Хранят данные пользователей;
Определяют привилегии пользователей, т.к. права пользователей в большинстве случаев контролируются с помощью прав доступа к файлам;
Файлы обеспечивают доступ к периферийным устройствам компьютера;
Для приложений Unix доступ к дисковому файлу не отличим от доступа, например, к принтеру.
Все программы, которые выполняются в системе (включая ядро) являются исполняемыми файлами.
Структура файловой системы
Как и во многих современных ОС, в Unixфайлы организованы в виде дерева (рис. 2.3). Полное имя файла содержит путь (список каталогов (ветвей)), которые необходимо пройти, чтобы достичь файла.
Рис. 2.3. Типичная файловая системаUnix
Так как в Unixвсе доступное пользователем файловое пространство объединено в единое дерево каталогов, то полное имя любого файла начинается с символа '/' и НЕ содержит идентификатора устройства.
Типы файлов
В Unixсуществуют 6 типов файлов, различающихся по функциональному назначению и действиям ОС при выполнении тех или иных операций над файлами:
Обычный файл
Каталог
Специальный файл устройства
FIFOили именованный программный канал
Связь (link)
Сокет (socket)
Обычный файл. Обычный файл в ОСUnixявляется бесструктурным массивом байтов с прямым доступом. Вся интерпретация содержимого файла производится прикладной программой, обрабатывающей файл. К файлам этого типа относятся текстовые файлы, бинарные данные, исполняемые программы.
Каталог. С помощью каталогов формируется логическое дерево файловой системы. Каталог - это файл, содержащий имена находящихся в нем файлов, а также указатели на дополнительную информацию (метаданные), позволяющие операционной системе производить операции над этими файлами. Любая задача, имеющая право на чтение каталога, может прочесть его содержимое, но только ядро операционной системы имеет право на запись в каталог.
Специальный файл устройства. Внешние устройства вUnixтоже считаются файлами, чтобы с ними можно было работать посредством обычных файловых операций. Файлы, представляющие внешние устройства, бывают двух типов: блок-ориентированные и байт ориентированные.
Обмен с блок-ориентированным специальным файлом происходит таким образом, что особенности аппаратуры устройства остаются для пользователя невидимыми.
Одно и то же внешнее устройство может одновременно быть представлено как блок-ориентированным, так и байт-ориентированным специальным файлом.
Синтаксис имен, защита, способы доступа и операции для специального файла те же, что и для обычного файла. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.
FIFO или именованный программный канал. Этот тип файла характеризуется тем, что данные из него читаются в том порядке, в каком они были в него записаны. Служит для организации взаимодействия процессов и не может существовать без тех процессов, которые его используют.
Связь (link). В файловой системе ОСUnixкаталог содержит имена файлов и указатели на их метаданные (тип файла, права доступа к нему, длина, дата создания). Такой подход позволяет одному файлу иметь несколько имен в файловой системе. Имена жестко связаны с метаданными и, соответственно, с данными файла, в то время как сам файл существует независимо от того, как его называют в файловой системе.
Такая связь имени файла с его данными называется жесткой связью.
Особым типом файла является символическая связь, позволяющая косвенно адресовать файл. В отличие от жесткой связи, символическая связь адресует файл, который в свою очередь, ссылается на другой файл. Данные файла, являющегося символической связью, содержат только имя целевого файла.
Сокет (socket-гнездо). Гнёзда предназначены для взаимодействия между процессами. Интерфейс гнёзд часто используется для доступа к сетиTCP/IP. В системах ветвиBSDUnixна базе гнёзд реализована система межпроцессного взаимодействия, с помощью которой работают многие системные сервисы, например, система печати.
Состав стандартных каталогов
/bin- наиболее часто употребляемые команды и утилиты общего пользования;
/dev- специальные файлы устройств, являющиеся интерфейсом доступа к периферийным устройствам;
/etc- системные конфигурационные файлы и многие другие утилиты администрирования;
/lib- библиотечные файлы языка Си и других языков программирования;
/lost+found- каталог "потерянных" файлов
/mnt- стандартный каталог для временного связывания (монтирования) физических файловых систем к корневой для получения единого дерева файловой системы;
/home- общеупотребительный каталог для размещения домашних каталогов пользователей;
/usr -в этом каталоге находятся подкаталоги различных сервисных подсистем - системы печати, электронная почта и т.д. (/usr/spool); исполняемые файлы утилитUnix(/usr/bin); дополнительные программы, используемые на данном компьютере (/usr/local); заголовочные файлы (/usr/include); файлы справочной системыUnix(/usr/man) и т.д.
/var- вUnixSystemVэтот каталог является заменителем каталога /usr/spool, используемого для хранения временных файлов различных сервисных подсистем - систем печати, электронной почты и т.д.
/tmp- каталог хранения временных файлов, необходимых для работы различных подсистемUnix. Обычно этот каталог открыт на запись для всех пользователей системы.
Монтирование файловых систем
Одной из отличительных черт Unixявляется возможность монтирования файловых систем. Любая файловая система может быть прикреплена к общему дереву каталогов в произвольном месте (точке монтирования). В результате монтирования (для этого служит специальная командаmount) прикрепляемая файловая система оказывается включенной в общее дерево каталогов и пользователь, желая получить доступ к данным прикрепленной файловой системы просто переходит в каталог, к которому эта файловая система смонтирована. Демонтировать файловую систему, то есть исключить её из дерева каталогов, можно с помощью командыumount.