Предназначен для обработки и упорядоченной записи на буферные диски информации в виде файлов

Обновлено: 07.07.2024

По стандарту диски могут быть разбиты на логические разделы, но мы будем рассматривать диски с одним разделом.

Как вы знаете из предыдущих лекций: блоки записываются последовательно; по спирали; сектора по 2352 байта.

Порядок записи информации:

Каждый CD-ROM начинается с 16 блоков (неопределенных ISO 9660), эта область может быть использована для размещения загрузчика ОС или для других целей.

Дальше один блок основного описателя тома - хранит общую информацию о CD-ROM, в нее входит:
- идентификатор системы (32байта)
- идентификатор тома (32байта)
- идентификатор издателя (128байт)
- идентификатор лица, подготовившего данные (128байт)
- имена трех файлов, которые могут содержать краткий обзор, авторские права и библиографическая информация.
- ключевые слова: размер логического блока (как правило 2048, но могут быть 4096, 8192 и т.д.); количество блоков; дата создания; дата окончания срока службы диска.
- описатель корневого каталога (номер блока содержащего каталог).

Могут быть дополнительные описатели тома, подобные основному.

Каталоговая запись стандарта ISO 9660.

Каталоговая запись стандарта ISO 9660.

Расположение файла - номер начального блока, т.к. блоки располагаются последовательно.

L - длина имени файла в байтах

Имя файла - 8 символов, 3 символа расширения (из-за совместимости с MS-DOS). Имя файла может встречаться несколько раз, но с разными номерами версий.

Sys - поле System use (используется различными ОС для своих расширений )

Порядок каталоговых записей:

Описатель самого каталога (аналог ".")

Ссылка на родительский каталог (аналог "..")

Остальные записи (записи файлов) в алфавитном порядке

Количество каталоговых записей не ограничено, но ограничено количество вложенности каталогов - 8.

В стандарте ISO 9660 определены три уровня ограничений:

имена файлов и каталогов до 31 символа

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

3.1.2 Рок-ридж расширения для UNIX

Это расширение было создано, чтобы файловая система UNIX была представлена на CD-ROM.

Для этого используется поле System use.

Расширения содержат следующие поля:

PX - атрибуты POSIX (стандартные биты rwxrwxrwx, (чтение, запись, запуск) (владелец, группа, все) )

PN - старший и младший номер устройств (чтобы можно было записать каталог /dev, который содержит устройства)

SL - символьная связь

NM - альтернативное имя, позволяет использовать произвольные имена, без ограничений

CL - расположение дочернего узла (чтобы обойти ограничение на вложенность каталогов)

PL - расположение дочернего узла (чтобы обойти ограничение на вложенность каталогов)

RE - перераспределение (чтобы обойти ограничение на вложенность каталогов)

TF - временные штампы (время создания, последнее изменение , последний доступ)

3.1.3 Joliet расширения для Windows

Это расширение было создано, чтобы файловая система ОС Windows 95 была представлена на CD-ROM.

Для этого используется поле System use.

Расширения содержат следующие поля:

Длинные имена файлов (до 64 символов)

Набор символов Unicode (поддержка различных языков)

Преодоление ограничений на вложенность каталогов

Имена каталогов с расширениями

3.1.4 Romeo расширения для Windows

Стандарт Romeo предоставляет другую возможность записи файлов с длинными именами на компакт-диск. Длина имени может составлять 128 символов, однако использование кодировки Unicode не предусмотрено. Альтернативные имена в этом стандарте не создаются, поэтому программы MS-DOS не смогут прочитать файлы с такого диска.

Вы можете выбрать стандарт Romeo только в том случае, если диск предназначен для чтения приложениями Windows 95 и Windows NT.

3.1.5 HFS расширения для Macintosh

Иерархическая файловая система компьютеров Macintosh, не совместима ни с какими другими файловыми системами и называется Hierarchical File System (HFS).

