Современные файловые системы

подготовил Сбитнев В. C. (2006)

Содержание

  1. Определения

  2. Основные современные ФС

    1. FAT32 - замена FAT16
    2. HPFS - (High Performance File System) – новое решение/упор на скорость
    3. NTFS (New Technology File System) – надежность/безопасность
    4. ext2 (Second Extended file system) – стандарт в мире Linux
    5. ReiserFS (Reiser3) – попытка расширить горизонты ext2(3)
    6. UFS (Unix File System) – ext2 под BSD
    7. XFS – ext2 под IRIX
    8. HFS Plus – ФС для Mac OS
    9. Fossil – ФС для Plan
    10. ZFS (Zettabyte File System) – нет ограничениям
    11. NFS (Network File System) – Сетевая ФС
    12. WinFS (Windows Future Storage) – от ФС к СУБД

  3. Заключение

Определения

Под файловой системой (ФС) будем понимать набор спецификаций, отвечающих за создание, уничтожение, организацию, а также управление доступом к именованным областям памяти (файлам). Как правило, все современные операционные системы имеют соответствующее ФС специфическое программное обеспечение, называемое системой управления файлами (СУФ).

Несмотря на то, что понятия "ФС" и "СУФ" в большинстве источников отождествляют, в некоторых ситуациях важно помнить их отличия. Термин "ФС" определяет, прежде всего, принципы доступа к данным, организованных в файлы, а термин "СУФ" следует употреблять по отношению к конкретной реализации ФС, то есть это - комплекс программных модулей, обеспечивающих работу с файлами в конкретной операционной системе.

В настоящее количество ФС измеряется сотнями, причем по около 120-ти из них доступна документация в интернете. Среди этого числа автор выделяет 12 современных ФС, то есть ФС, получивших в настоящее время более широкое распространение.

Основные современные ФС

1. FAT32 - замена FAT16

К середине 90-х годов возможностей ФС FAT16 для передовых дисковых накопителей того времени стало не хватать. Главным образом, виной этому послужило ограничение на максимальный размер тома равный 2ГБ (при максимальном размере кластера в 64КБ). Продолжение увеличения размера кластера (очевидный подход к решению этой проблемы) вело к неудовлетворительному увеличению размера слэка. Другое решение состояло в переходе от 16-разрядной ФС к 32-разрядной, что и было сделано фирмой Microsoft, включившей новую ФС FAT32 в состав ОС Windows 95 OSR 2 в 1996 году.

Для сохранения совместимости со старыми программами структура FAT32 претерпела минимальные изменение относительно FAT16. Главные отличия от предыдущих версий FAT состоят в следующем. Блок начальной загрузки на разделах с FAT32 был увеличен до 2 секторов и включает в себя резервную копию загрузочного сектора, что позволяет системе быть более устойчивой к возможным сбоям на диске. Объем, занимаемый таблицей размещения файлов, увеличился, поскольку теперь каждая запись в ней занимает 32 байта, и общее число кластеров на разделе FAT32 составляет 228 (в 32-битном слове учитываются только 28 разрядов). Соответственно, выросло и количество зарезервированных секторов.

Кроме повышения максимального размера тома до 4ТБ и максимального размера файла до 4ГБ, FAT32 вносит ряд необходимых усовершенствований в структуру корневого каталога, который больше не располагается в определенном месте. Вместо этого в блоке BPB хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге. Кроме того, для учета свободных кластеров, в зарезервированной области на разделе FAT32 имеется сектор, содержащий число свободных кластеров и номер самого последнего использованного кластера. Это позволяет системе при выделении следующего кластера не перечитывать заново всю таблицу размещения файла.

Помимо перечисленных нововведений, в FAT32 существует множество унаследованных от FAT16 ограничений. Например, максимальная длина пути к файлу не должна превышать 260 символов, в то время как 255 из них может занимать имя файла.

2. HPFS - (High Performance File System) – новое решение/упор на скорость

Другой подход к решению проблем FAT16 демонстрирует ФС HPFS, разработанная специалистами Microsoft и IBM на основе опыта IBM по созданию файловых систем MVS, VM/CMS и виртуального метода доступа. Впервые HPFS появилась в 1988 году (на 8 лет раньше FAT32) как основа реализации ОС OS/2 1.2.

Диск в HPFS делится на сектора фиксированного размера (512 байт в текущей реализации, при этом номер сектора или их количество кодируются во внутренних структурах как 4-байтовое беззнаковое целое, что позволяет адресовать диски размером до (232 — 1) * 512 = 2ТБ).

