Файловая система vfat что это

Обновлено: 07.07.2024

Одинаковы ли файловые системы VFAT и FAT32 или есть какие-то различия между ними?

2 ответа

Что такое FAT?

FAT может показаться странным названием файловой системы, но на самом деле это аббревиатура от File Allocation Table. Представленный в 1981 году, FAT является древним с компьютерной точки зрения. Из-за своего возраста большинство операционных систем, включая Microsoft Windows NT®, Windows 98, Macintosh OS и некоторые версии UNIX, предлагают поддержку FAT.

Файловая система FAT ограничивает имена файлов соглашением об именах 8.3, что означает, что имя файла может иметь не более восьми символов до точки и не более трех после нее. Имена файлов в файловой системе FAT также должны начинаться с буквы или цифры и не могут содержать пробелов. Имена файлов не чувствительны к регистру.

А как насчет VFAT?

Возможно, вы также слышали о файловой системе под названием VFAT. VFAT - это расширение файловой системы FAT, представленное в Windows 95. VFAT поддерживает обратную совместимость с FAT, но смягчает правила. Например, имена файлов VFAT могут содержать до 255 символов, пробелов и нескольких точек. Хотя VFAT сохраняет регистр имен файлов, он не считается чувствительным к регистру.

Когда вы создаете длинное имя файла (более 8,3) с помощью VFAT, файловая система фактически создает два разных имени файла. Один из них - настоящее длинное имя файла. Это имя видно в Windows 95, Windows 98 и Windows NT (4.0 и новее). Второе имя файла называется псевдонимом MS-DOS®. Псевдоним MS-DOS - это сокращенная форма длинного имени файла. Файловая система создает псевдоним MS-DOS, беря первые шесть символов длинного имени файла (не считая пробелов), за которыми следуют тильда [

] и числовой конец. Например, имя файла Brien's Document.txt будет иметь псевдоним BRIEN '

1.txt.

Интересный побочный эффект возникает из-за того, как VFAT хранит свои длинные имена файлов. Когда вы создаете длинное имя файла с помощью VFAT, он использует одну запись каталога для псевдонима MS-DOS и другую запись для каждых 13 символов длинного имени файла. Теоретически одно длинное имя файла может занимать до 21 записи каталога. Корневой каталог имеет ограничение в 512 файлов, но если бы вы использовали максимальную длину длинных имен файлов в корневом каталоге, вы могли бы сократить это ограничение до 24 файлов. Поэтому вам следует очень экономно использовать длинные имена файлов в корневом каталоге. На другие каталоги это ограничение не распространяется.

Вам может быть интересно, почему мы обсуждаем VFAT. Причина в том, что он становится более распространенным, чем FAT, но помимо упомянутых выше различий, VFAT имеет те же ограничения. Когда вы говорите Windows NT отформатировать раздел как FAT, он фактически форматирует раздел как VFAT. Единственный раз, когда у вас будет настоящий раздел FAT под Windows NT 4.0, - это когда вы используете другую операционную систему, такую ​​как MS-DOS, для форматирования раздела.

FAT32

Обновлено упомянуто в комментарии Doktor-J (ассимилировано для обновления устаревшего ответа на случай, если комментарий когда-либо потеряно):

Я просто хотел бы отметить, что большинство современных операционных систем (WinXP / Vista / 7/8, MacOS X, большинство, если не все варианты Linux) могут читать FAT32, вопреки тому, что предлагает предпоследний абзац.

Оригинальная статья была написана в 1999 году и размещена на веб-сайте Microsoft, вероятно, в любом случае не касалась операционных систем сторонних производителей.

Операционные системы, "исключенные" этим абзацем, вероятно, являются исходной Windows 95, Windows NT 4.0, Windows 3.1, DOS и т. Д.

FAT32 вместе с FAT16 и FAT12 - это типы файловой системы, но vfat вместе с umsdos и msdos - это драйверы, используемые для монтирования FAT файловые системы в Linux. Выбор драйвера определяет, как некоторые функции применяются к файловой системе. Например, системы, смонтированные с драйвером msdos , не имеют длинных имен файлов (они используют 8.3 формат). vfat - самый распространенный драйвер для монтирования файловых систем FAT32 в настоящее время.

Вывод таких команд, как df и lsblk действительно показывает vfat как тип файловой системы. Но sudo file -sL /dev/<partition> показывает FAT (32 bit) , если файловая система - FAT32.

Вы можете подтвердить, что vfat является модулем, а не типом файловой системы, запустив modinfo vfat .

Одной из важнейших характеристик исходной FAT было использование имен файлов формата «8.3», в котором 8 символов отводится на указание имени файла и 3 символа – для расширения имени. К стандартной FAT (имеется в виду прежде всего реализация FAT16) добавились еще две разновидности, используемые в широко распространенных операционных системах Microsoft (Windows 95 и Windows NT): VFAT (виртуальная FAT) и FAT32, используемая в одной из редакций ОС Windows 95 и Windows 98. Ныне эта файловая система (FAT32) поддерживается и такими ОС, как Windows Millennium Edition, и всеми ОС семейства Windows 2000. Имеются реализации систем управления файлами для FAT32, Windows NT и ОС Linux.

