Разделы жёсткого диска и файловые системы. Базовые понятия и азы работы. Диски и файловые системы

В ОС Windows поддерживается представление о файле как о не структурированной последовательности байтов.

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

Именование файлов

Для создания файла и присвоения ему имени в ОС Windows используется Win32-функция CreateFile. Максимальная длина полного имени файла при создании файла равна MAX_PATH со значением 260, но система позволяет использовать имена файлов длиной до 32000 символов в формате Unicode.

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

Атрибуты файлов

В ОС Windows считается, что файл - это не просто последовательность байтов, а совокупность атрибутов, и данные файла являются лишь одним из атрибутов - так называемый неименованный поток данных.

Атрибуты хранятся в виде пары: <наименование атрибута, значение атрибута> в записи о файле в главной файловой таблице MFT (Master File Table - "главная файловая таблица").

Перечень атрибутов файла NTFS

  • Стандартная информация - флаговые биты (только чтение, архивный), временные штампы.
  • Имя файла. Имя файла хранится в кодировке Unicode.
  • Описатель защиты (управление доступом к файлу).
  • Данные. Неименованный и именованный потоки данных.
  • Идентификатор объекта - 64 - разрядный идентификатор файла, уникальный для данного тома. Файл может быть открыт не только по имени, но и по этому идентификатору.
  • Информация о томе.
  • Информация об индексированнии, используемая для каталогов.
  • Данные EFS (Encryption File System), используемые для шифрования.

Организация файлов и доступ к ним. Понятие об асинхронном вводе-выводе

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

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

Директории. Логическая структура файлового архива

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

В полном имени файла ОС Windows поддерживает обозначения "." - для текущей директории, ".." - для корневого каталога.

Разделы диска. Операция монтирования

В ОС Windows принято разбивать физические диски на логические (это низкоуровневая операция), иногда называемые разделами (partition). Иногда, наоборот, объединяют несколько физических дисков в один логический. Имена логических дисков хранятся в каталоге "\?" пространства имён объектов. Указав букву диска, прикладная программа получает доступ к егэ файловой системе.

Windows позволяет пользователю создать точку монтирования - связать пустой каталог с каталогом логического диска. По успешном завершении операции содержимое этих каталогов будет соответствовать друг другу.

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

В ОС Windows файловая система интегрирована в систему ввода-вывода.

Кластеры

Обычно диски разбиты на блоки (секторы) размером - 512 б. Но удобнее оперировать блоками более крупного размера - кластера (cluster). Размер кластера равен размеру сектора, умноженному на кластерный множитель (claster factor), и может быть установлен во время операции форматирования диска. По умолчанию это значение равно 4 Кб.

NTFS поддерживает размеры 512, 1024, 2048, 4096, 8196, 16 КБ, 32 КБ, 64 К. Оптимальным является компромиссный размер блока, лежащий в диапазоне от 1-го до 8 Кб. Сжатие томов NTFS не поддерживается для размеров кластеров более 4096 Б. Система различает кластеры диска (volume claster) и кластеры диска, принадлежащие файлу (logical claster).

Общие сведения о файловых системах

Windows 2000 поддерживает следующие файловые системы: FAT, FAT32 и NTFS. В данном разделе содержатся краткие обзорные сведения об этих файловых системах. На выбор файловой системы оказывают влияние следующие факторы:

Цель, для которой предполагается использовать компьютер.

Аппаратная платформа.

Количество жестких дисков и их объем.

Требования к безопасности.

Используемые в системе приложения

Windows 2000 поддерживает распределенную файловую систему (Distributed File System, DFS) и шифрующую файловую систему (Encrypting File System, EFS). Хотя DFS и EPS и названы "файловыми системами", они не являются таковыми в строгом понимании этого термина. Так, DFS представляет собой расширение сетевого сервиса, позволяющее объединить в единый логический том сетевые ресурсы, расположенные в разделах с различными файловыми системами. Что касается EPS, то это - надстройка над NTFS, которая дополняет NTFS возможностями шифрования данных.

Файловые системы FAT и FAT32

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

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

По принципу построения FAT похожа на оглавление книги, т. к. операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах, и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS. Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). В MS-DOS v. 3.0 была введена 16-разрядная версия PAT для более крупных дисков. К настоящему моменту FAT 12 применяется на носителях очень малого объема (или на очень старых дисках). Например, все 3,5-дюймовые дискеты емкостью 1,44 Мбайт форматируются для FAT16, а все 5,25-дюймовые - для FAT12.