В начале диска расположены несколько управляющих блоков:
  1. Загрузочный сектор DOS-овского вида (boot sector).
  2. SuperBlock содержит информацию о геометрии диска, указатели на битмапы свободного пространства, указатель на корневой каталог, размер дисковой полосы, номер полосы с каталогами, указатель на список сбойных блоков и т. п.
  3. SpareBlock содержит указатели на пул HOTFIX-areas, пул Fault-Tolerance областей, пул блоков для операций на почти переполненном диске и другие указатели, флаги и дескрипторы.
  4. Область начальной загрузки.
  5. Область секторов используемых (временно) для выполнения операций требующих дополнительную дисковую память. Эта область например, иногда задействуется при переименовании файла на заполненном диске.
  6. Другие области.
Для того чтобы определить, свободен ли сектор, HPFS использует битмапы, в которых каждый бит соответствует одному сектору. Если бит содержит 1 (соответственно 0), то это означает, что сектор занят (соответственно свободен). Если бы на весь диск был только один битмап, то для его подкачки приходилось бы перемещать головки чтения/записи в среднем через половину диска. Чтобы избежать этого, HPFS разбивает диск на «полосы» (bands) длиной по 8 мегабайт и хранит битмапы свободных секторов в начале или конце каждой полосы. При этом битмапы соседних полос располагаются рядом.

Расстояние между двумя битмапами равно 16MB. Размер полосы (8MB) может быть изменён в следующих версиях HPFS, так как на него нет прямых завязок. Размер битмапа равен 2K (8MB/512/8 = 2K).

Полоса, находящаяся в центре диска, используется для хранения каталогов. Эта полоса называется Directory Band. Однако, если она будет полностью заполнена, HPFS начнёт располагать каталоги файлов в других полосах.

Файлы и каталоги в HPFS базируются на фундаментальном объекте, называемом FNode. Каждая FNode занимает один сектор и всегда располагается в HPFS поблизости от своего файла или каталога (обычно непосредственно перед файлом или каталогом). FNode содержит длину и первые 15 символов имени файла, статистику по доступу к файлу, внутреннюю информацию, расширенные атрибуты и ACL (или только часть, если они очень большие), ассоциативную информацию о расположении и подчинении файла и т. д.

Имена файлов и каталогов при полной подстановке (от корня) не должны превышать 260 символов, при этом каждая компонента пути не должна быть длиннее 255 символов. При создании файла HPFS запоминает написание его имени, хотя и не различает регистров в дальнейших операциях, кроме тех, что возвращают информацию о файле.

С точки зрения размещения файлы, каталоги и их расширенные атрибуты (если они не помещаются в FNode) рассматриваются HPFS как наборы экстентов. Экстент — это кусок файла, лежащий в последовательных секторах. Каждый экстент описывается двумя числами: номером первого сектора и длиной (в секторах). Два последовательных экстента всегда объединяются HPFS в один. Минимальный размер экстента — один сектор. Так как расстояние между соседними битмапами свободных секторов равно 16MB, то и размер максимального экстента равен 16MB. Если файл состоит из восьми или менее экстентов, то его описание целиком хранится в FNode.

Если файл состоит более чем из восьми экстентов (реальные файлы состоят из 1-3 экстентов), то его описание может занимать несколько секторов, расположенных поближе к файлу, при этом эти сектора содержат не список, а прошитое сбалансированное дерево экстентов (B±Tree). Дерево построено так, что его разбалансировка никогда не превышает 1/3 по объёму, и оно не отличается от оптимального более чем на один уровень. Корень дерева находится в FNode, причём может содержать до 12 элементов. Каждый дополнительный сектор, представляющий собой ветку дерева, содержит до 60 элементов, а лист — 40 элементов. Таким образом, двухуровневая структура блоков размещения может хранить информацию о 480 секторах, что позволяет работать с файлами размером до 7.68ГБ. На практике размер файла не может превышать 2ГБ, что обусловлено реализацией СУФ.

При создании/расширении файлов HPFS пытается минимизировать количество экстентов, используя для этого статистику, битмапы свободных секторов и другую информацию. Например, HPFS старается условно резервировать хотя бы 4 килобайта места в конце файлов, которые растут. Другой прием: расположение конкурентно растущих файлов или файлов, открытых разными цепочками или процессами, в разных полосах диска.