Файловая система VFAT впервые появилась в Windows for Workgroups 3.11. С выходом Windows 95 в VFAT добавилась поддержка длинных имен файлов (long file name, LFN). Тем не менее VFAT сохраняет совместимость с исходным вариантом FAT; это означает, что наряду с длинными именами в ней поддерживаются имена формата «8.3», а также существует специальный механизм для преобразования имен «8.3» в длинные имена, и наоборот. Именно файловая система VFAT поддерживается исходными версиями Windows 95, Windows NT 4. При работе с VFAT крайне важно использовать файловые утилиты, поддерживающие VFAT вообще и длинные имена, в частности. Дело в том, что более ранние файловые утилиты DOS запросто модифицируют то, что кажется им исходной структурой FAT. Это может привести к потере или порче длинных имен из таблицы FAT, поддерживаемой VFAT (или FAT32). Следовательно, для томов VFAT необходимо пользоваться файловыми утилитами, которые понимают и сохраняют файловую структуру VFAT.

В исходной версии Windows 95 основной файловой системой была 32-разрядная VFAT. VFAT может использовать 32-разрядные драйверы защищенного режима или 16-разрядные драйверы реального режима. При этом элементы FAT остаются 12- или 16-разрядными, поэтому на диске используется та же структура данных, что и в предыдущих реализациях FAT. VFAT обрабатывает все обращения к жесткому диску и использует 32-разрядный код для всех файловых операций с дисковыми томами.

Основными недостатками файловых систем FAT и VFAT являются большие потери на кластеризацию при больших размерах логического диска и ограничения на сам размер логического диска. Это привело к разработке новой реализации файловой системы с использованием той же идеи использования таблицы FAT. Поэтому в Microsoft Windows 95 OEM Service Release 2 (эта версия Windows 95 часто называется Windows 95 OSR2) на смену системе VFAT пришла файловая система FAT32.

FAT32 является полностью самостоятельной 32-разрядной файловой системой и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT. Принципиальное отличие заключается в том, что FAT32 намного эффективнее расходует дисковое пространство. Прежде всего, система FAT32 использует кластеры меньшего размера по сравнению с предыдущими версиями, которые ограничивались 65535 кластерами на том (соответственно, с увеличением размера диска приходилось увеличивать и размер кластеров). Следовательно, даже для дисков размером до 8 Гбайт FAT32 может использовать 4-килобайтные кластеры. В результате по сравнению с дисками FAT16 экономится значительное дисковое пространство (в среднем 10-15 %).

FAT32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Расширенная загрузочная запись FAT32 позволяет создавать копии критических структур данных; это повышает устойчивость дисков FAT32 к нарушениям структуры FAT по сравнению с предыдущими версиями.

Кроме повышения емкости FAT до величины в 4 Тбайт, файловая система FAT32 вносит ряд необходимых усовершенствований в структуру корневого каталога. Корневой каталог в FAT32 представлен в виде обычной цепочки кластеров. Следовательно, корневой каталог может находиться в произвольном месте диска, что снимает действовавшее ранее ограничение на размер корневого каталога (512 элементов).

Windows 95 OSR2 и Windows 98 могут работать и с разделами VFAT, созданными Windows NT. To, что говорилось ранее об использовании файловых утилит VFAT с томами VFAT, относится и к FAT32. Поскольку прежние утилиты FAT (для FAT32 в эту категорию входят обе файловые системы, FAT и VFAT) могут повредить или уничтожить важную служебную информацию, для томов FAT32 нельзя пользоваться никакими файловыми утилитами, кроме утилит FAT32.

Необходимость представлять длинные имена и обеспечить совместимость с прежними версиями FAT привела разработчиков компании Microsoft к компромиссному решению: для представления длинного имени они стали использовать элементы каталога, в том числе и корневого.

Для длинного имени файла используется несколько элементов каталога. Таким образом, появление длинных имен фактически привело к дальнейшему уменьшению количества файлов, которые могут находиться в корневом каталоге. Поскольку длинное имя может содержать до 256 символов, всего один файл с полным длинным именем занимает до 25 элементов FAT (1 для имени 8.3 и еще 24 для самого длинного имени). Количество элементов корневого каталога VFAT уменьшается до 21. Очевидно, что это не самое изящное решение, поэтому компания Microsoft советует избегать длинных имен в корневых каталогах FAT при отсутствии FAT32, у которой количество элементов каталога соответственно просто увеличено.

Файловая система HPFS

Сокращение HPFS расшифровывается как «High Performance File System» – высокопроизводительная файловая система. HPFS впервые появилась в OS/2 1.2 и LAN Manager. HPFS была разработана совместными усилиями лучших специалистов компании IBM и Microsoft. Архитектура HPFS начала создаваться как файловая система, которая сможет использовать преимущества многозадачного режима и обеспечит в будущем более эффективную и надежную работу с файлами на дисках большого объема.