Том, отформатированный под FAT12 и FAT16, размечается по кластерам. Стандартный размер кластера, устанавливаемый по умолчанию, определяется размером тома (более подробная информация о размерах кластеров приведена далее в этой главе). Таблица расположения файлов и ее резервная копия содержат следующую информацию о каждом кластере тома:

Unused (кластер не используется).

Cluster in use by a file (кластер используется файлом).

Bad cluster (плохой кластер).

Last cluster in a file (последний кластер файла).

Корневая папка содержит записи для каждого файла и каждой папки, расположенных в корневой папке. Единственным отличием корневой папки от остальных является то, что она занимает четко определенное место на диске и имеет фиксированный размер (не более 512 записей для жесткого диска; для дискет этот размер определяется их объемом).

Имя (в формате 8.3).

Байт атрибутов (8 бит полезной информации, которая подробно описана ниже).

Время создания (24 бит).

Дата создания (16 бит).

Дата последнего доступа (16 бит).

Время последней модификации (16 бит).

Дата последней модификации (16 бит).

Номер начального кластера файла в таблице расположения файлов (16 бит).

Размер файла (32 бита).

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

Информация папок используется операционными системами, поддерживающими файловую систему FAT. Кроме того, Windows 2000 может хранить в записи папки дополнительную временную информацию (time stamps). Эти дополнительные временные атрибуты указывают, когда файл был создан и когда к нему в последний раз предоставлялся доступ. Главным образом, дополнительные атрибуты используются приложениями POSIX.

Файлы на дисках имеют 4 атрибута, которые могут сбрасываться и устанавливаться пользователем - Archive (архивный), System (системный), Hidden (скрытый) и Read-only (только чтение).

В Windows NT, начиная с версии 3.5, файлы, созданные или переименованные на томах FAT, используют биты атрибутов для поддержки длинных имен файлов методом, не вступающим в конфликт с методами доступа к тому, используемыми операционными системами MS-DOS и OS/2. Для файла с длинным именем Windows NT/2000 генерирует короткое имя в формате 8.3. Кроме этого стандартного элемента Windows NT/2000 создает для файла одну или несколько дополнительных записей, по одной на каждые 13 символов длинного имени. Каждая из этих дополнительных записей содержит соответствующую часть длинного имени файла в формате Unicode. Windows NT/2000 устанавливает для дополнительных записей атрибуты тома, а также скрытого системного файла, предназначенного только для чтения, чтобы

пометить их как части длинного имени файла, MS-DOS и OS/2 обычно игнорируют записи папок, для которых установлены все эти атрибуты, поэтому такие записи для них невидимы. Вместо этого MS-DOS и OS/2 получают доступ к файлу по стандартному короткому имени файла в формате 8.3.

Windows NT, начиная с версии 3.5, поддерживает длинные имена файлов на томах FAT. Эту устанавливаемую по умолчанию опцию можно отключить, задав значение 1 для параметра реестра Win31FileSystem, входящего в состав следующего ключа реестра:

HKEY_LOCAL_MACH IN E\System\CiirrentControlSet\Control\FileSystem

Установка этого значения не позволит Windows NT создавать на томах FAT файлы с длинными именами, но не повлияет на уже созданные длинные имена.

В Windows NT/2000 FAT16 работает точно так же, как и в MS-DOS, Windows 3.1х и Windows 95/98. Поддержка этой файловой системы была включена в Windows 2000, поскольку она совместима с большинством операционных систем других фирм-поставщиков программного обеспечения. Помимо этого, применение FAT16 обеспечивает возможность обновления более ранних версий операционных систем семейства Windows до Windows 2000.

32-разрядная файловая система FAT32 была введена с выпуском Windows 95 OSR2 и поддерживается в Windows 98 и Windows 2000. Она обеспечивает оптимальный доступ к жестким дискам, CD-ROM и сетевым ресурсам, повышая скорость и производительность всех операций ввода/вывода. FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт.

Том, отформатированный для использования FAT32, как и том FAT16, размечается по кластерам. Размер кластера по умолчанию определяется размером тома. В табл. 7.1 приведено сравнение размеров кластеров для FAT16 и FAT32 в зависимости от размера диска.

