По способу физической организациисуществует несколько различных файловых систем. Рассмотрим наиболее распространенные из них
Файловая система FAT(FileAllocationsTable) – это одна из наиболее старых файловых систем для ПК, разработанная Биллом Гейтсом и Марком МакДональдом в 1977г. СистемаFATможет реализовываться на логических дискахHDD, наFDDи на других аналогичных носителях. При использовании системыFATвсе пространство данного диска делится на равные последовательно расположенные области –кластеры. Как было указано ранее, существует минимальный объем данных, называемый сектором (блоком), который может быть записан на жесткий диск или прочитан с жесткого диска. Объем кластера должен составлять целое число секторов. Каждый файл может состоять из одного или из нескольких кластеров в зависимости от своего размера. Минимальный размер файла на диске – один кластер. Весь диск делится на 5 разделов - загрузочный сектор (1-й сектор 1-й дорожки), областьFAT-таблицы, область копииFAT-таблицы, область каталога, область файлов. Первые 4 раздела занимают небольшой объем и содержат системную информацию.
В загрузочном секторе находится загрузочная запись, указывающая системеBIOSместонахождение на данном носителе загружаемой операционной системы. Если загрузочная запись отсутствует или в ней есть ошибка,BIOSсчитает, что на данном носителе загружаемая операционная система отсутствует.
В FAT-таблицехранится информация обо всех кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес следующего кластера этого файла. В записи, соответствующей последнему кластеру данного файла, вместо адреса следующего кластера ставится специальная метка. Отметим, что вFAT-таблице не содержатся имена файлов.Копия FAT-таблицы идентична самойFAT-таблице. Она используется для восстановления файлов в случае сбоев.
Каталог(корневая папка) содержит все имена файлов и подкаталогов (вложенных папок) со ссылкой на запись вFAT-таблице, указывающей на первый кластер данного файла. Кроме того, в каталоге указываются дополнительные характеристики (атрибуты) файла: дата и время создания, размер, дополнительные атрибуты (архивный, скрытый, системный, “только для чтения”).
Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу. Кроме того, т. к. DOS– 16-разрядная операционная система, то, соответственно,FAT– также 16-разрядная файловая система. Это означает, что максимальное количество кластеров на диске составляет 216(примерно 64000 тыс.). Это совсем немного. Еще один недостатокFAT-системы – сильное уменьшение скорости поиска файлов, при увеличении объема носителей. Наконец,FATне может поддерживать диски объемом более 2 ГБ.
В настоящее время FATиспользуется в основном для магнитных дискет (FDD).
Файловая система VFAT(VirtualFAT), реализованная в Windows 95/98 - это система FAT, дополненная поддержкой длинных имен файлов в кодировке UNICODE (каждый символ имени кодируется 2 байтами). VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT. В VFAT имя может быть длиной до 255 символов, в имя можно включать несколько пробелов и точек, текст после последней точки рассматривается как расширение, регистр символов в именах не различается, но сохраняется. Длинные имена по частям хранятся в специальных записях каталога. Для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое. Короткое имя генерируется файловой системой автоматически в формате 8.3 (имя из 8 символов, точка, расширение из 3-х символов).
Файловая система FAT32- это 32-разрядная файловая система, которая пришла на сменуVFAT, сохранив основные черты и принципы организации последней. FAT32 поддерживает жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows 95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу. ВFAT32 адрес каждого кластера стал 32 разрядным, что позволило иметь на диске до 232= 4 млрд. кластеров. ВFAT32 объем кластера должен быть не менее 4 кБ, а объем диска – не менее 512 МБ. Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге. Кроме того, для учета свободных кластеров, в зарезервированной области на разделе FAT32 имеется сектор, содержащий число свободных кластеров и номер самого последнего использованного кластера. Это позволяет системе при выделении следующего кластера не перечитывать заново всю таблицу размещения файла.FAT32 поддерживается в Windows 98, Windows ME, Windows 2000 и Windows XP.
Файловая система NTFS(NewTechnologyFileSystem) - наиболее предпочтительная файловая система при работе с ОС Windows 2000 иWindowsXP.
Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице - метафайле MFT (MasterFileTable). В отличие от файловой таблицы и каталогаFATметафайл является иерархической базой данных, позволяющей очень быстро осуществлять поиск нужного файла
NTFS является 64-разрядной файловой системой, что дает возможность иметь 264кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. NTFS позволяет хранить файлы размером до 16 эксабайт (264байт).
Файловая система NTFSявляетсяжурналируемой– все изменения в файловой системе записываются в специальный журнал транзакций (logfile), что позволяет восстанавливать файловую систему после сбоев системы.
В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов. NTFS позволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. .Начиная с NTFS 5.0введена возможность динамического шифрования файлов и каталогов, повышающая надежность хранения информации.
Файловые системы UFS(UnixFileSystem) – это семейство файловых систем для операционных системUNIX. Существует много различных версий ОСUNIX, разработанных разными фирмами, соответственно существуют и различные видыUFS, в том числе 32-разрядные и 64-разрядныеUSF. Так же как и в других файловых системах, вUFSфайл записывается в один или несколько (а может быть и в несколько сотен тысяч) кластеров. ОсобенностьюUSFявляется иерархическая кластерная структура файла, включающая кластеры, содержащие адреса других кластеров данного файла. Еще одной особенностьюUFSявляется очень мощная и разветвленная система защиты файлов от несанкционированного доступа – для этого файловая система содержит большое количество атрибутов. Классическая UFS поддерживает 14-буквенные имена файлов, современные UFS позволяют создавать длинные имена (до 255 символов).
Перечислим еще несколько современных файловых систем, близких по принципам построения к NTFSиUSF.
Файловая система HPFS(HighPerformanceFileSystem) была разработана вместе с операционной системойOS/2. По структуре и возможностям близка кNTFS. В настоящее время используется редко.
Файловые системы Linuxext, Linux ext2, Linux ext3(extendedfilesystem) специально разработаны под операционную системуLinux. Они обладают высокой надежностью и производительностью. Начиная сext3 файловая система становится журналируемой.
Файловая система XFS — высокопроизводительная 64-разрядная журналируемая файловая система, созданная компанией SiliconGraphics и поддерживаемая операционными системами Linux (начиная с версии 2.4.25) и. FreeBSD. Позволяет эффективно работать с данными на RAID-массивах и других носителях очень большого объема.
Для персональных компьютеров MacподMacOSXиспользуются файловые системыHFS(HierarchicalFileSystem),HFSPlus. Недавно для этих компьютеров была разработана высокопроизводительная 64- битная сетевая файловая системаXsan.
Одной из неприятностей, возникающих при работе с файловой системой, является фрагментация файлов – в процессе удаления файлов (очистки кластеров) и записи новых файлов (заполнения кластеров) неизбежно оказывается, что многие файлы состоят из кластеров, находящихся в разных частях диска. В результате сильно понижается скорость работы с диском (для чтения или записи фрагментированного файла магнитной головке необходимо последовательно перемещаться на все дорожки, содержащие кластеры этого файла). Для избежания этого необходимо периодически проводить процедуру дефрагментации диска– запускать специальную утилиту, которая собирает данные из всех кластеров каждого файла и записывает их в компактную область диска (насколько это возможно). Для эффективной работы процедуры дефрагментации необходимо, чтобы диск не был полностью занят, желательно, чтобы не менее 20 – 30% диска было свободно. Особенно это важно для файловой системыNTFS. Процедуру дефрагментации лучше проводить, не дожидаясь сильной фрагментации диска, т.к. время на эту процедуру резко возрастает с увеличением фрагментации. Для сильно фрагментированного диска процедура дефрагментации может потребовать несколько часов. Для проведения дефрагментации в состав ОСWindowsвходит утилита, которая так и называется Дефрагментация диска.
Некоторые из современных файловых систем не требуют запуска процедуры дефрагментации, а поддерживают возможность постоянной дефрагментации операционной системой в автоматическом режиме (дефрагментация «на лету»). Такая возможность предусмотрена, например, в файловой системе XFS.