Каталоги в HPFS, как и в FAT, образуют древовидную структуру. Но при этом внутри каталога HPFS строит сбалансированное дерево (B-Tree) на основе имён файлов для быстрого поиска файла по имени внутри каталога. Так, если каталог содержит 4096 файлов, FAT будет читать в среднем 64 сектора для поиска файла внутри каталога, а HPFS 2-4 сектора.

Размер блока, в терминах которых выделяются каталоги, равен 2KB в текущей версии HPFS. Размер записи, описывающей файл, зависит от размера имени файла. Если имя занимает 13 байтов (8.3), то 2-килобайтовый блок вмещает 41 описатель файлов. Блоки прошиты списком (как и описатели экстентов) для облегчения последовательного обхода.

При переименовании файла может возникнуть перебалансировка дерева. Эта операция может потребовать выделения дополнительных блоков на заполненном диске. В этом случае блоки берутся из специального пула, указатель на который лежит в SpareBlock.

Расширенные атрибуты и их разновидность ACL HPFS хранит в FNode. Если они не влезают в FNode, HPFS хранит из почти как файл, построив для этого B±Tree.

3. NTFS (New Technology File System) – надежность/безопасность

В 1993 году фирма Microsoft выпусила новую ФС для семейства ОС NT. При проектировании NTFS особое внимание внимание было уделено следующим характеристикам: NTFS превосходно справляется с обработкой больших массивов данных и достаточно хорошо проявляет себя при работе с томами объемом от 300-400 Мбайт и выше. Максимально возможные размеры тома и файла составляют 16ЭБ (220ТБ). Количество файлов в каталогах не ограничено. В основу структуры каталогов NTFS заложено B-Tree.

Как и многие другие системы, NTFS делит все полезное дисковое пространство тома на кластеры - блоки данных, адресуемые как единицы данных. NTFS поддерживает размеры кластеров от 512Б до 64КБ; стандартом же считается кластер размером 2 или 4 КБ.

M
F
T
З
о
н
а

M
F
T
   Зона для размещения   
файлов и каталогов
К
о
п
и
я
   Зона для размещения   
 файлов и каталогов 

Структура тома NTFS


Все дисковое пространство в NTFS делится на две неравные части. Первые 12% диска отводятся под так называемую MFT-зону - пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT. MFT (matrer file table) - это специальный файл, главная системная структура данных, которая и позволяет определять местонахождение всех остальных файлов. MFT поделен на записи фиксированного размера 1КБ (минимум 1КБ и максимум 4КБ), и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны ОС - они называются метафайлами, причем самый первый метафайл - сам MFT. Эти 16 элементов MFT - единственная часть диска, имеющая строго фиксированное положение. Копия первых 16 записей хранится в середине тома для надежности.

Каждый из упомянутых первых 16 файлов NTFS отвечает за какой-либо аспект работы системы и находится в корневом каталоге NTFS-тома. Все они начинаются с символа "$".

Имя
метафайла
Назначение метафайла
$MFT Сам Master File Table
$MFTmirr Копия первых 16 записей MFT
$LogFile Файл поддержки журналирования
$Volume Служебная информация - метка тома, версия ФС и т.д.
$AttrDef Список стандартных атрибутов на томе
$. Корневой каталог
$Bitmap Карта свободного места тома
$Boot Загрузочный сектор (если раздел загрузочный)
$Quota Файл, в котором записаны права пользователей на использование
дискового пространства (этот файл начал работать лишь
в Windows 2000 с системой NTFS 5.0)
$UpCase Файл - таблица соответствия заглавных и прописных букв в
именах файлов. В NTFS имена файлов записываются в Unicode
и искать большие и маленькие эквиваленты в данном случае
– нетривиальная задача

Метафайлы NTFS


Каждый файл в NTFS представлен с помощью потоков (streams), то есть у него нет как таковых "просто данных", а есть "потоки". Для правильного понимания потока дотаточно указать, что один из потоков и носит привычный нам смысл - данные файла. Но большинство атрибутов файла - тоже потоки. Таким образом, получается, что базовая сущность у файла одна - номер в MFT, а все остальное, включая и его потоки, - опционально.

Имя файла в NTFS, в отличие от FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла в NTFS - 255 символов.

4. ext2 (Second Extended File System) – стандарт в мире Linux

На заре развития Linux использовала файловую систему Minix. Эта файловая система была довольно стабильна, но имела жесткое ограничение в 64МБ на раздел. Так же присутствовало ограничение имени файла: оно составляло 14 символов. Эти и не только ограничения повлекли появление в апреле 1992 года «расширенной файловой системы» (extended file system), решавшей 2 главные проблемы Minix. Новая файловая система расширила ограничения на размер файла до 2ГБ и установила предельную длину файла в 255 символов. Но она все равно имела проблемы: не было поддержки раздельного доступа, временных меток модификации данных.