Для обеспечения максимальной совместимости с существующими прикладными программами, сетями и драйверами устройств, FAT32 была реализована с минимумом возможных изменений в архитектуре и внутренних структурах данных. Все утилиты Microsoft, предназначенные для работы с дисками (Format, FDISK, Defrag и ScanDisk), были переработаны для обеспечения поддержки FAT32. Кроме того, Microsoft проводит большую работу по поддержке ведущих фирм-производителей драйверов устройств и утилит для работы с диском, чтобы помочь и в обеспечении поддержки FAT32 в их продуктах. В табл. 7.2 сделана попытка сравнения характеристик FAT16 и FAT32.

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

Файловая система Windows NT (NTFS) обеспечивает такое сочетание производительности, надежности и эффективности, которое невозможно предоставить с помощью любой из реализаций FAT (как FAT16, так и FAT32). Основными целями разработки NTFS являлись обеспечение скоростного выполнения стандартных операций над файлами (включая чтение, запись, поиск) и предоставления дополнительных возможностей, включая восстановление поврежденной файловой системы на чрезвычайно больших дисках.

NTFS обладает характеристиками защищенности, поддерживая контроль доступа к данным и привилегии владельца, играющие исключительно важную роль в обеспечении целостности жизненно важных конфиденциальных данных. Папки и файлы NTFS могут иметь назначенные им права доступа вне зависимости от того, являются они общими или нет. NTFS - единственная файловая система в Windows NT/2000, которая позволяет назначать права доступа к отдельным файлам. Однако, если файл будет скопирован из раздела или тома NTFS в раздел или на том FAT, все права доступа и другие уникальные атрибуты, присущие NTFS, будут утрачены.

Файловая система NTFS, как и FAT, в качестве фундаментальной единицы дискового пространства использует кластеры. В NTFS размер кластера по умолчанию (когда он не задается ни командой format, ни в оснастке Управление дисками) зависит от размера тома. Если для форматирования тома NTFS используется утилита командной строки FORMAT, то нужный размер кластера можно указать в качестве параметра этой команды. Размеры кластеров по умолчанию приведены в табл. 7.3.

Форматирование тома для NTFS приводит к созданию нескольких системных файлов и главной таблицы файлов (Master File Table, MFT). MFT содержит информацию обо всех файлах и папках, имеющихся на томе NTFS. NTFS - это объектно-ориентированная файловая система, которая обрабатывает все файлы как объекты с атрибутами. Практически все объекты, существующие на томе, представляют собой файлы, а все что имеется в файле, представляет собой атрибуты - включая атрибуты данных, атрибуты системы безопасности, атрибуты имени файла. Каждый занятый сектор на томе NTFS принадлежит какому-нибудь файлу. Частью файла являются даже метаданные файловой системы (информация, которая представляет собой описание самой файловой системы).

В Windows 2000 была введена новая версия NTFS - NTFS 5.0. Новые структуры данных, появившиеся в составе этой реализации, позволяют использовать новые возможности Windows 2000, например, квоты на использование диска для каждого пользователя, шифрование файлов, отслеживание ссылок, точки перехода (junction points), встроенные наборы свойств (native

property sets). Кроме того, добавлять дополнительное дисковое пространство к томам NTFS 5.0 можно без перезагрузки. Новые возможности NTFS 5.0 приведены в табл. 7.4.

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

Ограничения файловых систем и вопросы совместимости

В приведенных ниже таблицах (табл. 7.5 и 7.6) собраны данные о совместимости файловых систем NTFS и FAT, а также ограничения, налагаемые на каждую из этих файловых систем.

Таблица

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

Мы привыкли воспринимать информацию на нашем ПК в виде конкретных файлов, аккуратно (или не очень:)) разложенных по папкам. А, между тем, Ваш компьютер работает с данными совсем по иному принципу. На жёстком диске для него не существует цельных файлов. Он "видит" лишь чётко адресованные секторы с байт-кодом. Причём код одного файла не всегда хранится в соседних секторах (так называемая фрагментация данных).

Как же компьютер "понимает", где ему, например, искать наш текстовый документ, который лежит, скажем, на Рабочем столе? За это, оказывается, отвечает файловая система жёсткого диска. И сегодня мы с Вами узнаем, какие бывают файловые системы и каковы их особенности.

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

Чтобы понять, что такое файловая система, лучше всего воспользоваться методом аналогий. Представим, что жёсткий диск - это некий ящик, в котором хранятся разноцветные кубики. Эти кубики - части разных файлов, хранящихся в ограниченных по размеру ячейках, называемых кластерами . Они могут быть просто навалены кучей или иметь определённый порядок размещения. Так вот, если эти условные кубики хранятся не хаотичной грудой, а в соответствии с какой-то логикой, мы и можем говорить о наличии некоего аналога файловой системы.

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

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

