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

Photo by rawpixel on Unsplash

Структура файловых систем

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

  1. Фрагментация файлов и их распределение на носителе
  2. Поиск файла по запросу программ
  3. Участие в создании, чтении и удалении файлов
  4. Работа с атрибутами файлов: изменение названия, размера, времени последнего изменения, доступ к файлу и многое другое
  5. Каталогизация и организация файлов

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

Что такое директория?

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

Обзор операций над директориями

Совокупность операций для управления директориями зависит от особенностей конкретной ОС. Рассмотрим в качестве примера некоторые системные вызовы, которые необходимы в работе: • Создание директории Для создания директорий в Linux используется команда mkdir • Удаление директории Для удаления можно использовать две команды: rmdir, если директория пуста и rm, если необходимо удалить указанную директорию вместе со всеми вложенными файлами и директориями • Открытие директории для последующего чтения С помощью команды ls мы можем просмотреть содержимое директории • Переименование Имена директорий можно менять, как и имена файлов. Для этого может быть использована команда mv, после которой указывается текущее наименование директории, а затем новое наименование. • Создание файла При создании нового файла необходимо добавить в каталог соответствующий элемент. С помощью команды touch можно создать новый файл в директории. • Удаление файла из директории Стоит отметить, что если удаляемый файл присутствует только в одной директории, то он в целом удаляется из файловой системы, в другом случае система ограничивается только удалением указанной записи. Для удаления файлов используется команда rm.

Методы реализации директории в файловой системе

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

Алиева Милена
Алиева Милена
Студентка РУДН

My research interests include distributed robotics, mobile computing and programmable matter.