Решением всех проблем стала новая файловая система, разработанная в январе 1993 года. В ext2 были сразу реализованы соответствующие стандарту POSIX списки контроля доступа ACL и расширенные атрибуты файлов.

Граф, описывающий иерархию каталогов, файловой системы ext2 представляет собой сеть, это достигается тем, что один файл может входить сразу в несколько в каталогов.

Все типы файлов имеют символьные имена. В иерархически организованных файловых системах обычно используются три типа имен — файлов: простые, составные и относительные. Не является исключением и «вторая расширенная файловая система». Ограничения на простое имя состоят в том, что его длина не должна превышать 255 символов, а также в имени не должны присутствовать символ NUL и ‘/’. Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. В файловой системе ext2 файл может входить в несколько каталогов, а значит, иметь несколько полных имен; здесь справедливо соответствие «один файл — много полных имен». Однако, полное имя однозначно определяет файл.

Атрибутами файловой системы ext2 являются: Атрибуты файлов хранятся не в каталогах, как это сделано в ряде простых файловых систем, а в специальных таблицах. В результате каталог имеет очень простую структуру.

Как и в любой файловой системе UNIX, в составе ext2 можно выделить следующие составляющие: Всё пространство раздела диска разбивается на блоки фиксированного размера, кратные размеру сектора — 1024, 2048 и 4096 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет экономить место на жестком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера. С целью уменьшения фрагментации и количества перемещений головок жесткого диска при чтении больших массивов данных блоки объединяются в группы блоков.

Суперблок (Superblock)
Описания группы блоков (Group Descriptors)
Битовая карта блоков (Block Bitmap)
Битовая карта индексных дескрипторов (Inode Bitmap)
Таблица индексных дескрипторов (Inode Table)
Данные (Data)

Обобщенная структурная схема ФС ext2


Базовым понятием файловой системы является индексный дескриптор (информационный узел), information node, или inode. Это специальная структура, которая содержит информацию об атрибутах и физическом расположении файла.

Каждая группа блоков имеет одинаковое строение. Суперблок — основной элемент файловой системы ext2. Он содержит общую информацию о файловой системе: От целостности суперблока напрямую зависит работоспособность файловой системы. Операционная система создает несколько резервных копий суперблока для возможности его восстановления в случае повреждения. Описание группы блоков, представляет собой массив, содержащий общую информацию обо всех блоках раздела. Битовая карта блоков — это структура, каждый бит которой показывает, отведен ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Аналогичную функцию выполняет битовая карта индексных дескрипторов, показывая какие именно индексные дескрипторы заняты, а какие нет.

Все оставшееся место, обозначенное в таблице, как данные, отводится для хранения файлов.

Система адресации данных — это одна из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске. Файловая система ext2 использует следующую схему адресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если размер файла меньше или равен 12 блоков, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если размер файла превышает 12 блоков, то следующее 13-е поле содержит адрес кластера, в котором могут быть расположены номера следующих блоков файла. Таким образом, 13-й элемент адреса используется для косвенной адресации. При максимальном размере блока равном 4096 байт, 13-й элемент, может содержать до 1024 номеров следующих кластеров данных файла. Если размер файла превышает 12+1024 блоков, то используется 14-е поле, в котором находится номер блока, содержащего 1024 номеров блоков, каждый из которых хранят 1024 номеров блоков данных файла. Здесь применяется уже двойная косвенная адресация. И наконец, если файл включает более 12+1024+10242 = 1049612 блоков, то используется последнее 15-е поле для тройной косвенной адресации.

Таким образом, описанная выше система адресации, позволяет при максимальном размере блока 4 Кб иметь файлы размера до 2 терабайт.

ext2 достаточно быстра для того, что бы служить эталоном в тестах производительности ФС, но не является журналируемой, и это её главный недостаток. Развитием ext2 стала журналируемая файловая система ext3, полностью совместимая с ext2.

5. ReiserFS (Reiser3) – попытка расширить горизонты ext2(3)

ReiserFS — журналируемая ФС, разработанная специально для Linux компанией Namesys под руководством Ганса Рейзера(Hans Reiser) в 2001 году. Обычно под словом ReiserFS понимают третью версию (последняя - 3.6.19), а четвёртую, появившуюся в 2004 году, называют Reiser4. В настоящий момент разработка Reiser3 прекращена, чтобы сконцентрироваться на её преемнике.

