Метод/ Файловая системаУправление свободными блоками Экстенты для свободного пространстваB-деревья для элементов каталоговB-деревья для адресации блоков файловЭкстенты для адресации блоков файловДанные внутри inode (небольшие файлы)Данные симво-льных ссылок внутри inodeЭлементы каталогов внутри inode (неболь-шие каталоги)
XFSB-деревья, индексированные по смещению и по размеруДаДаДаДаДаДаДа
JFSДерево+ Binary Buddy (1)НетДаДаДаНетДаДо 8
ReiserFS (2)На основе битовой картыПока не поддерживаетсяКак поддерево основного дерева файловой системыВнутри основного дерева файловой системыБудет реализовано в версии 4(3)(3)(3)
ext3fsext3fs не является файловой системой, созданной с нуля; она базируется на ext2fs, поэтому не поддерживает ни один из перечисленных выше методов; ext3fs предоставляет ext2fs поддержку журналирования, в то же время сохраняя обратную совместимость.
Примечания
  1. JFS использует иной подход к организации дерева блоков. Структура представляет собой дерево, где концевые узлы являются фрагментами битовой карты, а не непрерывными областями. Binary Buddy - это метод, используемый для управления и объединения вместе последовательных групп свободных логических блоков с целью формирования группы большего размера. Как уже было отмечено при обсуждении метода битовой карты, каждый бит в карте соответствует логическому блоку на диске. Значение бита "1" означает, что блок занят, "0" - свободен. Фрагменты битовой карты, каждый из которых содержит 32 бита, могут быть интерпретированы как шестнадцатеричные числа. Так, значение "FFFFFFFF" указывает, что блоки, соответствующие битам этого фрагмента битовой карты, все заняты. Наконец, за счет использования этого числа резервирования и другой информации JFS создает дерево, в котором можно быстро найти группу последовательных блоков определенного размера.
  2. Эта файловая система базируется на B*деревьях (усовершенствованная версия B+дерева). Основное различие сводится к тому, что каждый объект файловой системы размещается внутри общего B*дерева. Это значит, что для каждого каталога не создается своего дерева, но каждый каталог имеет поддерево в основном дереве файловой системы. Такой подход предполагает, что в ReiserFS применяются более сложные методы индексирования. Еще одно важное отличие состоит в том, что ReiserFS не использует экстенты, хотя в перспективе они будут поддерживаться.
  3. ReiserFS помещает каждый объект файловой системы внутри B*дерева. Эти объекты, каталоги, блоки файлов, атрибуты файлов, ссылки и так далее - все поддерживаются внутри одного и того же дерева. Для получения значения ключевого поля, необходимого для организации элементов внутри B-дерева, используются методы хеширования. Их несомненным достоинством является тот факт, что за счет изменения применяемого метода хеширования можно изменить способ, каким файловая система организует элементы и их относительное положение внутри дерева.

Поделитесь материалом с коллегами и друзьями