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