HPFS была первой файловой системой для ПК, в которой была реализована поддержка длинных имен. HPFS, как FAT и многие другие файловые системы, обладает структурой каталогов, но в ней также предусмотрены автоматическая сортировка каталогов и специальные расширенные атрибуты, упрощающие реализацию безопасности файлового уровня и создание множественных имен. HPFS поддерживает те же самые атрибуты, что и файловая система FAT, по историческим причинам, но также поддерживает и новую форму file-associated, то есть информацию, называемую расширенными атрибутами. Но самым главным отличием все же являются базовые принципы хранения информации о местоположении файлов.

Принципы размещения файлов на диске, положенные в основу HPFS, увеличивают как производительность файловой системы, так и ее надежность и отказоустойчивость. Для достижения этих целей предложено несколько способов: размещение каталогов в середине дискового пространства, использование методов бинарных сбалансированных деревьев для ускорения поиска информации о файле, рассредоточение информации о местоположении записей файлов по всему диску, при том что записи каждого конкретного файла размещаются (по возможности) в смежных секторах и поблизости от данных об их местоположении. Действительно, система HPFS стремится, прежде всего, к тому, чтобы расположить файл в смежных кластерах, или, если такой возможности нет, разместить его на диске таким образом, чтобы фрагменты (extents) файла физически были как можно ближе друг к другу. Такой подход существенно уменьшает время позиционирования головок записи/чтения жесткого диска и время ожидания (rotational latency) – задержка между установкой головки чтения/записи на нужную дорожку диска и началом чтения данных с диска). Можно сказать, что файловая система HPFS имеет, по сравнению с FAT, следующие основные преимущества:

работа с расширенными атрибутами, что позволяет управлять доступом к файлам и каталогам;

эффективное использование дискового пространства.

Все эти преимущества обусловлены структурой диска HPFS. Рассмотрим ее более подробно (рис. 3.6).

Рис. 3.6. Структура раздела HPFS

В начале диска расположено несколько управляющих блоков. Все остальное дисковое пространство в HPFS разбито на части («полосы», «ленты» из смежных секторов, в оригинале – band). Каждая такая группа данных занимает на диске пространство в 8 Мбайт и имеет свою собственную битовую карту распределения секторов. Эти битовые карты показывают, какие секторы данной полосы заняты, а какие – свободны. Каждому сектору ленты данных соответствует один бит в ее битовой карте. Если бит имеет значение 1, то соответствующий сектор занят, а если 0 – свободен.

Битовые карты двух полос располагаются на диске рядом, так же располагаются и сами полосы. То есть последовательность полос и карт выглядит следующим образом: битовая карта, битовая карта, лента с данными, лента с данными, битовая карта, битовая карта и т. д. Такое расположение «лент» позволяет непрерывно разместить на жестком диске файл размером до 16 Мбайт и в то же время не удалять от самих файлов информацию об их местонахождении.

Очевидно, что если бы на весь диск была только одна битовая карта (bit map), как это сделано в FAT, то для работы с ней приходилось бы перемещать головки чтения/записи в среднем через половину диска. Именно для того, чтобы избежать этих потерь, в HPFS и разбит диск на «полосы». Получается своего рода распределенная структура данных об используемых и свободных блоках.

Дисковое пространство в HPFS выделяется не кластерами, как в FAT, а блоками. В современной реализации размер блока взят равным одному сектору, но в принципе он мог бы быть и иного размера. По сути дела, блок – это и есть кластер. Размещение файлов в таких небольших блоках позволяет более эффективно использовать пространство диска, так как непроизводительные потери свободного места составляют в среднем всего 256 байт на каждый файл. Например, кластер на отформатированном под FAT диске объемом от 512 до 1024 Мбайт имеет размер 16 Кбайт. Следовательно, непродуктивные потери свободного пространства на таком разделе в среднем составляют 8 Кбайт (8192 байт) на один файл, в то время как на разделе HPFS эти потери всегда будут составлять всего 256 байт на файл. Таким образом, на каждый файл экономится почти 8 Кбайт.

На рис. 3.6 показано, что помимо «лент» с записями файлов и битовых карт в томе с HPFS имеются еще три информационные структуры. Это так называемый загрузочный блок (boot block), дополнительный блок (super block) и запасной (резервный) блок (spare block). Загрузочный блок (boot block) располагается в секторах с 0 по 15; он содержит имя тома, его серийный номер, блок параметров BIOS, который содержит информацию о жестком диске, и программу начальной загрузки. В дополнительном блоке (super block) содержится указатель на список битовых карт (bitmap blocklist). В этом списке перечислены все блоки на диске, в которых расположены битовые карты, используемые для обнаружения свободных секторов. Также в дополнительном блоке хранится указатель на список дефектных блоков (bad block list), указатель на группу каталогов (directory band), указатель на файловый узел (F?node) корневого каталога, а также дата последней проверки раздела программой CHKDSK. В списке дефектных блоков перечислены все поврежденные секторы (блоки) диска. Когда система обнаруживает поврежденный блок, он вносится в этот список и для хранения информации больше не используется. Кроме этого, в структуре super block содержится информация о размере «полосы».