В настоящее время ReiserFS поддерживается только для GNU/Linux, но может быть в будущем перенесена на другие платформы. Появившись в Linux версии 2.4.1, она стала первой журналируемой ФС включенной в ядро. ReiserFS — стандартная ФС для дистрибутивов Slackware, SuSE, Xandros, Yoper, Linspire и Kurumin Linux.

ReiserFS задумывалась как замена ext2, для этого она должна была быть лучше во всех отношениях, начиная с производительности и кончая надежностью и безопасностью. Действительно, ReiserFS демонстрирует обилие возможностей современных ФС: При работе с файлами меньше 4k, с включенной функцией tail packing превосходит по производительности ext2 и ext3 в 10—15 раз. ReiserFS это прекрасное решение для серверов Usenet, кэширующих HTTP прокси-серверов, почтовых серверов и в других местах, где критична скорость работы с малыми файлами. По заявлениям Namesys, Reiser4 в 2 раза превосходит по производительности ext2 при обычной работе.

Тем не менее, ReiserFS имеет много недостатков, которые не дают ей заменить ext2:

6. UFS (Unix File System) – ext2 под BSD

UFS - ФС, сделанная "по образу и подобию" ext2, для ОС 4.4BSD в 1994 году. UFS считается основной в FreeBSD, OpenBSD и NetBSD, также поддержка этой файловой системы имеется в операционных системах Linux и Solaris. В 2002 году вместе с ОС FreeBSD5.0 была выпущена ФС UFS2, реализовавшая многие возможности современных ФС и увеличившая максимальный размер тома/файла с 256ТБ/256ТБ в UFS до 1YiB/32ПБ соответственно.

Основным недостатком UFS является то, что журналирование так и не было в ней реализовано.

7. XFS – ext2 под IRIX

Аналогично UFS, при создании ФС XFS разработчики (фирма SGI) ориентировались на опыт ФС ext2. Выпущенная в 1994 году XFS также известна как система, обладающая лучшим журналированием среди современных ФС. Интересная особенность этой ФС (которую одни считают недостатком, а другие преимуществом) состоит в том, что удаленные в XFS файлы практически невосстановимы.

8. HFS Plus – ФС для Mac OS

HFS+ или HFS Plus - ФС, разработанная фирмой Apple в 1998 году (Mac OS 8.1) для замены HFS (Hierarchical File System) как основной ФС, используемой на компьютерах Macintosh.

HFS Plus - улучшенная версия HFS, поддерживающая файлы большего размера (ограничения составляют 16ЭБ на максимальный размер файла и тома) и использующая символы Unicode (вместо Mac OS Roman) в именах файлов.

Типичный раздел HFS Plus характеризуется 7-ю структурами:
  1. В секторах 0 и 1 раздела находятся блоки загрузки (boot blocks), также в разделе есть копии этих секторов.
  2. В секторе 2 находится заголовок раздела (Volume Header), содержащий широкое разнообразие данных о самом разделе: размер, дату и время создания, положение других структур раздела. Заголовок раздела всегда находится в одном и том же месте.
  3. Файл размещения (Allocation File), каждый бит которого соответствует, занятому блоки или свободному блоку. Ноль означает, что блок свободен, единица означает, что блок занят. Файл размещения хранится как обычный файл. Он не занимает специально зарезервированное место в начале диска, может изменяться в размерах и состоять из нескольких фрагментов.
  4. Файл каталогов (Catalog File) представляет собой B-Tree, хранящее записи о всех файлах и директориях, хранящихся на разделе. Запись в файле каталогов занимает 4КБ в Mac OS и 8КБ в Mac OS X.
  5. Файл переполнения экстентов (Extents Overflow File) также представляет собой B-Tree, хранящее записи об экстентах. Каждая запись файла каталогов может хранить информацию о 8-ми экстентах, при превышении этого числа используется файл переполнения экстентов. Информация об испорченных блоках также хранится в этом файле. Размер одной записи об экстенте равен 1КБ в Mac OS и 4КБ в Mac OS X.
  6. Файл аттрибутов (Attributes File) - нововведение HFS Plus относительно HFS, которое также представляет собой B-tree.
  7. Файл запуска (Startup File) спроектирован для ОС помимо Mac OS, не имеющих поддержки HFS и HFS+.
HFS+ поддерживает шифрование на уровне ФС, но не предоставляет возможностей сжатия.