В первом случае все файлы отображаются в виде единого плоского списка, а во втором - в виде иерархического. Уровень вложений при этом, как правило, неограничен, а ветвление идёт либо только от одного ("root" в UNIX), либо от нескольких корневых каталогов (логические диски в Windows):

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

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

Гораздо же более часто журналируются только логические операции и (опционально) состояние кластеров файловой системы. То есть, в журнал записывается только то, что, скажем, файл с именем "file.txt" размером 52 КБ был записан в такие-то кластеры. Содержимое же самого файла в логе никак не значится. Такой подход позволяет избежать дублирования данных, ускоряет процессы работы с файлами и уменьшает в разы размеры самого журнала. Единственный недостаток при таком способе журналирования - при сбое могут быть потеряны записываемые данные (поскольку их копии нет), но само состояние файловой системы останется работоспособным.

Форматирование

Поскольку мы говорим о файловых системах в контексте современных компьютеров с их жёсткими или SSD-дисками, то большее внимание мы уделим именно многоуровневым ФС с произвольным доступом к кластерам. Наиболее популярными в компьютерном мире сегодня являются: FAT32, NTFS, exFAT, ext3/ext4, ReiserFS и HFS+.

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

Для форматирования можно воспользоваться штатными средствами операционной системы (например, консольными командами Linux или контекстным меню диска в Windows), функциями, доступными на подготовительном этапе установки ОС, или же специальными программами. Единственное, что следует учесть при программном решении, так это то, что Ваша операционная система может не поддерживать выбранную Вами файловую систему без установки дополнительных драйверов (например, ext3/4 в Windows):

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

Осуществляется оно сейчас при помощи специального софта (HDD Low Level Format Tool для Windows) или команд (DD для Linux). При его применении все кластеры жёсткого диска перезаписываются нулями и полностью уничтожается любая разметка. После этого файловая система фактически исчезает и в Windows отображается как RAW . Чтобы получить доступ к диску после такого форматирования, нужно отформатировать его в одной из доступных традиционных файловых систем более высокого уровня.

Особенности файловых систем

Ну а теперь рассмотрим некоторые особенности самых распространённых файловых систем.

FAT32

Одна из самых старых файловых систем для дисков, которая ещё широко используется в наши дни - FAT32 (сокр. англ. "File Allocation Table" - "таблица размещения файлов"). В силу своей распространённости, она поддерживается максимальным числом всевозможного оборудования, начиная с автомагнитол, кончая мощными современными компьютерами. Большинство флеш-накопителей, продаваемых сегодня, тоже отформатированы в FAT32.

Впервые данная ФС появилась в Windows 95 OSR2 в 1996 году, став логическим развитием ещё более ранней FAT16 (1983 год). Одной из основных причин перехода на новую файловую систему стало появление ёмких (по тем временам) жёстких дисков объёмом более 2 ГиБ (гибибайт - более точный вариант гигабайта (109 ) - 230 байт) (максимально возможный размер раздела в FAT16). FAT32 позволила использовать до 268 435 445 кластеров максимум по 32 КБ, что эквивалентно 8 ТиБ на том. Однако, если размер кластера будет стандартным (512 Б), то максимальный размер тома будет лишь чуть более 127 ГБ.

Основой FAT32, как следует из её названия, является файловая таблица. Она хранит в себе записи об имеющихся файлах, а также о времени их создания и последнего доступа к ним. Журналирование отсутствует, поэтому процессы чтения/записи в этой файловой системе происходят быстрее, нежели, например, в NTFS, которая ведёт более полные логи. Именно по причине хорошего быстродействия FAT32 всё ещё широко используется в наши дни.

Главным же недостатком FAT32 на данный момент является ограничение на максимальный размер файла - 4 ГиБ. Файлы, превышающие данный порог, должны быть разбиты на части, что в свою очередь, затрудняет доступ к ним. Кроме того, FAT32 имеет ещё некоторые ограничения в среде Windows. Например, штатными средствами Вы не сможете создать разделы более 32 ГБ. Поэтому флешки на 64 ГБ и более придётся форматировать либо при помощи специального софта, либо на Linux.