Резервный блок (spare block) содержит указатель на карту аварийного замещения (hotfix map или hotfix-areas), указатель на список свободных запасных блоков (directory emergency free block list), используемых для операций на почти переполненном диске, и ряд системных флагов и дескрипторов. Этот блок размещается в 17 секторе диска. Резервный блок обеспечивает высокую отказоустойчивость файловой системы HPFS и позволяет восстанавливать поврежденные данные на диске.

Файлы и каталоги в HPFS базируются на фундаментальном объекте, называемом F-Node, в котором содержится информация о расположении файла и о его расширенных атрибутах. Эта структура характерна для HPFS и аналога в файловой системе FAT не имеет. Каждый файл и каталог диска имеет свой файловый узел F-Node. Каждый объект F-Node занимает один сектор и всегда располагается поблизости от своего файла или каталога (обычно – непосредственно перед файлом или каталогом). Объект F-Node содержит длину и первые 15 символов имени файла, специальную служебную информацию, статистику по доступу к файлу, расширенные атрибуты файла, список прав доступа и т. д.

Однако существенно больший (по сравнению с размещением Directory Band в середине логического диска) вклад в производительность HPFS дает использование метода сбалансированных двоичных деревьев для хранения и поиска информации о местонахождении файлов. Как известно, в файловой системе FAT каталог имеет линейную структуру, специальным образом не упорядоченную, поэтому при поиске файла требуется последовательно просматривать его с самого начала. В HPFS структура каталога представляет собой сбалансированное дерево с записями, расположенными в алфавитном порядке (рис. 3.7). Каждая запись, входящая в состав В-Тrее дерева, содержит атрибуты файла, указатель на соответствующий файловый узел, информацию о времени и дате создания файла, времени и дате последнего обновления и обращения, длине данных, содержащих расширенные атрибуты, счетчик обращений к файлу, длине имени файла и само имя, и другую информацию.

Рис. 3.7. Сбалансированное двоичное дерево

Файловая система HPFS при поиске файла в каталоге просматривает только необходимые ветви двоичного дерева (В-Тrее). Такой метод во много раз эффективнее, чем последовательное чтение всех записей в каталоге, что имеет место в системе FAT. Для того чтобы найти искомый файл в каталоге (точнее, указатель на его информационную структуру F-node), организованном на принципах сбалансированных двоичных деревьев, большинство записей вообще читать не нужно. В результате для поиска информации о файле необходимо выполнить существенно меньшее количество операций чтения диска.

Важное значение для повышения скорости работы с файлами имеет уменьшение их фрагментации. В HPFS считается, что файл является фрагментированным, если он содержит больше одного фрагмента. Снижение фрагментации файлов сокращает время позиционирования и время ожидания за счет уменьшения количества перемещений головок, необходимого для доступа к данным файла. Алгоритмы работы файловой системы HPFS работают таким образом, чтобы по возможности размещать файлы в последовательных смежных секторах диска, что обеспечивает впоследствии максимально быстрый доступ к данным.

Я искал в сети но не мог найти убедительного ответа. Являются ли файловые системы VFAT и FAT32 одинаковыми или между ними есть какие-либо различия?

1 ответ:

что такое жир?

FAT может звучать как странное имя для файловой системы, но на самом деле это аббревиатура для таблицы распределения файлов. Введенный в 1981 году, жир является древним в компьютерных терминах. Из-за своего возраста большинство операционных систем, включая Microsoft Windows NT®, Windows 98, Macintosh OS и некоторые версии UNIX, предлагают поддержку FAT.

файловая система FAT ограничивает имена файлов соглашением об именах 8.3, что означает, что имя файла может иметь не более восьми символов до периода и не более трех после. Имена файлов в файловой системе FAT также должны начинаться с буквы или цифры, и они не могут содержать пробелы. Имена файлов не чувствительны к регистру.

как насчет VFAT?

возможно, вы также слышали о файловой системе под названием VFAT. VFAT является расширением файловой системы FAT и был появившееся в Windows 95. VFAT поддерживает обратную совместимость с жиром, но ослабляет правила. Например, имена файлов VFAT могут содержать до 255 символов, пробелов и нескольких периодов. Хотя VFAT сохраняет регистр имен файлов,он не считается чувствительным к регистру.