3.1.6 Файловая система UDF (Universal Disk Format)

Изначально созданная для DVD, с версии 1.50 добавили поддержку CD-RW и CD-R.

Эта файловая система позволяет дописывать диски, а также поддерживает большие размеры файлов и длинные имена файлов.

3.2 Файловая система CP/M

CP/M (Control Program for Microcomputers) - операционная система, предшественник MS-DOS.

В ее файловой системе только один каталог, с фиксированными записями по 32 байта.

Имена файлов - 8+3 символов верхнего регистра.

После каждой перезагрузки рассчитывается битовый массив занятых и свободных блоков. Массив находится постоянно в памяти (для 180Кбайтного диска 23 байта массива). После завершения работы, он не записывается на диск.

Каталоговая запись CP/M

Видно, что максимальный размер файла 16Кбайт (16*1Кбайт).

Для файлов размером от 16 до 32 Кбайт можно использовать две записи. Для до 48 Кбайт три записи и т.д.

Порядковый номер записи хранится в поле экстент.

Код пользователя - каждый пользователь мог работать только со своими файлами.

Порядок чтения файлов:

Файл открывается системным вызовом open

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

Вызывается системный вызов read

3.2 Файловая система MS-DOS (FAT-12,16,32)

В первых версиях был только один каталог (MS-DOS 1.0).

С версии MS-DOS 2.0 применили иерархическую структуру.

Каталоговые записи, фиксированны по 32 байта.

Имена файлов - 8+3 символов верхнего регистра.

Порядок чтения файлов:

Файл открывается системным вызовом open, которому указывается путь к файлу (может быть абсолютным и относительным).

Файловая система открывает каталоги (согласно пути), считывает последний каталог в память.

Ищет описатель файла.

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

Вызывается системный вызов read

Каталоговая запись MS-DOS, обратите внимание на пустые 10 байт, они будут задействованы в Windows 98

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

Поле время (16 разрядов) разбивается на три подполя:

секунды - 5бит (2^5=32 поэтому хранятся с точностью до 2-х секунд)

Поле даты (16 разрядов) разбивается на три подполя:

год - 7бит (начинается с 1980г, т.е. максимальный 2107г.)

Теоретически размер файлов может быть до 4Гбайт (32 разряда).

Все блоки файла в записи не хранятся, а только первый блок. Этот номер используется в качестве индекса для 64К (для FAT-16) элементов FAT-таблицы, хранящейся в оперативной памяти.

В зависимости от количества блоков на диске в системе MS-DOS применяется три версии файловой системы FAT:

FAT-32 - для адреса используются только 28 бит, поэтому правильнее назвать FAT-28

Размер блока (кластера) должен быть кратным 512 байт.

В первой версии MS-DOS использовалась FAT-12 с 512 байтовыми блоками, поэтому максимальный размер раздела мог достигать 2Мбайта (2^12*512байта).

С увеличением дисков, этого стало не хватать, стали увеличивать размер блоков 1,2 и 4 Кбайта (2^12) (при этом эффективность использования диска падает).

FAT-12 до сих пор применяется для гибких дисков.

16-разрядные дисковые указатели

Размеры кластеров 512, 1, 2, 4, 8, 16 и 32Кбайт (2^15)

Таблица постоянно занимала в памяти 128 Кбайт.

Максимальный размер раздела диска мог достигать 2Гбайта (2^16*32Кбайта).

Причем кластер в 32 Кбайта для файлов со средним размером в 1Кбайт, не эффективен.

Размеры кластеров 512, 1, 2, 4, 8, 16 и 32Кбайт

Максимальный размер раздела диска мог бы достигать 2^28*2^15, но здесь уже вступает другое ограничение - 512 байтные сектора адресуются 32-разрядным числом, а это 2^32*2^9, т.е. 2 Тбайта.

Максимальный размер раздела для различных размеров кластеров

Размер кластера, Кбайт