Однако, и в этом случае, хоть доступ к носителю и сохранится, но он будет затруднён "тормозами" как при чтении, так и при записи данных. Поэтому при использовании накопителей объёмом более 32 ГБ лучше отформатировать их в иных файловых системах, вроде exFAT или NTFS.

NTFS

Если линейка Windows 95/98 продолжала традиции уже на тот момент устаревающей операционной системы DOS, то новая линейка NT изначально была направлена на инновации. Поэтому с появлением Windows NT 3.1 в 1993 году специально под неё была создана новая файловая система NTFS (сокр. англ. "New Technology File System" - "файловая система новой технологии").

Эта файловая система до сих пор является основной для всех современных версий Windows, поскольку обеспечивает неплохую скорость работы, поддерживает накопители объёмом до 16 ЭиБ (эксбибайт - 260 ) (при максимальном размере кластера в 64 КБ) без ограничений по размерам файлов и имеет в своём арсенале довольно неплохой функционал. Например, NTFS является журналируемой файловой системой, а также поддерживает распределение ролей пользователей для доступа к отдельным данным, чего не было в той же FAT32.

Как и в FAT32, основой NTFS является таблица, но она являет собой более совершенную базу данных и называется MFT (сокр. англ. "Master File Table" - "главная файловая таблица"). Строки в этой таблице соответствуют файлам, хранящимся на конкретном разделе, а столбцы содержат атрибуты этих файлов (дата создания, размер, права доступа и т.п.).

Кроме того, для повышения отказоустойчивости в NTFS ведётся журнал USN (сокр. англ. "Update Sequence Number" - досл. "номер порядка обновления"). В этот журнал, аналогично таблице FAT32, записываются данные об изменениях того или иного файла. Однако, если в таблице FAT32 записывалось только время последнего доступа к данным, что не давало никаких особых практических выгод, то в USN может сохранятся предыдущее состояние файловой системы, что позволяет восстанавливать его в случае сбоев.

Ещё одной особенностью NTFS является поддержка альтернативных потоков данных (англ. "Alternate Data Streams" - ADS). Изначально они были задуманы для разграничения выполнения различных процессов. Потом (в Windows 2000) использовались для хранения некоторых атрибутов файлов (имя автора, иконка и т.п.), аналогично тому, как это делалось в HFS от MacOS. В современных Windows альтернативные потоки могут хранить практически любую информацию. Этим даже пользуются некоторые вирусы для скрытия своего присутствия в системе.

Дело в том, что альтернативные потоки не пеленгуются Проводником Windows и, по сути, невидимы для пользователей и большинства программ. Однако, Вы можете их просматривать и даже пользоваться ими, например, для скрытия каких-либо данных при помощи специального ПО. Смотреть данные в альтернативных потоках удобно при помощи программы NTFS Stream Explorer , а использовать их для сокрытия файлов при помощи Xp-lore :

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

NTFS изначально была создана исключительно для Windows, однако, сегодня поддерживается большинством медиаплееров (флешки могут быть тоже отформатированы в ней), операционными системами Linux и MacOS (правда, с некоторыми ограничениями на запись). Стоит, однако, отметить слабую поддержку NTFS на популярных игровых консолях. Из них поддержка её есть только у Xbox One.

exFAT

С увеличением во второй половине 2000-х годов объёмов флеш-накопителей стало ясно, что повсеместно используемая файловая система FAT32 скоро исчерпает свой потенциал. Использовать журналируемую NTFS для флешек с их ограниченным количеством циклов перезаписи и более медленной работой оказалось не совсем целесообразно. Поэтому в 2006 году всё та же корпорация Microsoft выпустила в свет новую файловую систему exFAT (сокр. англ. "Extended FAT" - "расширенная FAT") в комплекте с операционной системой Windows Embedded CE 6.0:

Она стала логическим продолжением развития FAT32, поэтому иногда её называют также FAT64. Главным козырем новой файловой системы стало снятие ограничения на размеры файлов и увеличение теоретического предела для дискового раздела до 16 ЭиБ (как в NTFS). При этом, в силу отсутствия журналирования, exFAT сохранила высокую скорость доступа к данным и компактность.

Ещё одним преимуществом exFAT стала возможность увеличения размера кластера до 32 МБ, что существенно позволило оптимизировать хранение больших файлов (например, видео). Кроме того, хранение данных в exFAT организовано таким образом, чтобы максимально минимизировать процессы фрагментации и перезаписи одних и тех же кластеров. Всё это сделано, опять же, в угоду оптимизации работы флеш-накопителей, для которых и была изначально разработана файловая система.

