Общая модель и структура файловой системы.
Общая модель файловой системы
Функционирование любой файловой системы можно представить многоуровневой моделью (запрос к файлу=>символьный уровень->базовый->проверка прав доступа->логический->физический=>к подсистеме ввода-вывода), в которой каждый уровень предоставляет некоторый интерфейс (набор функций) вышележащему уровню, а сам, в свою очередь, для выполнения своей работы использует интерфейс (обращается с набором запросов) нижележащего уровня.
Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и может быть использовано операционной системой. В других файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается цепочка каталогов для определения уникального имени файла. В файловой системе UNIX, например, уникальным именем является номер индексного дескриптора файла (i-node).
На следующем, базовом уровне по уникальному имени файла определяются его характеристики: права доступа, адрес, размер и другие.характеристики файла могут входить в состав каталога или храниться в отдельных таблицах. При открытии файла его характеристики перемещаются с диска в оперативную память, чтобы уменьшить среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками в оперативную память перемещаются несколько первых блоков файла, содержащих данные.
Следующим этапом реализации запроса к файлу является проверка прав доступа к нему. Для этого сравниваются полномочия пользователя или процесса, выдавших запрос, со списком разрешенных видов доступа к данному файлу. Если запрашиваемый вид доступа разрешен, то выполнение запроса продолжается, если нет, то выдается сообщение о нарушении прав доступа.
На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись.
После определения номера физического блока, файловая система обращается к системе ввода-вывода для выполнения операции обмена с внешним устройством. В ответ на этот запрос в буфер файловой системы будет передан нужный блок, в котором на основании полученного при работе физического уровня смещения выбирается требуемая логическая запись.
Классификация файловых систем.
По предназначению файловые системы можно классифицировать на следующие категории:
1) Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется журналирование – это ведение журнала, хранящего список изменений, в той или иной степени помогающего сохранить целостность файловой системы, например в ext3, NTFS, XFS и др.
2) Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.
3) Для оптических носителей – CD и DVD: ISO9660, HFS, UDF и др.
4) Виртуальные файловые системы: AEFS и др.
5) Сетевые файловые системы: NFS, SSHFS, GmailFS и др.
Наиболее распространённые
FAT(file allocation table)
Таблица размещения файлов. Используется в DOS и Windows. Суть в наличии таблицы, в которой указаны участки диска(занятые,свободные,повреждённые)
Файловая система | FAT12 | FAT16 | FAT32 |
Создание | |||
Версия | 12bit | 16bit | 32bit |
Max размер файла | 32Мб | 2Гб | 4Гб |
Max размер раздела | 32Мб | 2Гб | 8Тб |
NTFS (new technology file system)
Стандартная файловая система для винды.Разрабатывалась для серверов=>надёжна(может самовосстанавливаться)
Max размер 16Эбайт(16*264 байт)
Ext 2fs (second extended file system)
Используется в Linux
Состоит из блока, группы блоков, индексного дескриптора и суперблока.
Меньший размер блока позволяет экономить место, но ограничивает max размер
Индексный дескриптор(инфоузел) содержит информацию об атрибутах и физическом расположении файла.
Суперблок содержит информацию о Файловой системе
При размере блока 4кб размер файла не может превышать 2 Тб.