Из таблицы видно, что FAT-16 использовать не эффективно уже при разделах в 256 Мбайт, учитывая, что средний размер файла 1Кбайт.

3.2.4 Расширение Windows 98 для FAT-32

Для расширения были задействованы 10 свободных бит.

Формат каталоговой записи в системе FAT-32 с расширениями для Windows 98

Пять добавленных полей:

NT - предназначено для совместимости с Windows.

Sec - дополнение к старому полю время, позволяет хранить время с точностью до секунды (было 2 секунды)

Дата и время создания файла (Creation time)

Дата (но не время) последнего доступа (Last access)

Для хранения номера блока выделено еще 2 байта (16 бит), т.к. номера блоков стали 32-разрядные.

Основная надстройка над FAT-32, это длинные имена файлов.

Для каждого файла стали присваивать два имени:

Короткое 8+3 для совместимости с MS-DOS

Длинное имя файла, в формате Unicode

Доступ к файлу может быть получен по любому имени.

Если файлу дано длинное имя (или используются пробелы), то система делает следующие шаги:

берет первые шесть символов

преобразуются в верхний регистр ASCII, удаляются пробелы, лишние точки, некоторые символы преобразуются в "_"

если такое имя есть, то используется суффикс

Короткие имена хранятся в в обычном дескрипторе файла.

Длинные имена хранятся в дополнительных каталоговых записях, идущих перед основным описателем файла. Каждая такая запись содержит 13 символов формата Unicode (для символа Unicode нужно два байта).

Формат каталогов записи с фрагментом длинного имени файла в Windows 98

Поле "Атрибуты" позволяет отличить фрагмент длинного имени (значение 0х0F) от дескриптора файла. Старые программы MS-DOS каталоговые записи со значением поля атрибутов 0х0F, просто игнорируют.

Последовательность - порядковый номер в последовательности фрагментов.

Длина имени файла ограничена 260 символами не из-за порядкового номера (1 байт), для номера используются только 6 бит 6х13=819 символов.

Контрольная сумма нужна для выявления ошибок, т.к. файл с длинным именем может удалить MS-DOS и создать новый, и тогда останутся не удаленные записи, которые "прилипнут" к новому файлу. Т.к. это поле один байт, есть вероятность 1/256 что Windows 98 не заметит подмены.

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

Файловая система NTFS была разработана для Windows NT.

64-разрядные адреса, т.е. теоретически может поддерживать 2^64*2^16 байт (1 208 925 819 Пбайт

Размеры блока (кластера) от 512байт до 64 Кбайт, для большинства используется 4Кбайта.

Поддержка больших файлов.

Имена файлов ограничены 255 символами Unicode.

Длина пути ограничивается 32 767 (2^15) символами Unicode.

Имена чувствительны к регистру, my.txt и MY.TXT это разные файлы (но из-за Win32 API использовать нельзя), это заложено на будущее.

Журналируемая файловая система, т.е. не попадет в противоречивое состояние после сбоев.

Контроль доступа к файлам и каталогам.

Поддержка жестких и символических ссылок.

Поддержка сжатия и шифрования файлов.

Поддержка дисковых квот.

Главная файловая таблица MFT (Master File Table) - главная структура данных в каждом томе, записи фиксированные по 1Кбайту. Каждая запись описывает один каталог или файл. Для больших файлов могут использоваться несколько записей, первая запись называется - базовой записью.

MFT представляет собой обычный файл (размером до 2^48 записей), который может располагаться в любом месте на диске.

Главная файловая таблица MFT, каждая запись ссылается на файл или каталог.

Первые 16 записей MFT зарезервированы для файлов метаданных. Каждая запись описывает нормальный файл, имена этих файлов начинаются с символа "$".

Каждая запись представляет собой последовательность пар (заголовок атрибута, значение).

Некоторые записи метаданных в MFT:

0) Первая запись описывает сам файл MFT, и содержит все блоки файла MFT. Номер первого блока файла MFT содержится в загрузочном блоке.