В силу того, что exFAT - относительно новая ФС, имеются некоторые ограничения по её использованию. В Windows полная её поддержка появилась лишь в Vista SP1 (хотя есть обновление для Windows XP SP2 - ). MacOS поддерживает exFAT с версии 10.6.5, а для Linux требуется устанавливать отдельный драйвер (в некоторых дистрибутивах он встроен, а в некоторых поддерживается только чтение).

ext2, ext3 и ext4

Если в среде Windows уже не первое десятилетие "правит бал" NTFS, то в лагере Linux традиционно царит очень большое разнообразие, в том числе и среди применяемых файловых систем. Правда, есть одна их линейка, которая используется большинством дистрибутивов по умолчанию. Это файловые системы семейства ext (англ. сокр. "Extended File System" - "расширенная файловая система"), которые с 1992 года изначально создавались именно под Linux.

Наибольшее распространение получила вторая версия ext2 , которая, как и NTFS, появилась ещё в 1993 году. Правда, в отличии от NTFS, ext2 не является журналируемой файловой системой. Это одновременно и её плюс, и минус. Плюс в том, что она является одной из самых быстрых ФС на запись данных. Также отсутствие журналирования делает предпочтительным её использование на флеш-накопителях и SSD-дисках. Платой же за быстродействие является низкая отказоустойчивость.

С целью улучшить стабильность ext2 в 2001 году была разработана её улучшенная версия ext3 . В ней появилось журналирование, которое может работать в трёх режимах: "writeback" (записываются только метаданные файловой системы), "ordered" (запись в журнал производится всегда ПЕРЕД изменением ФС) и "journal" (полный бэкап метаданных и самих изменяемых файлов).

В остальном особых новшеств не появилось. Да и скорость работы, по сравнению с предыдущей версией, существенно снизилась, поэтому уже в 2006 году появился прототип следующей стадии развития файловой системы ext4 , окончательный релиз которой состоялся в 2008 году. Четвёртая расширенная файловая система сохранила журналирование, но существенно повысила скорость чтения данных, которая стала даже выше, чем в ext2!

Из других новшеств стоит отметить увеличение максимального объёма раздела диска до 1 ЭиБ (с 32 ТиБ в ext2 и ext3), увеличение максимального размера файла до 16 ТиБ (с 2 ТиБ в более ранних версиях) и появление механизма экстентов (от англ. "extent" - "пространство"). Последний позволяет обращаться не к одиночным блокам, как это реализовано в других ФС (и в ext3 в частности), а к объединённым пространствам диска из последовательно идущих кластеров, общим объёмом до 128 МБ, что существенно повышает производительность и уменьшает фрагментацию данных.

На сегодняшний день поддержка файловых систем семейства ext той или иной версии присутствует по умолчанию почти во всех Linux"ах. Из них, практически все системы 2010 года выпуска и старше поддерживают ext4. Для доступа к ext-разделам в Windows и MacOS требуется устанавливать специальное ПО и/или драйверы.

ReiserFS

Ещё одной молодой и перспективной файловой системой "родом" из мира Linux является ReiserFS . Стараниями команды американского разработчика Ганса Райзера она стала первой журналируемой ФС, которая была добавлена в ядро Linux версии 2.4.1 в 2001 году, как раз перед добавлением поддержки ext3.

Фактически, как и появившаяся вслед за ней ext3, ReiserFS дала возможность использовать в Linux полное или частичное журналирование. Однако, в отличие от ext3, имела больший допустимый размер файла (до 8 ТиБ против 2) и максимальную длину имени файла равную 255 символам, а не байтам (4032 байт).

Также одной из особенностей ReiserFS, за которую она полюбилась пользователям стала возможность менять размер раздела без его размонтирования. Подобной функции не было у ext2, но позднее она появилась в ext3, хотя ReiserFS в этом плане тоже была первой.

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

Правда, несмотря на ряд нововведений, улучшений и исправлений, новая файловая система осталась уделом немногих энтузиастов. Дело в том, что в 2006 году Ганс Райзер совершил убийство собственной жены и был взят под стражу, а позднее и заключён в тюрьму. Соответственно, его компания Namesys, которая занималась разработкой Reiser4, была расформирована. С тех пор поддержку и доработку файловой системы осуществляет группа разработчиков под курированием русского разработчика Эдуарда Шишкина.

