- •Глава 1
- •1.1.1 Восстанавливаемость
- •1.1.2 Защита от несанкционированного доступа
- •1.1.3 Избыточность данных и отказоустойчивость
- •1.1.4 Диски и файлы большого объема
- •1.2 Новые возможности ntfs
- •1.2.1 Множественные потоки данных
- •1.2.4 Переназначение плохих кластеров
- •1.2.5 Поддержка posix
- •1.2.2 Имена в unicode
- •1.2.3 Универсальное средство индексации
- •1.2.6 Сменные диски
- •Глава 2
- •2.1 Многоуровневая модель драйвера
- •2.2 Модели реляционной базы данных и обработки транзакций
- •2.3 Объектная модель
- •Глава 3
- •3.2 Структура на диске
- •3.3 Индексация имен файлов
- •3.4 Файлы метаданных ntfs и загрузочный файл
1.2.6 Сменные диски
NTFS предназначена для работы как с постоянными, так и со сменными дисками. Поскольку FAT является стандартом де факто для гибких дисков, Microsoft не планирует поддерживать для них NTFS. Однако, NTFS можно использовать на других типах сменных носителей, таких как диски Бернулли. Windows NT — это ОС, обеспечивающая защиту от несанкционированного доступа, и NTFS распространяет эту защиту на файлы. Таким образом, сменные диски, отформатированные для NTFS, защищены теми же механизмами контроля доступа, что и постоянные диски.
Глава 2
МОДЕЛИ NTFS
.Несмотря на новые требования к восстанавливаемости и контролю доступа, а также множество новых свойств, введенных в NTFS разработчиками, первым и самым главным требованием было создание надежной и быстрой ФС. Она должна была поддерживать стандартные операции, такие как загрузка системы и исполняемых модулей, а также интегрироваться в многоуровневую модель загружаемых драйверов, определяемую системой ввода-вывода Windows NT. При этом производительность ее должна была быть такой же или выше, чем производительность существующих ФС для персональных компьютеров. Для достижения этой цели в NTFS использовано несколько моделей:
С точки зрения ФС Windows NT, NTFS — это просто еще один загруженный драйвер, предназначенный для обработки запросов ввода-вывода. В многоуровневой модели драйверов системы ввода-вывода NTFS может располагаться над или под другими драйверами.
С другой точки зрения, NTFS — это сложная реляционная база данных, применяющая новейшие технические достижения для протоколирования и восстановления данных, а также новые возможности, такие как множественные потоки данных и индексирование атрибутов файла.
С третьей точки зрения, NTFS участвует в реализации объектной модели Windows NT, работая с файловыми объектами, защищенными от несанкционированного доступа диспетчером объектов Windows NT и системой контроля доступа.
2.1 Многоуровневая модель драйвера
В Windows NT NTFS и другие ФС — это загружаемые драйверы. Они могут загружаться или удаляться из ОС по мере необходимости. Все драйверы работают в контексте системы ввода-вывода Windows NT и неявно вызываются приложениями, которые используют Win32 или другие API ввода-вывода. Как показано на рис. 2-1, подсистемы окружения (environment subsystems) Windows NT вызывают системные сервисы NT, которые, в свою очередь, отыскивают подходящие загруженные драйверы и вызывают их.
Драйверы, расположенные на разных уровнях, передают друг другу запросы с помощью диспетчера ввода-вывода. Использование диспетчера ввода-вывода в качестве посредника позволяет каждому драйверу сохранять незави-
344
Рис. 2-1. Компоненты системы ввода-вывода Windows NT.
симость, так что его загрузка или выгрузка не влияет на другие драйверы. Кроме того, драйвер NTFS взаимодействует с тремя другими компонентами исполнительной системы Windows NT, показанными в левой части рис. 2-2, которые тесно связаны с ФС.
Сервис журнала транзакций (log file service, LFS), разработанный Брайаном Эндрю (Brian Andrew), — это системный модуль Windows NT, обеспечивающий протоколирование операций записи на диск. Он записывает информацию в журнал транзакций (log file), который используется для восстановления тома NTFS после сбоя системы.
Диспетчер кэша (cache manager) — это системный компонент Windows NT, написанный Томом Миллером (Tom Miller) и обеспечивающий общесистемную поддержку кэширования для NTFS и драйверов других ФС, включая драйверы сетевой ФС (серверы и редиректоры). Все ФС Windows NT осуществляют доступ к кэшированным файлам, отображая последние в виртуальную память1 и выполняя чтение и запись в нее. В этих целях диспетчер кэша обеспечивает для ФС специализированный интерфейс к диспетчеру виртуальной памяти Windows NT. Если программа пытается обратиться к части файла, которая не загружена в кэш, — так называемый промах кэша (cache miss), — диспетчер виртуальной памяти вызывает NTFS для обращения к драйверу диска и получения содержи-
1 Виртуальная память в Windows NT обсуждается в книге "Основы Windows NT", гл. 6, "Диспетчер виртуальной памяти".
Рис. 2-2. NTFS и взаимодействующие с ней компоненты исполнительной системы Windows NT.
мого файла с диска. Диспетчер кэша оптимизирует дисковый ввод-вывод при помощи средства отложенной записи (lazy writer) — набора системных потоков управления, вызывающих диспетчер виртуальной памяти для сброса содержимого кэша на диск в фоновом режиме (асинхронная запись на диск).
Взаимоотношения NTFS с другими компонентами системы (рис. 2-2) строятся так же, как и для других ФС, поддерживаемых Windows NT: FAT, HPFS и сетевых ФС. Единственное отличие состоит в том, что эти ФС не обращаются к сервису журнала транзакций для протоколирования последних.
