Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСС.docx
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
546.05 Кб
Скачать

Тема 5.2. Файловая система Unix

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

План изложения материала

  1. Типы файлов

  2. Файлы данных

  3. Форматы хранения данных

  4. Выполняемые файлы

  5. Файлы устройств

  6. Файлы связей: жесткие и символические связи

  7. Каталоги и подкаталоги

  8. Дерево каталогов

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

Файловая система UNIX характеризуется:

  • иерархической структурой,

  • согласованной обработкой массивов данных,

  • возможностью создания и удаления файлов,

  • динамическим расширением файлов,

  • защитой информации в файлах,

  • трактовкой периферийных устройств (таких как терминалы и ленточные устройства) как файлов.

Файловая система организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: "/"); каждая вершина в древовидной структуре файловой системы, кроме листьев, является каталогом файлов, а файлы, соответствующие дочерним вершинам, являются либо каталогами, либо обычными файлами, либо файлами устройств. Имени файла предшествует указание пути поиска, который описывает место расположения файла в иерархической структуре файловой системы.

Рисунок 5.2.1. - Пример древовидной структуры файловой системы

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

Полное имя пути поиска начинается с указания наклонной черты и идентифицирует файл (вершину), поиск которого ведется от корневой вершины дерева файловой системы с обходом тех ветвей дерева файлов, которые соответствуют именам отдельных компонент.

Так, пути "/etc/passwd", "/bin/who" и "/usr/src/cmd/who.c" указывают на файлы, являющиеся вершинами дерева, изображенного на Рисунке 5.1, а пути "/bin/passwd" и "/usr/ src/date.c" содержат неверный маршрут. Имя пути поиска необязательно должно начинаться с корня, в нем следует указывать маршрут относительно текущего для выполняемого процесса каталога, при этом предыдущие символы "наклонная черта" в имени пути опускаются. Так, например, если мы находимся в каталоге "/dev", то путь "tty01" указывает файл, полное имя пути поиска для которого "/dev/tty01".

Файл, который является основной единицей системы UNIX, может быть:

обыкновенным файлом,

справочником,

специальным файлом или

символическим каналом связи.

Обыкновенные файлы.

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

Файлы данных.

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

Форматы хранения данных.

Различные пакеты программ хранят данные по-разному, т.е. используют свой особый формат записи символов для сохранения. Файлы, содержащие нечитаемые коды, называют двоичными. Многие программы сохраняют результаты своей работы таким образом. Чтобы увидеть содержимое файла, сохраненного в таком формате, наберите cat /bin/echo.

Существуют еще и ASCII-файлы (текстовые файлы). Этот вид файлов содержит символы кодов формата ASCII.

Выполнямые файлы.

Как и файлы данных, выполняемые файлы могут записываться в двоичном и в ASCII форматах. К выполняемым файлам относятся файлы, содержащие различные программы и команды. Некоторые маленькие программы, выполняющие одну конкретную задачу, называют командами. Большинство команд хранится в каталоге /usr/bin Есть особые команды, называемые скриптами shell. Скрипт shell - это файл, содержащий вызов одной или нескольких команд.

Например, наберите whereis cal. Эта команда определяет местонахождение файла cal. На самом деле это маленький скрипт. Его содержание можно просмотреть командой cat /usr/bin/whereis.

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

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

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

Специальные файлы устройств содержатся в каталоге /dev. В UNIX различают символьные (character) и блочные (block) файлы устройств. Символьные файлы устройств используются для небуферизированного обмена данными с устройством, блочные позволяют производить обмен данными в виде пакетов фиксированной длины - блоков.

Чтобы просмотреть список специальных файлов устройств, наберите ls /dev. Блочными файлами представлены, например, жесткие диски, а символьными - терминалы и принтеры.

Символические каналы связи. Файлы связей.

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

Жесткие связи.

UNIX позволяет одному физическому файлу иметь несколько имен в файловой системе. Имя файла является атрибутом файловой системы, а не набора данных на диске, который не имеет имени как такового, а имеет связанные с ним метаданные, содержащие все характеристики файла и позволяющие ОС выполнять открытие, прочтение, запись данных, создание и удаление файла. Связь имени файла с его данными называется жесткой связью. Для создания жесткой связи используют команду ln. Например, для создания еще одного имени (second) файла, на который уже указывает имя first используют команду ln first second.

Жесткие связи абсолютно равноправны. Хотя с точки зрения пользователя это два разных файла, изменения, внесенные в каждый из этих файлов, затронут и другой, ведь имена ссылаются на одни и те же данные файла. Даже после перемещения одного из файлов в другой каталог они все равно будут связаны жесткой связью с данными файла. Удаление одного из файлов не приведет к удалению другого. Информацию о наличии у файла нескольких имен и его жестких связях можно получить по команде ls -l. Во второй колонке указано число жестких связей.

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

Особым типом файлов является символическая связь. В отличие от жесткой связи, символическая связь ссылается не на данные файла, а на его имя. Данные файла, являющегося символической связью, содержат только имя целевого файла.

Команда ln -s создает символическую ссылку на указанный файл.

У команды ln в системе MINIX нет опции -s, создающей символическую связь.

ИМЯ

ln создает связь к файлу.

СИНТАКСИС

ln < имя файла > [имя файла связи]

ОПЦИИ

-v выводит на экран сообщение о том, что делает команда ln

-r позволяет создавать жесткие связи к каталогу и всем его файлам и подкаталогам.

ОПИСАНИЕ

ln создает жесткую связь к файлу.

ПРИМЕР

ln .profle pr1 создает жесткую связь pr1 к файлу profile.

Для того, чтобы узнать тип файла используется команда file.

ИМЯ

file определяет тип файла.

СИНТАКСИС

file < имя файла >

ОПИСАНИЕ

file проводит серию тестов, пытаясь классифицировать файлы, указанные в командной строке. Она сообщает, является ли файл выполняемым (executible), файлом ASCII, файлом данных и т.д.

ПРИМЕР

file /usr сообщит, что /usr - это каталог.

file /usr/bin/clr сообщит, что /usr/bin/clr является выполняемым файлом.

Имя файла может содержать любые буквы, знаки подчеркивания и цифры. Можно включать в имена точки и запятые. Имя файла не может начинаться с цифры, с точки. Символы "/", "?", "*" зарезервированы для применения в системе в качестве специальных и в именах файлов использоваться не должны. Максимальная длина имени файла -256 символов.

Имя файла может включать в себя расширение. Для отделения расширения от имени служит точка.

Файлы организованы в иерархическую систему каталогов. Каталог может содержать файлы или другие каталоги.

Каталоги и подкаталоги.

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

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

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

Большинство систем UNIX имеет стандартную структуру каталогов. Подкаталоги корневого каталога "/" относятся к числу важнейших подкаталогов: среди них /bin, /etc, /dev, /usr. Эти каталоги в свою очередь содержат другие каталоги, которые содержат системные конфигурационные файлы, программы и т.д.

Каждый пользователь имеет личный (домашний) каталог, который выделяется пользователю для хранения его файлов. Обычно пользовательский личный каталог находится под каталогом /home и называется именем пользователя. Когда вы входите в систему, вы автоматически оказываетесь в своем личном каталоге. В системе MINIX личный каталог является подкаталогом каталога /usr и носит название /usr/ < имя пользователя > .