Обзор операций над директориями и методов реализации директорий в файловых системах

Структура файловых систем
В данной теме необходимо начать с файловой системы и её структуры. Файловая система – инструмент, позволяющий операционной системе и программам обращаться к нужным файлам и работать с ними. Основные функции файловой системы:
- Фрагментация файлов и их распределение на носителе
- Поиск файла по запросу программ
- Участие в создании, чтении и удалении файлов
- Работа с атрибутами файлов: изменение названия, размера, времени последнего изменения, доступ к файлу и многое другое
- Каталогизация и организация файлов
Структура служебных данных файловой системы, например Unix, на одном из разделов диска может состоять из четырех основных частей. В начале раздела находится суперблок, который содержит в себе описание файловой системы (так, там содержится информация о типе файловой системы, о размере файловой системы в блоках и так далее). Наличие второго блока позволяет обращаться к данным на диске как к полноценной файловой системе, а не как к некоторой последовательности блоков. Массив индексных узлов (третий блок) содержит список индексов, соответствующих файлам данной файловой системы, размер этого массива определяется при установке системы, а максимальное количество файлов, которые могут быть созданы в файловой системе, определяется числом доступных индексных узлов. В блоках данных хранятся файлы и директории.
Что такое директория?
Иногда понятие директории путают с понятием обычного файла, но файл — это информационный блок, имеющий собственное имя, логическое представление и уникальный набор атрибутов. А директория - файл, имеющий вид таблицы и хранящий список входящих в него директорий и файлов, она служит для поддержания древовидной структуры файловой системы.
Обзор операций над директориями
Совокупность операций для управления директориями зависит от особенностей конкретной ОС. Рассмотрим в качестве примера некоторые системные вызовы, которые необходимы в работе: • Создание директории Для создания директорий в Linux используется команда mkdir • Удаление директории Для удаления можно использовать две команды: rmdir, если директория пуста и rm, если необходимо удалить указанную директорию вместе со всеми вложенными файлами и директориями • Открытие директории для последующего чтения С помощью команды ls мы можем просмотреть содержимое директории • Переименование Имена директорий можно менять, как и имена файлов. Для этого может быть использована команда mv, после которой указывается текущее наименование директории, а затем новое наименование. • Создание файла При создании нового файла необходимо добавить в каталог соответствующий элемент. С помощью команды touch можно создать новый файл в директории. • Удаление файла из директории Стоит отметить, что если удаляемый файл присутствует только в одной директории, то он в целом удаляется из файловой системы, в другом случае система ограничивается только удалением указанной записи. Для удаления файлов используется команда rm.
Методы реализации директории в файловой системе
Для доступа к файлу ОС использует путь, который сообщил ей пользователь. Запись в директории связывает имя файла (или имя поддиректории) с блоками данных на диске В зависимости от способа выделения файлу блоков диска эта ссылка может быть номером первого блока или номером индексного узла. В любом случае обеспечивается связь символьного имени файла с данными на диске.