при создании длинного имени файла (длиннее 8.3) с помощью VFAT файловая система фактически создает два разных имени файлов. Один из них-это фактическое длинное имя файла. Это имя отображается в Windows 95, Windows 98 и Windows NT (4.0 и более поздние версии). Второе имя файла называется псевдонимом MS-DOS®. Псевдоним MS-DOS-это сокращенная форма длинного имени файла. Файловая система создает псевдоним MS-DOS, беря первые шесть символов длинного имени файла (не считая пробелов), а затем тильду [

] и числовой трейлер. Например, имя файла документа Бриена.txt будет иметь псевдоним BRIEN '

1.формат txt.

интересный побочный эффект возникает в результате того, как VFAT хранит свои длинные имена файлов. Когда вы создаете длинное имя файла с помощью VFAT, он использует одну запись каталога для псевдонима MS-DOS и другую запись для каждых 13 символов длинного имени файла. Теоретически одно длинное имя файла может занимать до 21 записи каталога. Корневой каталог имеет ограничение в 512 файлов, но если бы вы использовали максимальную длину длинных имен файлов в корневом каталоге, вы могли бы сократить это ограничение до 24 файлов. Поэтому вы должны использовать длинные имена файлов очень экономно в корневом каталоге. Другой каталог не влияют на этот предел.

Вам может быть интересно, почему мы обсуждаем VFAT. Причина в том, что он становится более распространенным, чем жир, но помимо различий, о которых я упоминал выше, VFAT имеет те же ограничения. Когда вы говорите в Windows NT, чтобы отформатировать раздел, как жировой, это на самом деле форматирование раздела, что и vfat. Единственный раз, когда у вас будет настоящий раздел FAT под Windows NT 4.0, это когда вы используете другую операционную систему, такую как MS-DOS, для форматирования раздела.

FAT32

Обновлено упомянуто в комментарии Доктор-J (ассимилируется для обновления устаревшего ответа в случае, если комментарий когда-либо будет потерян):

Я просто хотел отметить, что большинство современных операционных систем (WinXP/Vista/7 / 8, MacOS X, большинство, если не все варианты Linux) могут читать FAT32, вопреки тому, что предлагает предпоследний абзац.

оригинальная статья была написана в 1999 году и размещена на веб-сайте Microsoft, вероятно, не была связана с операционными системами не Microsoft в любом случае.

операционные системы, "исключенные" этим пунктом, вероятно, являются оригинальными Windows 95, Windows NT 4.0, Windows 3.1, DOS, так далее.

я поискал в сети, но не нашел убедительного ответа. Являются ли файловые системы VFAT и FAT32 одинаковыми или между ними есть какие-либо различия?

что такое жир?

FAT может показаться странным именем для файловой системы, но на самом деле это аббревиатура таблицы распределения файлов. Введенный в 1981 году, жир является древним в компьютерных терминах. Из-за своего возраста большинство операционных систем, включая Microsoft Windows NT®, Windows 98, Macintosh OS и некоторые версии UNIX, поддерживают FAT.

файловая система FAT ограничивает имена файлов соглашением об именах 8.3, что означает, что имя файла может иметь не более восьми символов до периода и не более трех после. Имена файлов в файловой системе FAT также должны начинаться с буквы или цифры, и они не могут содержать пробелы. Имена файлов не учитывают регистр.

как насчет VFAT?

возможно, вы также слышали о файловой системе под названием VFAT. VFAT является расширением файловой системы FAT и был появившееся в Windows 95. VFAT поддерживает обратную совместимость с FAT, но расслабляет правила. Например, имена файлов VFAT могут содержать до 255 символов, пробелов и нескольких периодов. Хотя VFAT сохраняет регистр имен файлов,он не считается чувствительным к регистру.

когда вы создаете длинное имя файла (длиннее 8.3) с VFAT, файловая система фактически создает два разных имени файла. Один-это фактическое длинное имя файла. Это имя отображается в Windows 95, Windows 98 и Windows NT (4.0 и более поздние версии). Второе имя файла называется псевдонимом MS-DOS®. Псевдоним MS-DOS-это сокращенная форма длинного имени файла. Файловая система создает псевдоним MS-DOS, принимая первые шесть символов длинного имени файла (не считая пробелов), за которым следует Тильда [

] и числовой трейлер. Например, имя файла документа Brien.txt будет иметь псевдоним BRIEN '

1.формат txt.

интересный побочный эффект возникает из-за того, как VFAT хранит свои длинные имена файлов. Когда вы создаете длинное имя файла с VFAT, он использует одну запись каталога для псевдонима MS-DOS и другую запись для каждых 13 символов длинного имени файла. Теоретически одно длинное имя файла может занимать до 21 записи в каталоге. Корневой каталог имеет ограничение в 512 файлов, но если бы вы использовали максимальную длину длинных имен файлов в корневом каталоге, вы могли бы сократить это ограничение до 24 файлов. Поэтому вы должны использовать длинные имена файлов очень экономно в корневом каталоге. Другой каталог не затронуты этим пределом.