В конечном итоге поддержка Reiser4 в ядро Linux до сих пор так и не добавлена, но ReiserFS имеется. Поэтому многие продолжают использовать её в различных сборках как файловую систему по умолчанию.

HFS

Говоря о файловых системах, характерных для различных операционок, нельзя не упомянуть о MacOS с её HFS (сокр. англ. "Hierarchical File System" - "иерархическая файловая система"). Первые версии данной системы появились ещё в 1985 году вместе с операционной системой Macintosh System 1.0:

По современным меркам данная файловая система была весьма малоэффективной, поэтому в 1998 года вместе с MacOS 8.1 появилась её улучшенная версия под названием HFS+ или Mac OS Extended , которая поддерживается до сегодняшнего дня.

Как и предшественница, HFS+ делит диск на блоки по 512 КБ (по умолчанию), которые объединяет в кластеры, ответственные за хранение тех или иных файлов. Однако, новая ФС имеет 32-битную адресацию (вместо 16-битной). Это позволяет избежать ограничений на размер записываемого файла и обеспечивает поддержку максимального размера тома до 8 ЭиБ (а в последних ревизиях до 16 ЭиБ).

Из других преимуществ HFS+ нужно отметить журналирование (под него выделяется целый скрытый том под названием HFSJ), а также многопоточность. Причём, если в NTFS альтернативные потоки не имеют особо чёткой регламентации на типы хранимой информации, то в HFS+ конкретно выделяется два потока: поток данных (хранит основные данные файлов) и поток с ресурсами (хранит метаданные файлов).

HFS+ практически идеальна для традиционных HDD, однако, как и рассмотренная выше ReiserFS, имеет не самые эффективные алгоритмы борьбы с фрагментацией данных. Поэтому с распространением SSD-накопителей и внедрением их в технику Apple всё чаще на смену ей приходит файловая система, разработанная в 2016 году APFS (сокр. англ. "Apple File System" - "Файловая система Apple"), появившаяся в настольной macOS High Sierra (10.13) и мобильной iOS 10.3.

Во многом APFS сходна с exFAT в плане оптимизации процессов чтения/записи, однако, в отличие от неё, имеет журналирование, поддерживает распределение прав доступа к данным, имеет улучшенные алгоритмы шифрования и сжатия данных, а также может работать с томами размером аж до 9 ЙиБ (не смейтесь - "йобибайт ") за счёт 64-битной адресации!

Единственным минусом APFS является то, что она поддерживается лишь современной техникой Apple и пока недоступна на других платформах.

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

Сегодня мы рассмотрели много различных популярных файловых систем, поэтому не мешало бы свести все данные о них в единую таблицу:

Характеристики / ФС FAT32 NTFS exFAT ext2 ext4 ReiserFS HFS+ APFS
Год внедрения 1996 1993 2008 1993 2006 2001 1998 2016
Сфера применения Windows, съёмные накопители, Linux съёмные накопители, Windows Vista+, Linux Linux, съёмные накопители Linux Linux MacOS MacOS
Максимальный размер файла 4 ГиБ 16 ЭиБ 16 ЭиБ 2 ТиБ 16 ТиБ 8 ТиБ 16 ЭиБ 9 ЙиБ
Максимальный размер тома 8 ТиБ 16 ЭиБ 64 ЗиБ (зебибайт) 32 ТиБ 1 ЭиБ 16 ТиБ 16 ЭиБ 9 ЙиБ
Журналирование - + - - + + + +
Управление правами доступа - + - - + + + +

Выводы

Как видим, для каждой операционной системы существует своя оптимальная файловая система, которая позволяет наиболее эффективно работать с данными. Например, для Windows - это NTFS, для MacOS - HFS+ или APFS. Исключением из правила можно считать лишь многочисленные дистрибутивы Linux. Здесь имеется не один десяток файловых систем, каждая со своими преимуществами и недостатками.

Большинству же пользователей Windows стоит запомнить лишь три наиболее распространённые ФС: FAT32 - для небольших флешек и старого оборудования, NTFS - для большинства компьютеров и exFAT - для ёмких флеш-накопителей и внешних SSD-дисков (об актуальности форматирования системного диска в exFAT до сих пор спорят в виду отсутствия журналирования и большей подверженности сбоям).

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