1) Дубликат файла MFT, резервная копия.

2) Журнал для восстановления, например, перед созданием, удалением каталога делается запись в журнал. Система не попадет в противоречивое состояние после сбоев.

3) Информация о томе (размер, метка и версия)

4) Определяются атрибуты для MFT записей.

6) Битовый массив использованных блоков - для учета свободного места на диске

7) Указывает на файл начальной загрузки

Атрибуты, используемые в записях MFT:

Стандартная информация - флаговые биты (только чтение, архивный), временные штампы и т.д.

Имя файла - имя файла в кодировке Unicode, файлы могут повторятся в формате MS-DOS 8+3.

Список атрибутов - расположение дополнительных записей MFT

Идентификатор объекта - 64-разрядный идентификатор файла, уникальный для данного тома.

Точка повторного анализа - используется для символьных ссылок и монтирования устройств.

Корневой индекс - используется для каталогов

Размещение индекса - используется для очень больших каталогов

Битовый массив - используется для очень больших каталогов

Поток данных утилиты регистрации - используется для шифрования

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

Как привило, все данные файла не помещаются в запись MFT.

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

Запись MFT для 9-блочного файла, состоящего из трех сегментов (серий).
Вся запись помещается в одну запись MFT (файл не сильно фрагментирован).

Заголовок содержит количество блоков (9 блоков).

Каждая серия записывается в виде пары, дисковый адрес - количество блоков (20-4, 64-2, 80-3).

Каждая пара, при отсутствие сжатия, это два 64-разрядные числа (16 байт на пару).

Многие адреса содержат большое количество нулей, сжатие делается за счет убирания нулей в старших байтах. В результате для пары требуется чаще всего 4байта.

Если файл сильно фрагментирован, требуется несколько записей MFT.

Три записи MFT для сильно фрагментированного файла.
В первой записи указывается индексы на дополнительные записи.

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

Запись MFT для небольшого каталога

Поиск файла в каталоге по имени состоит в последовательном переборе имен файлов.

Для больших каталогов используется другой формат. Используется дерево В+, обеспечивающее поиск в алфавитном порядке.

3.3.1 Поиск файла по имени

При создании файла, программа обращается к библиотечной процедуре

Этот вызов попадает в совместно используемую библиотеку уровня пользователя kernel32.dll, где \??\ помещается перед именем файла, и получается строка:

Это имя пути передается системному вызову NtFileCreate в качестве параметра.

Этапы поиска файла C:\windows\readmy.txt

3.3.2 Сжатие файлов

Если файл помечен как сжатый, то система автоматически сжимает при записи, а при чтении происходит декомпрессия.

Берутся для изучения первые 16 блоков файла (не зависимо от сегментов файла).

При меняется к ним алгоритм сжатия.

Если полученные данные можно записать хотя бы в 15 блоков, они записываются в сжатом виде.
Если их можно записать только в 16 блоков, то они записываются в несжатом виде.

Алгоритм повторяется для следующих 16 блоков.

Запись MFT для предыдущего файла.

Как видно из рисунка, сжатие приводит к сильной фрагментации.

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

3.3.3 Шифрование файлов

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

Даже если у вас украдут винчестер, прочесть данные не смогут (большинство не сможет).

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

Шифрование и дешифрование выполняет не сама NTFS, а специальный драйвер EFS (Encrypting File System).

Каждый блок шифруется отдельно.

Типы файловых систем

Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.

Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.

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

Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.

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

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

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

На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.

Основные функции файловых систем

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

Основными функциями файловой системы являются:

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

VDS Timeweb арендовать

Задачи файловой системы

Функционал файловой системы нацелен на решение следующих задач:

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

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

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

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

Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.

В случае с Windows все выглядит достаточно просто: NTFS на всех дисковых разделах и FAT32 (или NTFS) на флешках. Если установлен NAS (сервер для хранения данных на файловом уровне), и в нем используется какая-то другая файловая система, то практически никто не обращает на это внимания. К нему просто подключаются по сети и качают файлы.