9. Fossil – ФС для Plan 9

Fossil - ФС, созданная фирмой Bell Labs в 2003 году и устанавливаемая в ОС Plan 9 по умолчанию. Fossil идеально подходит для частого архивирования данных благодаря технологии "снимков" (snapshots). "Снимки" или копии данных, создающиеся по команде или автоматически, хранятся на диске, пока это позволяет объем свободного места.

10. ZFS (Zettabyte File System) – нет ограничениям!

ZFS - ФС, созданная фирмой Sun Microsystems в 2004 году для использования в ОС Solaris. Основной целью разработчиков ZFS было создание ФС, ограничения которой никогда не будут достигнуты на практике, поэтому ФС сделали 128-битной (это означает, что в ней может хранится в 18 квинтильонов раз больше информации, чем в 64-битных ФС). Руководитель проекта, Бонвик, так выразился по поводу ограничений ZFS: "Чтобы превысить ограничения 128-битной ФС потребуется хранилище, большее по размерам, чем Земля, и энергия, необходимая для того, чтобы осушить океаны".

Некоторые теоретические ограничения ZFS: Пример, иллюстрирующий, как велики эти числа: если 1000 файлов будут создаваться каждую секунду, потребуется 9000 лет для достижения предела.

Тем не менее существующие реализации ZFS имеют недостатки: с ZFS нельзя загружать ОС (не предусмотрена поддержка boot), в ФС не хватает шифрования.

11. NFS (Network File System) – Сетевая ФС

NFS - это протокол, первоначально разработанный фирмой Sun Microsystems в 1984 году и описанный в следующих RFC: 1094, 1813 и 3530 (отменяет 3010). NFS представляет собой распределенную ФС, позволяющую компьютеру получать доступ к файлам через сеть.

Более чем за 20 лет были выпущены различные версии реализаций NFS.

Версия 1 использовалась только для экспериментальных целей внутри Sun Microsystems.

Версия 2 (RFC 1094, март 1989) изначально функционировала через UDP, что означало, что протокол был без сохранения состояний.

Версия 3 (RFC 1813, июнь 1995) добавила: С введением 3-й версии NFS появилась поддержка TCP как транспортного уровня, что позволило сделать использование NFS в пределах WAN более осуществимым.

Версия 4 (RFC 3010, декабрь 2000; исправлено в RFC 3530, апрель 2003) включает в себя улучшения производительности, безопасности и представляет протокол с сохранением состояний. Версия 4 - первая версия, разработанная IETF после того, как Sun Microsystems передала ей права на разработку NFS протокола.

WebNFS - расширение 2-й и 3-й версий, которое позволяет интегрировать NFS в веб-браузеры и позволять работать через файерволы.

12. WinFS (Windows Future Storage) – от ФС к СУБД

WinFS - это система, представляющая собой нечто среднее между реляционной СУБД и ФС, как таковой.

История ее начинается еще с ранних 90-х годов с системы OFS (Object File System). OFS была частью проекта Ciaro, который был заброшен. Наработки по OFS были использованы в RFS (Relational File System), которая должна была стать существенным нововведением MSSQL 2000 (на деле оказавшимся незначительным расширением MSSQL 7.0). Проект RFS так и не был внедрен, но был трансформирован в WinFS, которую планировалось включить в Windows Vista в 2003 году. Этого также не произошло ввиду плохой производительности системы WinFS. Решено было сделать WinFS отдельным продуктом, но поддержку его в конце концов прекратили. WinFS прекратила свое существование, а ее наработки будут использованы в ADO.NET и MSSQL Server.

Заключение

С течением времени ФС претерпели значительные изменения. Раньше первостепенной задачей ФС являлось обеспечение максимальной производительности и минимизация хранимых служебных данных ввиду малого объема накопителей. Теперь с появлением быстрых и вместительных жестких дисков на первый план выходят надежность и безопасность хранения информации, современная ФС вобрала в себя многие возможности СУБД: механизмы транзакций, защиты данных, систему самовосстановления в результате сбоя.

Развитие файловых систем привело к изменению самого понятия "файл" от первоначальной именованой области внешней памяти, до понятия файла, как объекта, имеющего набор характеризующих его атрибутов (включая набор стандартных и атрибутов, определяемых пользователем).

За свою почти 30 летнюю историю файловая система прошла путь от простой системы, взявшей на себя функции управления файлами, до системы, представляющей собой полноценную СУБД, обладающую встроенным механизмом протоколирования и восстановления данных.

Использованные источники