Компьютер, как правило, имеет несколько дисков. Каждому диску присваивается имя, которое задается латинской буквой с двоеточием, например, А:, В:, С: и т.д. Стандартно принято, что А: и В: – это накопители на гибких магнитных дисках, а диски С:, D: и т.д. – жесткие диски, накопители на оптических дисках или электронные диски.

Электронные диски представляют собой часть оперативной памяти, которая для пользователя выглядит как ВЗУ. Скорость обмена информации с электронным диском значительно выше, чем с электромеханическим внешним запоминающем устройством. При работе электронных дисков не происходит износ электромеханических деталей. Однако после выключения питания информация на электронном диске не сохраняется.

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

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

Для того чтобы на новый магнитный диск можно было записать информацию, он должен быть предварительно отформатирован. Форматирование – это подготовка диска для записи информации.

Во время форматирования на диск записывается служебная информация (делается разметка), которая затем используется для записи и чтения информации, коррекции скорости вращения диска, а также выделяется системная область, которая состоит из трех частей:

ü загрузочного сектора,

ü таблицы размещения файлов,

ü корневого каталога.

Загрузочный сектор (Boot Record) размещается на каждом диске в логическом секторе с номером 0. Он содержит данные о формате диска, а также короткую программу, используемую в процедуре начальной загрузки операционной системы.

На жестком диске имеется область, которая называется главной загрузочной записью MBR (Master Boot Record) или главным загрузочным сектором. В MBR указывается, с какого логического диска должна производиться загрузка операционной системы.

Таблица размещения файлов (File Allocation Table – сокращенно FAT) располагается после загрузочного сектора и содержит описание порядка расположения всех файлов в секторах данного диска, а также информацию о дефектных участках диска. За FAT-таблицей следует ее точная копия, что повышает надежность сохранения этой очень важной таблицы.

Корневой каталог (Root Directory) всегда находится за копией FAT. В корневом каталоге содержится перечень файлов и директорий, находящихся на диске. Непосредственно за корневым каталогом располагаются данные.

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

Файловые системы

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

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

Файловая система определяет:

1. как хранятся файлы и каталоги на диске;

2. какие сведения хранятся о файлах и каталогах;

3. как можно узнать, какие участки диска свободны, а какие - нет;

4. формат каталогов и другой служебной информации на диске.

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

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

В операционных системах семейства MS Windows используются следующие файловые системы - FAT, FAT 32, NTFS.

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

FAT является наиболее простой из поддерживаемых Windows NT файловых систем. Основой файловой системы FAT является таблица размещения файлов, которая помещена в самом начале тома. На случай повреждения на диске хранятся две копии этой таблицы. Кроме того, таблица размещения файлов и корневой каталог должны храниться в определенном месте на диске (для правильного определения места расположения файлов загрузки). Диск, отформатированный в файловой системе FAT, делится на кластеры, размер которых зависит от размера тома. Одновременно с созданием файла в каталоге создается запись и устанавливается номер первого кластера, содержащего данные. Такая запись в таблице размещения файлов сигнализирует о том, что это последний кластер файла, или указывает на следующий кластер.

Обновление таблицы размещения файлов имеет большое значение и требует много времени. Если таблица размещения файлов не обновляется регулярно, это может привести к потере данных. Длительность операции объясняется необходимостью перемещения читающих головок к логической нулевой дорожке диска при каждом обновлении таблицы FAT. Каталог FAT не имеет определенной структуры, и файлы записываются в первом обнаруженном свободном месте на диске. Кроме того, файловая система FAT поддерживает только четыре файловых атрибута: «Системный», «Скрытый», «Только чтение» и «Архивный».

На компьютере под управлением Windows NT в любой из поддерживаемых файловых систем нельзя отменить удаление. Программа отмены удаления пытается напрямую обратиться к оборудованию, что невозможно при использовании Windows NT. Однако если файл находился в FAT-разделе, то, запустив компьютер в режиме MS-DOS, удаление файла можно отменить. Файловая система FAT лучше всего подходит для использования на дисках и разделах размером до 200 МБ, потому что она запускается с минимальными накладными расходами.

Как правило, не стоит использовать файловую систему FAT для дисков и разделов, чей размер больше 200 МБ. Это объясняется тем, что по мере увеличения размера тома производительность файловой системы FAT быстро падает. Для файлов, расположенных в разделах FAT, невозможно установить разрешения. Разделы FAT имеют ограничение по размеру: 4 ГБ под Windows NT и 2 ГБ под MS-DOS.