На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.

Более богатый выбор у линуксоидов. Но здесь настройка и использование определенного типа файловой системы требует хотя бы минимальных навыков программирования. Тем более, мало кто задумывается, можно ли использовать в определенной ОС «неродную» файловую систему. И зачем вообще это нужно.

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

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

Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.

FAT (таблица распределения файлов)

Числа в FAT12, FAT16 и FAT32 обозначают количество бит, используемых для перечисления блока файловой системы. FAT32 является фактическим стандартом и устанавливается на большинстве видов сменных носителей по умолчанию. Одной из особенностей этой версии ФС является возможность применения не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом USB.

Пространство FAT32 логически разделено на три сопредельные области:

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

К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.

С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

NTFS (файловая система новой технологии)

Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 10 18 байт ). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.

ReFS (Resilient File System)

Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:

  • Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
  • данные записываются на новое дисковое пространство, а не поверх существующих файлов;
  • при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.

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

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

Для операционной системы macOS компания Apple использует собственные разработки файловых систем:

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

  1. HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
  2. Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.

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

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

Файловая система Линукс

Основные файловые системы, используемые в дистрибутивах Linux:

Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.

JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.

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

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

Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.

Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.

Дополнительные файловые системы

В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.

Кластерные файловые системы включают поддержку распределенных хранилищ, расширяемость и модульность. К ним относятся:

  • ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
  • Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
  • VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
  • GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
  • JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.

Практический пример использования файловых систем

Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.

Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант - использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.

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

Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

Надеюсь, краткий обзор основных ФС поможет решить практические задачи в части правильного выбора и настройки ваших компьютерных устройств в повседневной практике.


Организация структур на HDD для хранения информации в виде файлов.

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

Использование специального технологического режима работы накопителя (аналогично тому, как это делается самими производителями HDD) делает в этом режиме работы доступными операции, которые обычно выполняются на фирме-изготовителе: восстановление формата нижнего уровня (Low-Level Format); восстановление служебной информации, хранящейся на служебных дорожках накопителя (Resident Mikrocode); восстановление или изменение параметров в паспорте диска (Identify Drv); замена дефектных секторов и дорожек на резервные или их исключение из работы накопителя (Assigne, Realocation, Skipping Defects); реконфигурация HDD путем исключения из работы неисправных областей магнитных поверхностей или отключение неисправных магнитных головок.

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

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

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

Команда «Форматирование дорожки» доступна лишь для контроллеров старых дисков, которые не используют зонной записи, при совпадении внешней геометрии с реальной. На современных дисках низкоуровневое форматирование выполняют лишь в специальном технологическом режиме. Для этого, например, могут использоваться нестандартные команды, причем для разрешения их использования могут присутствовать специальные джамперы на устройстве. Общение с винчестером в технологическом режиме может производиться и через специальный последовательный интерфейс, в качестве которого иногда используется стандартный RS-232C, что позволяет вести диалог с винчестером, например, через СОМ-порт и эмулятор терминала на персональном компьютере. В случае, когда технологические команды доступны через обычный интерфейс, производители накопителя обычно предлагают собственные утилиты низкоуровневого форматирования и обслуживания дисков (низкоуровневое форматирование не затрагивает сервоинформацию, которая записывается на поверхности лишь в заводских условиях). Низкоуровневые утилиты предназначены для конкретных моделей или семейств устройств конкретных производителей, Использование их с «чужими» дисками, как правило, блокируется (или выдается предупреждение). Обход этой блокировки обычно ведет к отказу винчестера.

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

