
- •Раздел 1. Основные принципы построения операционных систем
- •Тема 1. Функции и состав операционных систем
- •Тема 2. Управление данными в операционных системах
- •Тема 3. Управление задачами в операционных системах
- •Тема 4. Архитектура 32-разрядных операционных систем Windows
- •Тема 5. Основные свойства и функции операционной системы unix
- •Тема 6. Компоненты операционной системы unix
- •Тема 7. Файловая система s5 операционной системы unix
- •Тема 8. Альтернативные операционные системы
Тема 7. Файловая система s5 операционной системы unix
Файл является фундаментальным объектом операционной системы UNIX. Все программное обеспечение хранится в файлах. Жесткий диск компьютера, на котором располагается ОС UNIX, состоит из нескольких логических частей, называемых разделами. В отличие от разделов диска, которые создаются для размещения в них различных операционных систем, логический раздел в области ОС UNIX называют слайс. Расположение и размеры слайса определяется при форматировании диска. В UNIX слайсы выступают в качестве независимых элементов, доступ к которым осуществляется как к различным носителям данных. Часть слайсов отводится для размещения файловых систем. В одном слайсе может располагаться только одна файловая система. Жесткий диск может содержать только один слайс, что позволяет создавать файловые системы большого размера. UNIX использует несколько типов файловых систем, отличающихся производительностью, функциональностью и надежностью хранения данных: S5, UFS, NFS, VXFS, EXT4 и т.д.
Рассмотрим файловую систему S5
Файловая система S5 занимает слайс диска и состоит из четырех основных компонентов:
Загрузочный блок |
Суперблок |
Массив индексных дескрипторов(i-узлов) |
Блоки данных |
Суперблок.
Содержит общую информацию о файловой системе:
тип файловой системы;
размер файловой системы в логических блоках, включая сам суперблок, массив дескрипторов и блоки данных;
размер массива индексных дескрипторов;
число свободных блоков, доступных для размещения;
число свободных блоков для размещения дескрипторов;
размер логического блока;
список номеров свободных дескрипторов;
список адресов свободных блоков.
Массив индексных дескрипторов.
Индексный дескриптор (i-узел) содержит информацию о файле. Каждый файл связан с одним i-узлом, хотя может иметь несколько имен в файловой системе, каждое из которых будет указывать на один и тот же i-узел.
Поля индексного дескриптора содержат следующую информацию:
1. тип файла и права доступа;
2. число ссылок на файл, т.е. количество имен, которые имеет файл в файловой системе;
3. идентификаторы владельца и группы;
4. размер файла в байтах;
5. номера устройств;
6. время последнего доступа к файлу;
7. время последней модификации файла;
8. время последней модификации i-узла;
9. массив адресов дисковых блоков, где хранятся данные файла.
Массив адресов дисковых блоков
Массив адресов дисковых блоков содержит информацию о расположении данных файла. Поскольку дисковые блоки хранения данных файла могут располагаться не последовательно, i-узел должен хранить физические адреса блоков, принадлежащих данному файлу. В индексном дескрипторе эта информация хранится в виде массива, каждый элемент которого содержит физический адрес дискового блока.
Массив имеет фиксированный размер и состоит из 13 элементов. Первые 10 элементов содержат адреса 1 уровня и адресуют непосредственно блоки хранения данных файла. Одиннадцатый элемент содержит адреса 2 уровня и адресует блоки, в свою очередь содержащий адреса 1 уровня, которые адресуют блоки хранения данных. Двенадцатый элемент обеспечивает такую же адресацию как и 11 элемент. Тринадцатый элемент используется для тройной косвенной адресации, когда для нахождения адреса блока хранения данных файла используется три дополнительных блока адресов.
Такой подход позволяет при относительно небольшом фиксированном размере индексного дескриптора поддерживать работу с большими файлами.
Организация файлов
Как и во многих современных операционных системах, в ОС UNIX файлы организованы в виде древовидной структуры, называемой файловой системой. Каждый файл имеет имя, определяющее его расположение в дереве файловой системы. Корнем этого дерева является корневой каталог, имеющий имя "/".
Для ОС UNIX характерно, что в системе может присутствовать несколько файловых систем, которые могут иметь различную внутреннюю структуру, а файлы, принадлежащие этим файловым системам, могут быть расположены на различных устройствах. Следует отметить, что имя файла является атрибутом файловой системы, а не набора данных на диске, в отличие от ОС Windows. Каждый файл в системе связан со своими информационными данными, хранящимися в индексных дескрипторах (i-узлах), которые содержат все характеристики файла, в том числе и указатели на дисковые блоки, где хранятся данные файла.
ОС UNIX для работы с файлами не использует их имя. Вся информация, необходимая операционной системе располагается в массиве дескрипторов, в котором данные файла однозначно связаны с порядковым номером соответствующего дескриптора.
Имя файла хранится вместе с номером его дескриптора в файлах специального типа – каталогах.
Имена файлов ОC UNIX состоят из комбинации символов ASCII. Длина имени может достигать 255 символов.
Имена файлов, которые начинаются с символа (.) относятся к скрытым файлам, которые не выводятся по умолчанию командой ls. Для того чтобы вывести имена скрытых файлов, необходимо использовать опцию –a в команде ls.
В именах файлов различаются заглавные и прописные буквы, поэтому имена Test и test относятся к различным файлам.
Первый символ первого слова каждой строки указывает на тип соответствующего файла:
- - обычный файл;
d – каталог;
l – символическая ссылка;
c,b - файл устройства.
Типы файлов
В ОС UNIX используется несколько различных типов файлов, различающихся по функциональному назначению и действиям операционной системы при выполнении тех или иных операций над файлами:
1. Обычный файл представляет собой наиболее общий тип файлов, содержащих данные. Для ОС они представляют собой неструктурированный набор данных. Интерпретация содержимого файла производится программой, обрабатывающей файл. К этим файлам относятся текстовые файлы, исполняемые программы, и т.д.
Обычные файлы содержат неструктурированную последовательность байтов. Программа, работающая с таким файлом, определяет его структуру и содержание. Обычно такие файлы можно отнести к одной из следующих категорий:
- Текстовые, содержащие набор символов. Например, письма, отчеты, командные файлы, используемые интерпретатором shell.
- Файлы, содержащие наборы числовых или текстовых данных какой-либо программы: Например, электронные таблицы, базы данных или документы текстовых редакторов.
- Исполняемые программы в двоичном коде, содержащие машинные коды и данные. Например, программы, связанные с выполнением команд ОС UNIX или прикладные программы.
2. Каталог. С помощью каталогов формируется логическое дерево файловой системы. Каталог - это файл, содержащий имена находящихся в нем файлов и указатели на дополнительную информацию, позволяющие операционной системе производить операции над этими файлами.
Каталоги являются специальными файлами, которые предназначены для организации иерархической структуры файловой системы. Каталоги определяют положение файла в дереве файловой системы, поскольку сам файл не содержит информации о своем местонахождении. Подобно обычным файлам, каталоги содержат данные, однако, в отличие от обычных файлов, ядро накладывает ограничения на структуру этих данных: каталоги содержат для каждого файла данные в виде записи "номер индексного дескриптора – имя файла":
Номер индексного дескриптора используется в качестве индекса блока таблицы индексов, где содержится вся информация о файле
Имя файла является текстовой информацией (ASCII). Каталог не может содержать одинаковые имена, относящиеся к нескольким файлам.
3. Специальный файл устройства обеспечивает доступ к физическому устройству. В UNIX различают 2 вида файлов устройств.
Символьные файлы связаны с драйверами устройств, использующими обмен данными с устройствами без разбивки информации на блоки, к которым относятся монитор, принтер, мышь.
Блочные файлы связаны с драйверами устройств, которые позволяют производить обмен данными в виде пакетов фиксированной длины – блоков.
Доступ к некоторым устройствам может осуществляться как через символьные, так и через блочные специальные файлы. Имена файлов устройств содержатся в каталоге /dev.
4. Символическая ссылка. Как было сказано выше, каталог содержит имена файлов и символические ссылки на их данные. Сами данные не содержат ни имени файла, ни указателя на это имя. Это позволяет одному файлу иметь несколько имен в файловой системе. Имена жестко связаны с данными файла, в то время как сам файл существует независимо от того, как его называют в файловой системе.
Символические ссылки – это специальные файлы, которые содержат в качестве данных символическую ссылку на другой файл. Эти данные указывают путь к файлу внутри файловой системы. Ядро системы автоматически определяет по содержимому файла символической ссылки место расположения файла в файловом дереве.
Контрольные вопросы.
Объяснить понятие слайс;
Основные компоненты файловой системы S5(4);
Состав суперблока(8);
Назначение массива индексных дескрипторов;
Информация в полях индексного дескриптора(9);
Назначение массива адресов дисковых блоков;
Назначение элементов массива адресов дисковых блоков(13);
Особенности организации файлов в ОС UNIX;
Особенности имен файлов в ОС UNIX;
Особенности обычных файлов и их категории(3);
Особенности и назначение каталогов;
Особенности специальных файлов устройства и их виды(2);
Особенности символических ссылок.