
- •Министерство образования и науки Российской Федерации
- •Лекция 1. Введение.
- •Лекция 2. Структура подсистемы обмена с ву
- •Лекция 3. Регистры ву
- •3.1. Виды регистров внешних устройств
- •3.2. Виды адресации регистров ву
- •Лекция 4. Алгоритм обмена без прерываний
- •37Bh – не используется
- •Лекция 5. Прерывания
- •5.1. Механизм прерываний
- •5.2. Таблица векторов прерываний
- •Лекция 6. Изменения установок обработки прерываний
- •6.1. Маскирование прерываний
- •6.2. Изменение таблицы векторов прерываний
- •6.3. Обработчики прерываний
- •Лекция 7. Аппаратные прерывания
- •Лекция 8. Дисковые системы (Часть 1) Организация магнитного диска
- •Лекция 9. Дисковые системы (Часть 2) Функции bios для работы с дисками
- •Инициализация контроллера нмд
- •Лекция 10. Файловые системы (Часть 1)
- •Организация логического диска
- •Лекция 11. Файловые системы (Часть 2)
- •Файловые системы Windows
- •Лекция 12. Файловая системаntfs Главная файловая таблица
- •Последовательность обновления
- •Атрибуты
- •Типы атрибутов
- •Лекция 13. Атрибуты ntfs
- •Списки отрезков
- •Лекция 14. Анализ и восстановление файловой системы
- •Лекция 15. Управление памятью
- •Типы адресов
- •Методы распределения памяти без использования дискового пространства
- •Лекция 16. Виртуальная память
- •Лекция 17. Виртуальная память (продолжение)
- •Лекция 18. Иерархия запоминающих устройств
- •Лекция 19. Управление вычислительными процессами
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Лекция 20. Синхронизация и взаимодействие процессов
- •V(b); /* Выход из критической секции */
- •Лекция 21. Архитектура драйвера файловой системы
- •Локальные fsd
- •Удаленные fsd
- •Работа файловой системы
- •Явный файловый ввод-вывод
- •Подсистема отложенной записи
- •Поток, выполняющий опережающее чтение
- •Драйверы фильтров файловой системы
- •Лекция 22. Windows api
- •Windows api— набор функций операционной системы
- •Лекция 23. WindowsApi(продолжение)
- •Окно рабочего стола
- •Приложение Windows
- •Компоненты окна приложения
- •Создание окна
- •Атрибуты окна
- •Класс окна
- •Имя окна
- •Стиль окна
- •Родитель или владелец окна
- •Расположение, размер и позиция в z-порядке
- •Идентификатор дочернего окна или дескриптор меню
- •Дескриптор копии приложения
- •Дополнительные данные
- •Дескрипторы окна
- •Создание главного окна
- •Сообщения, посылаемые при создании окна
- •Многопоточные приложения
- •Общие стили окна
- •Позиционирование
- •Взаимоотношения с родительским окном
- •Рамка окна
- •Компоненты неклиентской области окна
- •Заблокированное окно
- •Окна переднего плана и фоновые окна
- •Активное окно
- •Видимость
- •Свернутые, развернутые и восстановленные окна
- •Размер и позиция окна
- •Размер окна
- •Позиция окна
- •Размер и позиция по умолчанию
- •Системные команды
- •Сообщения, связанные с размером и позицией окна
- •Уничтожение окна
- •Как создать главное окно
- •Работа с дочерними окнами
- •Как уничтожить окно
- •Лекция 24. Ловушки сообщений (Хуки)
- •Лекция 25. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Лекция 12. Файловая системаntfs Главная файловая таблица
Раздел жесткого диска, отформатированный под файловую систему NTFS (далее NTFS), условно делится на две части. Первые 12,5% диска отводятся под MFT зону – пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой – это делается для того, чтобы самый главный служебный файл (MFT) не фрагментировался при своем росте. Остальные 87,5% диска представляют собой обычное пространство для хранения файлов.
Структура тома, отформатированного под NTFS
1 – MFT(MasterFileTable); 2 – зонаMFT; 3 – пространство для хранения файлов; 4 – копия первых записей MFT.
Рис. 12.1.
Свободное место диска включает в себя всё физически свободное место – незаполненные файловые записи MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая, таким образом, место для записи файлов. При освобождении места в обычной области MFT-зона может снова расширится. При этом не исключена ситуация, когда в этой зоне остались и обычные файлы, в этом случае метафайл MFT может фрагментироваться, хоть это и нежелательно.
Для ссылки на одну файловую запись из другой используется ее порядковый номер (он же индекс) в файле $MFT, отсчитываемый от нуля. Файловая ссылка (file reference) состоит из двух частей – 48-битного индекса и 16-битного номера последовательности (sequence number).
При удалении файла или каталога соответствующая ему файловая последовательность помечается как неиспользуемая. При создании новых файлов записи, помеченные как неиспользуемые, могут задействоваться вновь, при этом счетчик номера последовательности, хранящийся внутри файловой записи, увеличивается на единицу. Этот механизм позволяет отслеживать «мертвые» ссылки на уже удаленные файлы. Номер последовательности внутри файловой ссылки в этом случае будет отличаться от номера последовательности соответствующей файловой записи.
Первые 12 записей в MFT всегда занимают служебные метафайлы: $MFT(собственно, сам файл $MFT), $MFTMirr (зеркало $MFT), $LogFile (файл транзакций), $Volume (сведения о дисковом томе), $AttrDef (определения атрибутов), '.' (корневой каталог), $Bitmap (карта свободного пространства), $Boot(системный загрузчик), $BadClust(перечень плохих кластеров), $Secure(использованные дескрипторы безопасности), $UpCase(таблица заглавных символов для трансляции имен), $Extend(каталоги: $ObjId, $Quotaи $Reparse).
Записи с 12 по 15 помечены как используемые, в то время как в действительности они пусты. Как несложно догадаться, они зарезервированы для использования в будущем. Записи с 16 по 23 не задействованы и помечены как неиспользуемые.
Таблица 12.1
Структура заголовка файловой записи (FILE Record)
Смещение |
Размер (байт) |
ОС |
Описание | |
00h |
4 |
Любая |
Сигнатура FILE | |
04h |
2 |
Любая |
Смещение номера последовательности обновления (update sequence number) | |
06h |
2 |
Любая |
Размер (в словах) номера последовательности обновления и массива обновления (Update Sequence Number & Array), условно S | |
08h |
8 |
Любая |
Номер последовательности файла транзакций ($LogFile Sequence Number или LSN) | |
10h |
2 |
Любая |
Номер последовательности (sequence number) | |
12h |
2 |
Любая |
Счетчик жестких ссылок (hard link) | |
14h |
2 |
Любая |
Смещение первого атрибута | |
16h |
2 |
Любая |
Флаги | |
Значение |
Описание | |||
0x00 |
Файловая запись не используется | |||
0x01 |
Файловая запись используется и описывает файл | |||
0x02 |
Файловая запись используется и описывает каталог | |||
18h |
4 |
Любая |
Реальный размер (real size) файловой записи | |
1Ch |
4 |
Любая |
Выделенный размер (allocated size) файловой записи | |
20h |
8 |
Любая |
Ссылка (file reference) на базовую файловую запись (base FILE record) или ноль, если данная файловая запись является базовой | |
28h |
2 |
Любая |
Идентификатор следующего атрибута (next attribute ID) | |
2Ah |
2 |
Windows XP |
Используется для выравнивания | |
2Ch |
4 |
Windows XP |
Индекс данной файловой записи (number of this MFT record) | |
|
2 |
Любая |
Номер последовательности обновления (update sequence number) | |
|
2S-2 |
Любая |
Массив последовательности обновления (update sequence array) |