вам может быть интересно, почему мы обсуждаем VFAT. Причина в том, что он становится более распространенным, чем жир, но помимо различий, о которых я упоминал выше, VFAT имеет те же ограничения. Когда вы говорите Windows NT форматировать раздел как FAT, он фактически форматирует раздел как VFAT. Истинный раздел FAT В Windows NT 4.0 можно создать только при использовании другой операционной системы, например MS-DOS, для форматирования раздела.

файловая система FAT32

Обновлено, упомянутое в комментарии Доктор-J (ассимилируется для обновления устаревшего ответа в случае, если комментарий когда-либо потерян):

Я просто хотел отметить, что большинство современных операционных систем (WinXP/Vista/7 / 8, MacOS X, большинство, если не все варианты Linux) могут читать FAT32, вопреки тому, что предлагает предпоследний абзац.

оригинальная статья была написана в 1999 году и размещена на веб-сайте Microsoft, вероятно, не была связана с операционными системами, не относящимися к Microsoft.

операционные системы, "исключенные" этим абзацем, вероятно, являются оригинальными Windows 95, Windows NT 4.0, Windows 3.1, DOS, так далее.

Файловая система (ФС) является важной частью любой операционной системы, которая отвечает за организацию хранения и доступа к информации на каких-либо носителях. Рассмотрим в качестве примера файловые системы для наиболее распространенных в наше время носителей информации – магнитных дисков. Как известно, информация на жестком диске хранится в секторах (обычно 512 байт) и само устройство может выполнять лишь команды считать/записать информацию в определенный сектор на диске. В отличие от этого файловая система позволяет пользователю оперировать с более удобным для него понятием - файл. Файловая система берет на себя организацию взаимодействия программ с файлами, расположенными на дисках. Для идентификации файлов используются имена. Современные файловые системы предоставляют пользователям возможность давать файлам достаточно длинные мнемонические названия.

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

Рассмотрим более подробно структуру жесткого диска. Базовой единицей жесткого диска является раздел, создаваемый во время разметки жесткого диска. Каждый раздел содержит один том, обслуживаемый какой-либо файловой системой и имеющий таблицу оглавления файлов - корневой каталог. Некоторые операционные системы поддерживают создание томов, охватывающих несколько разделов. Жесткий диск может содержать до четырех основных разделов. Это ограничение связано с характером организации данных на жестких дисках IBM-совместимых компьютеров. Многие операционные системы позволяют создавать, так называемый, расширенный (extended) раздел, который по аналогии с разделами может разбиваться на несколько логических дисков.

В первом физическом секторе жесткого диска располагается головная запись загрузки и таблица разделов (табл. 1). Головная запись загрузки (master boot record, MBR) - первая часть данных на жестком диске. Она зарезервирована для программы начальной загрузки BIOS (ROM Bootstrap routine), которая при загрузке с жесткого диска считывает и загружает в память первый физический сектор на активном разделе диска, называемый загрузочным сектором (Boot Sector). Каждая запись в таблице разделов (partition table) содержит начальную позицию и размер раздела на жестком диске, а также информацию о том, первый сектор какого раздела содержит загрузочный сектор.

Размер (байт)

Загрузочная запись (MBR)

Запись 1 раздела

Запись 2 раздела

Запись 3 раздела

Запись 4 раздела

Табл. 1. Таблица деления диска

В широком смысле понятие "файловая система" включает:

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

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

Современные операционные системы стремятся обеспечить пользователя возможностью работать одновременно с несколькими файловыми системами. В этом случае ФС рассматривается как часть подсистемы ввода-вывода. В большинстве операционных систем (Windows 95, NT, OS/2) реализуется механизм переключения файловых систем (File System Switch, FSS), позволяющий поддерживать различные типы ФС. В соответствии с этим подходом информация о файловых системах и файлах разбивается на две части – зависимую от ФС и не зависимую. FSS обеспечивает интерфейс между ядром и файловой системой, транслируя запросы ядра в операции, зависящие от типа файловой системы. При этом ядро имеет представление только о независимой части ФС.