Реальная геометрия дисков с зонной записью полно­стью скрыта от "внешнего мира". Данные о количестве цилиндров, головок и секторов, ука­занные в паспортах жестких дисков, - это чисто логические параметры. Эти данные предна­значены для ввода в качестве значений соответствующих параметров в BIOS и не имеют никакого отношения к физическим параметрам диска (поэтому мы не должны удивляться, когда в логических параметрах диска видим 256 головок, 1024 цилиндра и 64 сектора). При зонной записи цилиндры разбиваются на группы, которые называются зонами, при­чем по мере продвижения к внешнему краю диска дорожки разбиваются на все большее чис­ло секторов. Во всех цилиндрах, относящихся к одной зоне, количество секторов на дорож­ках одинаковое. Возможное количество зон зависит от типа накопителя; в большинстве уст­ройств их бывает 10 и более. Еще одно свойство зонной записи состоит в том, что скорость обмена данными с накопите­лем может изменяться и зависит от зоны, в которой в конкретный момент располагаются голов­ки. Происходит это потому, что секторов во внешних зонах больше, а угловая скорость враще­ния диска постоянна (т.е. линейная скорость перемещения секторов относительно головки при считывании и записи данных на внешних дорожках оказывается выше, чем на внутренних).

В режиме логической адресации блоков (LBA) все секторы нумеруются подряд, без раз­деления по трем категориям (цилиндр, головка и сектор). Сквозная нумерация начинается с сектора (CHS 0,0,1), которому присваивается логический адрес 0, и заканчивается последним фи­зическим сектором диска.

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

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

- низкоуровневое форматирование диска (получили массив адресуемых блоков);

- разбиение диска на разделы (разбили массив адресуемых блоков на разделы);

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

Существуют два основных варианта разбиения диска на разделы:

- cтруктура служебной информации HDD (до 2 Тбайт) на основе MBR (PT - таблица разделов);

- cтруктура служебной информации HDD (до 9,4 зетабайт) на основе GPT (MBR, заголовок GPT, массив разделов GPT).

Существуют два основных варианта организации хранения информации файлов в разделах диска:

- с использоанием FAT ((таблица размещения файлов), разделы FAT32, FAT16, FAT12 и др.;

- с использоанием таблицы MFT (файл $MFT), разделы NTFS.

Принципы организации хранения файлов в разделах FAT32/16/12.

1) FAT (таблица размещения файлов) состоит из элементов (12/16/32 разряда) в которых хранится информация о порциях файла (кластерах). Каждому элементу таблицы FAT (начиная со второго) соответствует кластер в области данных с таким же номером.

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

3) Кластер — это непрерывная последовательность секторов (фиксированного размера). Это адресуемая «порция» файла.

4) Код в элементе таблицы FAT может еще определять свободный кластер, дефектный кластер и признак конца файла (прочитанный перед этим кластер — последний кластер файла).

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

Принципы организации хранения файлов в разделах NTFS.

1. Раздел NTFS состоит из кластеров, они пронумерованы от 0 (кластер — это непрерывная последовательность секторов заданного фиксированного размера).

2. В разделе NTFS все хранится в виде файлов (каталоги, программы, данные . ). Системная нформация для работы файловой системы — хранится в виде метафайлов (системных файлов), имена их начинаются со знака $ и они недоступны пользователю с помощью обычных средств операционной системы.

3. Файл в разделе NTFS состоит из экстентов (экстент — это непрерывная последовательность кластеров различного размера. Размер экстента задается номером начального кластера и количеством кластеров в экстенте).

4. Основой для организации хранения информации в виде файлов является метафайл $MFT. Файл $MFT состоит из записей фиксированного размера (обычно 1 Кбайт), и каждая запись определяет соответствующий ей файл (либо маленький файл находится внутри записи в Атрибуте 80, либо файл состоит из экстентов, которые определяются последовательностью блоков VCN в Атрибуте 80).

5. Блок VCN содержит номер начального кластера экстента и количество кластеров в экстенте.

6. Нужную запись файла $MFT находят через каталог по имени файла. Номер записи находится в шести начальных байтах каталожного блока (имя файла находится в конце каталожного блока и занимает различное количество байтов).

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