Файловая система представляет многоуровневую структуру (рис. 1), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между приложением и конкретной файловой системой, к которой обращается приложение. Переключатель файловых систем преобразует запросы к файлам в формат, воспринимаемый следующим уровнем - уровнем драйверов файловых систем. Для выполнения своих функций драйверы файловых систем обращаются к драйверам конкретных устройств хранения информации.

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

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие соглашения по именам файлов:

    • имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\[]:;|=,^*?
    • Длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.
      • регистр символов в именах файлов не различается и не сохраняется.

      Структура раздела FAT изображена на рисунке 2. В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (табл. 2). Кластер представляет собой минимальное пространство, которое может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую. В состав операционной системы входят различные утилиты (DoubleSpace, DriveSpace), предназначенные для уплотнения данных на диске.

      Блок параметров BIOS (BPB)

      Свое название FAT получила от одноименной таблицы размещения файлов. В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес кластера, содержащего следующую часть файла. Из-за этого FAT называют файловой системой со связанными списками. Оригинальная версия FAT, разработанная для DOS 1.00, использовала 12-битную таблицу размещения файлов и поддерживала разделы объемом до 16 Мб (в DOS можно создать не более двух разделов FAT). Для поддержки жестких дисков размером более 32 Мб разрядность FAT была увеличена до 16 бит, а размер кластера - до 64 секторов (32 Кб). Так как каждому кластеру может быть присвоен уникальный 16-разрядный номер, то FAT поддерживает максимально 2 16 , или 65536 кластеров на одном томе.

      Размер раздела

      Размер кластера

      512 Мб – 1023 Мб

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

      Каждому файлу и подкаталогу в FAT соответствует 32-байтный элемент каталога (directory entry), содержащий имя файла, его атрибуты (архивный, скрытый, системный и “только для чтения”), дату и время создания (или внесения в него последних изменений), а также прочую информацию (табл. 3).

      Размер (байт)

      Номер начального кластера с данными

      Табл. 3. Элемент каталога

      Файловая система FAT всегда заполняет свободное место на диске последовательно от начала к концу. При создании нового файла или увеличении уже существующего она ищет самый первый свободный кластер в таблице размещения файлов. Если в процессе работы одни файлы были удалены, а другие изменились в размере, то появляющиеся в результате пустые кластеры будут рассеяны по диску. Если кластеры, содержащие данные файла, расположены не подряд, то файл оказывается фрагментированным. Сильно фрагментированные файлы значительно снижают эффективность работы, так как головки чтения/записи при поиске очередной записи файла должны будут перемещаться от одной области диска к другой. В состав операционных систем, поддерживающих FAT, обычно входят специальные утилиты дефрагментации диска, предназначенные повысить производительность файловых операций.

      Еще один недостаток FAT заключается в том, что ее производительность сильно зависит от количества файлов, хранящихся в одном каталоге. При большом количестве файлов (около тысячи), выполнение операции считывания списка файлов в каталоге может занять несколько минут. Это обусловлено тем, что в FAT каталог имеет линейную неупорядоченную структуру, и имена файлов в каталогах идут в порядке их создания. В результате, чем больше в каталоге записей, тем медленнее работают программы, так как при поиске файла требуется просмотреть последовательно все записи в каталоге.

      Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу.

      FAT является наиболее распространенной файловой системой и ее в той или иной степени поддерживают большинство современных ОС. Благодаря своей универсальности FAT может применяться на томах, с которыми работают разные операционные системы.

      Хотя нет никаких препятствий использовать при форматировании дискет любую другую файловую систему, большинство ОС для совместимости используют FAT. Отчасти это можно объяснить тем, что простая структура FAT требует меньше места для хранения служебных данных, чем остальные системы. Преимущества других файловых систем становятся заметны только при использовании их на носителях объемом более 100 Мб.

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

      Высокопроизводительная файловая система HPFS (High Performance File System) была представлена фирмой IBM в 1989 году вместе с операционной системой OS/2 1.20. Файловая система HPFS также поддерживалась ОС Windows NT до версии 3.51 включительно. По производительности эта ФС существенно опережает FAT. HPFS позволяет использовать жесткие диски объемом до 2 Терабайт (первоначально до 4 Гбайт). Кроме того, она поддерживает разделы диска размером до 512 Гб и позволяет использовать имена файлов длиной до 255 символов (на каждый символ при этом отводится 2 байта). В HPFS по сравнению с FAT уменьшено время доступа к файлам в больших каталогах.

      HPFS распределяет пространство на диске не кластерами как в FAT, а физическими секторами по 512 байт, что не позволяет ее использовать на жестких дисках, имеющих другой размер сектора. Эти секторы принято называть блоками. Чтобы уменьшить фрагментацию диска, при распределении пространства под файл HPFS стремится, по возможности, размещать файлы в последовательных смежных секторах. Фрагмент файла, располагающийся в смежных секторах, называется экстентом.

      Для нумерации единиц распределения пространства диска HPFS использует 32 разряда, что дает 2 32 , или более 4 миллиардов номеров. Однако HPFS использует числа со знаком, что сокращает число возможных номеров блоков до 2 миллиардов. Помимо стандартных атрибутов файла, HPFS поддерживает расширенные атрибуты файла (Extended Attributes, EA), которые могут содержать до 64 Кб различных дополнительных сведений о файле.

      Диск HPFS имеет следующие три базовые структуры (рис. 3): загрузочный блок (BootBlock), дополнительный блок (SuperBlock) и резервный блок (SpareBlock).

      Битовая карта группы 1

      Битовая карта группы 2

      Битовая карта группы 3

      Битовая карта группы 4

      Рис. 3. Дисковый раздел HPFS

      Загрузочный блок в HPFS аналогичен загрузочному блоку в FAT. Он располагается в секторах с 0 по 15 и занимает на диске 8 Кб. Системные файлы, также как и в FAT, располагаются в корневом каталоге, но при этом физически могут находиться в любом месте на диске.

      В 16 секторе размещается дополнительный блок, содержащий указатель на список блоков битовых карт (bitmap block list). В этом списке перечислены все блоки на диске, в которых расположены битовые карты, используемые для обнаружения свободных секторов. Также в дополнительном блоке хранится указатель на список дефектных блоков (bad block list), указатель на группу каталогов (directory band), указатель на файловый узел корневого каталога и дата последней проверки диска. Файловый узел (fnode) – это структура диска HPFS, которая содержит информацию о расположении файла и о его расширенных атрибутах.

      В следующем секторе находится резервный блок, содержащий карту аварийного замещения (hotfix map), указатель на список свободных запасных блоков (directory emergency free block list) и ряд системных флагов. Резервный блок обеспечивает высокую отказоустойчивость HPFS и позволяет восстанавливать поврежденные данные на диске.

      Остальное пространство диска разделено на группы (band) хранения данных. Каждая группа занимает 8 Мб и имеет свою собственную битовую карту свободного пространства, которая похожа на таблицу размещения файлов FAT. Каждому сектору группы соответствует один бит к ее битовой карте, показывающий занят ли соответствующий сектор. Битовые карты двух групп располагаются на диске рядом, также как располагаются и сами группы. Это дает возможность непрерывно разместить на жестком диске файл размером до 16 Мб.

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

      В отличие от линейной структуры FAT, структура каталога в HPFS представляет собой сбалансированное дерево (так называемое B-дерево) с записями, расположенными в алфавитном порядке. Как показано на рисунке 4, сбалансированное дерево состоит из корневого (root block) и оконечных блоков (leaf block). Блоки занимают 4 последовательных сектора и в среднем могут содержать 40 записей. Каждая запись корневого блока указывает на один из оконечных блоков (если только в каталоге не меньше 40 файлов); в свою очередь, каждая запись в оконечном блоке указывает на файловый узел файла или на оконечный блок следующего уровня. Таким образом, двухуровневая структура может содержать 40 оконечных блоков по 40 записей в каждом и описывать до 1600 файлов. При поиске файловая система HPFS просматривает только необходимые ветви дерева.

      Рис. 4. Структура каталогов в HPFS

      Файловый узел имеет размер 512 байт и всегда по возможности располагается непосредственно перед первым блоком своего файла. Каждый файл и каталог диска HPFS имеет свой файловый узел. Информация, хранящаяся в файловом узле, включает в себя расширенные атрибуты файла, если они достаточно малы, чтобы поместится в один сектор диска, и сокращенное имя файла в формате 8.3. Если расширенные атрибуты не помещаются в файловый узел, то в него записывается указатель на них. Положение файла на диске описывается в файловом узле двумя 32-битными числами. Первое из чисел представляет собой указатель на первый блок файла, а второе - длину экстента. Если же файл фрагментирован, то его размещение описывается дополнительными парами 32-битных чисел. В файловом узле можно хранить информацию максимум о 8 экстентах файла. Если файл имеет больше число экстентов, то в его файловый узел записывается указатель на блок размещения (allocation block), который может содержать до 40 указателей на экстенты или на другие блоки размещения. Таким образом, двухуровневая структура блоков размещения может хранить информацию о 480 (12*40) секторах, что теоретически, позволяет работать с файлами размером до 7.68 Гб (12*40*16 Мб).

      Файловая система VFAT (Virtual FAT), реализованная в Windows NT 3.5, Windows 95 (DOS 7.0), - это файловая система FAT, включающая поддержку длинных имен файлов (Long File Name, LFN) в кодировке UNICODE (каждый символ имени кодируется 2 байтами). VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT, поэтому размер кластера определяется величиной раздела.

      В VFAT ослаблены ограничения, устанавливаемые соглашениями по именам файлов FAT:

        • имя может быть длиной до 255 символов.
        • в имя можно включать несколько пробелов и точек, однако, текст после последней точки рассматривается как расширение.
          • регистр символов в именах не различается, но сохраняется.

          Основной задачей при разработке VFAT была необходимость корректной работы старых программ, не поддерживающих длинные имена файлов. Как правило, прикладные программы для доступа к файлам используют функции ОС. Если у элемента каталога установить “нереальную” комбинацию битов атрибутов: “только для чтения”, “скрытый”, “системный”, “метка тома” – то любые файловые функции старых версий DOS и Windows не заметят такого элемента каталога. В итоге для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое в формате 8.3 для совместимости со старыми программами. Длинные имена (LFN) хранятся в специальных записях каталога, байт атрибутов, у которых равен 0Fh. Для любого файла или подкаталога непосредственно перед единственной записью каталога с его именем в формате 8.3 находится группа из одной или нескольких записей, представляющих длинное имя. Каждая такая запись содержит часть длинного имени файла не более 13 символов, из всех таких записей ОС составляет полное имя файла. Поскольку одно длинное имя файла может занимать до 21 записи, а корневой каталог FAT ограничен 512 записями, желательно ограничить использование длинных имен в корневом каталоге.

          Читайте также: