Windows internals 7th edition на русском

Время на прочтение8 мин

Количество просмотров34K

С момента выхода предыдущего издания этой книги операционная система Windows прошла длинный путь обновлений и концептуальных изменений, результатом которых стала новая стабильная архитектура ядра Windows 10.

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

Динамика списков страниц

На рис. 5.37 показана диаграмма состояний переходов страничных блоков. Для простоты на ней не представлен список измененных, но не подлежащих записи страниц.

image

Страничные блоки перемещаются между страничными списками следующими способами.

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

2. Одна из причин востребованности страниц, заполненных нулями, заключается в выполнении различных требований безопасности — например, общих критериев (Common Criteria). Большинство положений общих критериев указывает на то, что процессы пользовательского режима должны получать обнуленные страничные блоки, чтобы они не могли прочитать содержимое памяти предыдущих процессов. Поэтому диспетчер памяти предоставляет процессам пользовательского режима обнуленные страничные блоки, если только страница не была считана из резервного хранилища. В таком случае диспетчер памяти использует необнуленные страничные блоки, инициализируя их данными с диска или с удаленного хранилища. Список страниц, заполненных нулями, пополняется из списка свободных страниц системным программным потоком, который называется потоком обнуления страниц (zero page thread), — это поток 0 в процессе System. Поток обнуления страниц ждет сигнала на работу от объекта шлюза. Когда в списке свободных имеется восемь и более страниц, шлюз подает сигнал. Но поток обнуления страниц запускается, только если хотя бы у одного процессора нет других выполняемых потоков, поскольку поток обнуления страниц запускается с приоритетом 0, а наименьший приоритет, который может быть установлен для пользовательского потока, равен 1.

ПРИМЕЧАНИЕ Когда память в результате выделения физической страницы драйвером, вызывающим функцию MmAllocatePagesForMdl или MmAllocatePagesForMdlEx, должна быть заполнена нулями Windows-приложением, вызывающим функцию AllocateUserPhysicalPages или AllocateUserPhysicalPagesNuma, или когда приложение выделяет большие страницы, диспетчер памяти обнуляет память, используя высокопроизводительную функцию под названием MiZeroInParallel, которая отображает более крупные области, чем поток обнуления страниц, обнуляющий только одну страницу за раз. Кроме того, на мультипроцессорных системах диспетчер памяти создает дополнительный системный поток для обнуления в параллельном режиме (а на NUMA-платформах это делается в стиле, оптимизированном под технологию NUMA).

3. Когда диспетчеру памяти не нужна страница, заполненная нулями, он сначала обращается к списку свободных страниц. Если этот список пуст, он переходит к списку обнуленных страниц. Если и список обнуленных страниц пуст, он переходит к списку ожидающих страниц. Перед тем как диспетчер памяти сможет воспользоваться страничным блоком из списка ожидающих страниц, он должен сначала вернуться и удалить ссылку из недостоверной PTE-записи (или из прототипной PTE-записи), которая все еще указывает на страничный блок. Поскольку в записях базы данных PFN-номеров содержатся обратные указатели на предыдущую страницу пользовательской таблицы страниц (или на страницу пула прототипной PTE-записи для общих страниц), диспетчер памяти может быстро найти PTE-запись и внести в нее соответствующее изменение.

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

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

ЭКСПЕРИМЕНТ: ПРОСМОТР СПИСКОВ СВОБОДНЫХ И ОБНУЛЕННЫХ СТРАНИЦ

За освобождением закрытых страниц при завершении работы процесса можно наблюдать в окне System Information (Системная информация) программы Process Explorer. Сначала нужно создать процесс с большим количеством закрытых страниц в его рабочем наборе. Мы уже делали это в одном из предыдущих экспериментов с помощью утилиты TestLimit:

C:\Tools\Sysinternals>Testlimit.exe -d 1 -c 1500

Testlimit v5.24 - test Windows limits
Copyright (C) 2012-2015 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: 13928

Leaking private bytes with touch 1 MB at a time...
Leaked 1500 MB of private memory (1500 MB total leaked). Lasterror: 0
The operation completed successfully.

Ключ –d заставляет TestLimit не только выделить память в качестве закрытой и подтвержденной, но и «прикоснуться» к ней, т. е. обратиться к этой памяти. Это приводит к выделению физической памяти и присвоению ее процессу, чтобы освободить область закрытой подтвержденной виртуальной памяти. Если в системе имеется достаточный объем доступной оперативной памяти, для процесса в оперативной памяти будет выделено целых 1500 Мбайт. Теперь этот процесс будет ждать, пока вы не заставите его завершить или прервать работу (возможно, с комбинацией клавиш Ctrl+C в его командном окне). Выполните следующие действия.

1. Откройте Process Explorer.

2. Выберите команду ViewSystem Information и перейдите на вкладку Memory.

3. Понаблюдайте за размерами списков свободных (Free) и обнуленных (Zeroed) страниц.

4. Завершите или прервите процесс TestLimit.

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

ЭКСПЕРИМЕНТ: ПРОСМОТР СПИСКОВ ИЗМЕНЕННЫХ И ОЖИДАЮЩИХ СТРАНИЦ

За перемещением страниц из рабочего набора процесса в список измененных страниц и затем в список ожидающих страниц можно понаблюдать при помощи программ VMMap и RAMMap из пакета Sysinternals или в отладчике ядра. Выполните следующие действия.

1.Запустите программу RAMMap и понаблюдайте за спокойным состоянием системы. В данном случае это система x86 с 3 Гбайт оперативной памяти. Столбцы в окне отражают различные состояния страниц (см. рис. 5.37). Некоторые столбцы, которые не имеют значения для данного эксперимента, для удобства были сужены.

image

2. У системы имеется около 420 Мбайт свободной оперативной памяти (складывающейся из свободных и обнуленных страниц). Около 580 Мбайт фигурирует в списке ожидающих страниц (следовательно, часть из них «доступна», но, скорее всего, содержит данные, ранее утраченные процессами или используемые при супервыборке). Около 830 Мбайт активны, будучи отображенными непосредственно на виртуальные адреса через достоверные записи таблицы страниц.

3. Каждая строка далее разбивается в соответствии с состояниями страниц по использованию или происхождению (закрытые страницы процесса, отображаемый файл и т. д.). Например, на данный момент из активных 830 Мбайт около 400 Мбайт обусловлено выделением закрытых страниц процесса.

4. Теперь, как и в предыдущем эксперименте, воспользуйтесь утилитой TestLimit, чтобы создать процесс с большим количеством страниц в рабочем наборе. Здесь опять мы используем ключ –d, чтобы заставить TestLimit сделать запись в каждую страницу, но на этот раз без ограничения, чтобы создать как можно больше закрытых измененных страниц:

C:\Tools\Sysinternals>Testlimit.exe -d

Testlimit v5.24 - test Windows limits
Copyright (C) 2012-2015 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: 7548

Leaking private bytes with touch (MB)...
Leaked 1975 MB of private memory (1975 MB total leaked). Lasterror: 8

5. Теперь программа TestLimit создала 1975 областей выделения по 1 Мбайт каждая. Для обновления экрана в программе RAMMap нужно воспользоваться командой FileRefresh для обновления экрана, поскольку самостоятельно программа RAMMap этого не делает (из-за больших затрат на выполнение этой операции).

image

6. Как видите, активно свыше 2,8 Гбайт, из которых 2,4 Гбайт находятся в строке закрытых страниц процесса (строка Process Private). Это результат выделения памяти и доступа к ней со стороны процесса TestLimit. Также обратите внимание на то, что списки ожидающих (Standby), обнуленных (Zeroed) и свободных (Free) страниц теперь стали намного меньше. Большая часть памяти, выделенной программе TestLimit, взята из страниц, фигурировавших в этих списках.

7. Далее с помощью RAMMap нужно оценить выделение физических страниц процесса. Перейдите на вкладку Physical Pages и установите фильтр, находящийся в нижней части столбца Process, присвоив ему значение Testlimit.exe. В следующем окне показаны все физические страницы, являющиеся частью рабочего набора процесса.

image

8. Нам нужно идентифицировать физическую страницу, задействованную в выделении физического адресного пространства, которое было выполнено с помощью ключа –d при запуске программы TestLimit. RAMMap не дает никаких указаний на то, какие виртуальные области были выделены благодаря вызову из RAMMap функции VirtualAlloc. Но мы можем получить ценную подсказку на этот счет с помощью программы VMMap. Вызвав VMMap для
того же процесса, мы получим следующий результат (см. рис. на с. 535 вверху).

9. В нижней части выводимой информации находятся сотни выделенных областей для закрытых данных процесса, каждая из которых имеет размер 1 Мбайт при 1 Мбайт подтвержденной памяти. Это соответствует размеру памяти, выделенной программой TestLimit. В предыдущей копии экрана подсвечен первый из таких вариантов распределения. Заметьте, что его начальный виртуальный адрес равен 0x310000.

10. Теперь вернемся к информации о физической памяти, выводимой на экран программой RAMMap. Перестройте столбцы так, чтобы хорошо был виден столбец Virtual Address. Щелкните на нем, чтобы отсортировать строки по этому значению, и вы сможете найти нужный виртуальный адрес (см. рисунок на с. 535 внизу).

image

11. Здесь показано, что виртуальная страница, начинающаяся с адреса 0x310000, в данный момент отображена на физический адрес 0x212D1000. С ключом -d программа TestLimit записывает в первые байты каждой выделенной области свое имя. Это можно продемонстрировать с помощью команды !dc локального отладчика ядра (dc — сокращение от «display characters», т. е. вывод символов по физическому адресу):

lkd> !dc 0x212d1000
#212d1000 74736554 696d694c 00000074 00000000 TestLimit.......
#212d1010 00000000 00000000 00000000 00000000 ................
...

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

13. Выбрав в программе VMMap процесс TestLimit, откройте меню View и выберите команду Empty Working Set, чтобы сократить рабочий набор процесса до минимума. Теперь в окне VMMap должна выводиться следующая информация:

14. Обратите внимание на то, что линейка Working Set (Рабочий набор) практически пуста. В средней части для процесса показано, что общий размер рабочего набора равен всего лишь 4 Кбайт, причем почти все его пространство занято таблицами страниц. Теперь вернитесь в RAMMap. На вкладке Use Counts видно, что количество активных страниц существенно сократилось, а большое количество страниц находится в списке измененных и существенное количество страниц — в списке ожидающих.

image

15. Данные на вкладке Processes программы RAMMap подтверждают, что большинство этих страниц появилось в данных списках из-за процесса TestLimit.

image

» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок

Для Хаброжителей скидка 20% по купону — Windows

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

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

  • About
  • Blog
  • Projects
  • Help
  • Donate

    Donate icon
    An illustration of a heart shape

  • Contact
  • Jobs
  • Volunteer
  • People

Bookreader Item Preview

texts

windows-internals-part1-7th

Windows Internals

Addeddate
2017-09-13 02:55:18
Foldoutcount
0
Identifier
windows-internals-part1-7th
Identifier-ark
ark:/13960/t3kx1mc2x
Ocr
ABBYY FineReader 11.0
Ocr_converted
abbyy-to-hocr 1.1.7
Ocr_module_version
0.0.13
Page_number_confidence
41.58
Pages
1432
Ppi
300
Scanner
Internet Archive HTML5 Uploader 1.6.3

comment

Reviews

There are no reviews yet. Be the first one to
write a review.

38,190

Views

30
Favorites

DOWNLOAD OPTIONS

Uploaded by

barnavo

on

SIMILAR ITEMS (based on metadata)

Об авторах этого издания ………………………………………………………………………………..16

Предисловие………………………………………………………………………………………………….18

Введение………………………………………………………………………………………..21

История серии…………………………………………………………………………………………………………………21

Изменения в седьмом издании………………………………………………………………………………..22

Изменения в томе 2…………………………………………………………………………………………………..23

Практические эксперименты…………………………………………………………………………………….23

Незатронутые темы……………………………………………………………………………………………….23

Предупреждение и предостережение…………………………………………………………………………..24

Чего мы ожидаем от читателя……………………………………………………………………………………….24

Структура книги………………………………………………………………………………………………….24

Шрифтовые выделения………………………………………………………………………………………25

Благодарности………………………………………………………………………………………………..25

Остаемся на связи……………………………………………………………………………………………27

От издательства………………………………………………………………………………………………..27

 Глава 8 Системные механизмы…………………………………………………………………………28

Модель выполнения кода процессором………………………………………………………………………29

Сегментация………………………………………………………………………………………………………………29

Сегменты состояния задач……………………………………………………………………………………….34

Аппаратные уязвимости к атакам по сторонним каналам………………………………………..37

Внеочередное выполнение команд…………………………………………………………………………38

Блок предсказания переходов…………………………………………………………………………………39

Кэш процессора…………………………………………………………………………………………………………40

Атаки по сторонним каналам…………………………………………………………………………………..42

Меры борьбы с атаками по сторонним каналам в Windows…………………………………….46

Затенение KVA………………………………………………………………………………………………………….47

Аппаратный контроль непрямых переходов (IBRS, IBPB, STIBP, SSBD)……..51

Retpoline и оптимизация импорта………………………………………………………………………….53

Сопряжение STIBP…………………………………………………………………………………………………..57

Диспетчеризация системных прерываний………………………………………………………………….61

Диспетчеризация прерываний………………………………………………………………………………..63

Конвейерные и инициируемые сообщениями прерывания………………………………..84

Обработка таймера………………………………………………………………………………………………….103

Системные рабочие потоки……………………………………………………………………………………120

Управление исключениями…………………………………………………………………………………..125

Обработка действий системных служб………………………………………………………………..132

WoW64 (Windows-on-Windows)……………………………………………………………………………….147

Ядро WoW64……………………………………………………………………………………………………………148

Перенаправление путей в файловой системе……………………………………………………..152

Перенаправление в системном реестре………………………………………………………………..154

Симуляция X86 на платформах AMD64……………………………………………………………..155

ARM…………………………………………………………………………………………………………………………..157

Модели памяти………………………………………………………………………………………………………..157

Симуляция ARM32 на платформах ARM64……………………………………………………….158

Симуляция x86 на платформах ARM64………………………………………………………………159

Диспетчер объектов………………………………………………………………………………………………………169

Объекты исполнительной системы………………………………………………………………………172

Структура объектов………………………………………………………………………………………………..176

Синхронизация…………………………………………………………………………………………………..222

Высокоуровневая IRQL-синхронизация…………………………………………………………….223

Низкоуровневая IRQL-синхронизация……………………………………………………………….230

Продвинутый локальный вызов процедур………………………………………………………………..267

Модель подключения……………………………………………………………………………………………..268

Модель сообщений………………………………………………………………………………………………….270

Асинхронные операции………………………………………………………………………………………….273

Просмотры, области и разделы……………………………………………………………………………..274

Атрибуты…………………………………………………………………………………………………………………..275

Двоичные объекты, дескрипторы и ресурсы……………………………………………………….276

Передача дескрипторов………………………………………………………………………………………….277

Безопасность…………………………………………………………………………………………………………….279

Производительность……………………………………………………………………………………………….280

Управление электропитанием……………………………………………………………………………….281

Атрибут прямого события ALPC………………………………………………………………………….282

Отладка и трассировка……………………………………………………………………………………………282

Средство уведомлений Windows………………………………………………………………………………..284

Возможности WNF…………………………………………………………………………………………………285

Пользователи WNF…………………………………………………………………………………………………286

Именованные состояния WNF и хранение…………………………………………………………292

Агрегация событий WNF……………………………………………………………………………………….297

Отладка в пользовательском режиме…………………………………………………………………………299

Поддержка со стороны ядра…………………………………………………………………………………..299

Платформенно-зависимая поддержка………………………………………………………………….301

Поддержка подсистемы Windows…………………………………………………………………………303

Пакетные приложения…………………………………………………………………………………………………304

Приложения UWP………………………………………………………………………………………………….306

Приложения Centennial………………………………………………………………………………………….307

Диспетчер активности хоста………………………………………………………………………………….311

Репозиторий состояний………………………………………………………………………………………….313

Мини-репозиторий зависимостей………………………………………………………………………..317

Фоновые задачи и инфраструктура брокеров…………………………………………………….318

Установка и запуск пакетных приложений…………………………………………………………321

Активация пакетов………………………………………………………………………………………………….321

Регистрация пакетов……………………………………………………………………………………………….328

Заключение……………………………………………………………………………………………………………….330

Глава 9 Технологии виртуализации……………………………………………………………………..331

Гипервизор Windows……………………………………………………………………………………………………331

Разделы, процессы и потоки………………………………………………………………………………….333

Запуск гипервизора…………………………………………………………………………………………………338

Диспетчер памяти гипервизора…………………………………………………………………………….344

Планировщики Hyper-V………………………………………………………………………………………..353

Гипервызовы и TLFS гипервизора……………………………………………………………………….365

Перехваты…………………………………………………………………………………………………………………367

Синтетический контроллер прерываний…………………………………………………………….368

API платформы гипервизора Windows и разделы EXO……………………………………371

Вложенная виртуализация…………………………………………………………………………………….374

Гипервизор Windows на ARM64…………………………………………………………………………..382

Стек виртуализации……………………………………………………………………………………………………..383

Служба диспетчера виртуальных машин и рабочие процессы…………………………384

Драйвер VID и диспетчер памяти стека виртуализации…………………………………..386

Работа виртуальной машины ……………………………………………………………………………….387

VMBus……………………………………………………………………………………………………………………….393

Первичный обмен квитирующими сообщениями VMBus………………………………..394

Поддержка виртуального оборудования……………………………………………………………..400

Виртуальные машины с поддержкой VA…………………………………………………………….408

Безопасность на основе виртуализации (VBS)………………………………………………………..413

Виртуальные уровни доверия и виртуальный безопасный режим………………….414

Сервисы, предоставляемые VSM, и требования…………………………………………………416

Безопасное ядро (Secure Kernel)…………………………………………………………………………………419

Виртуальные прерывания………………………………………………………………………………………420

Безопасный перехват………………………………………………………………………………………………423

Системные вызовы VSM………………………………………………………………………………………..425

Защищенные потоки и планирование………………………………………………………………….432

Hypervisor-Enforced Code Integrity (HVCI)……………………………………………………….435

Виртуализация UEFI во время выполнения………………………………………………………435

Запуск VSM……………………………………………………………………………………………………………..437

Диспетчер памяти безопасного ядра…………………………………………………………………….441

Горячее исправление………………………………………………………………………………………………447

Изолированный пользовательский режим……………………………………………………………….450

Создание трастлетов……………………………………………………………………………………………….451

Защищенные устройства………………………………………………………………………………………..455

Анклавы на основе VBS………………………………………………………………………………………….458

Аттестация среды выполнения System Guard…………………………………………………….466

Заключение……………………………………………………………………………………………………..471

Глава 10 Управление, диагностика и трассировка……………………………………………..472

Реестр………………………………………………………………………………………………………………472

Просмотр и изменение реестра……………………………………………………………………………..472

Использование реестра…………………………………………………………………………………………..473

Типы данных реестра………………………………………………………………………………………………474

Логическая структура реестра……………………………………………………………………………….475

Кусты приложений………………………………………………………………………………………………….484

Расширение для работы с реестром в режиме транзакций — Transactional Registry (TxR)………………………………………………………………………………….486

Мониторинг активности реестра…………………………………………………………………………..487

Внутреннее устройство Process Monitor……………………………………………………………..488

Внутреннее устройство реестра…………………………………………………………………………….489

Реорганизация кустов…………………………………………………………………………………………….499

Пространство имен и работа реестра……………………………………………………………………500

Обеспечение надежного хранения………………………………………………………………………..503

Фильтрация реестра……………………………………………………………………………………………….508

Виртуализация реестра…………………………………………………………………………………………..508

Оптимизация реестра……………………………………………………………………………………………..512

Службы Windows………………………………………………………………………………………………………….512

Приложения служб…………………………………………………………………………………………………513

Учетные записи служб……………………………………………………………………………………………522

Диспетчер управления службами…………………………………………………………………………536

Программы управления службами……………………………………………………………………….541

Запуск служб……………………………………………………………………………………………………………542

Службы с отложенным автозапуском………………………………………………………………….549

Службы с запуском по триггеру……………………………………………………………………………549

Ошибки, возникающие при запуске……………………………………………………………………..551

Признание загрузки и последняя удачная конфигурация………………………………..552

Сбои служб………………………………………………………………………………………………………………..554

Завершение работы службы…………………………………………………………………………………..556

Процессы, общие для нескольких служб……………………………………………………………..557

Теги служб………………………………………………………………………………………………………………..561

Пользовательские службы……………………………………………………………………………………..562

Пакетные службы……………………………………………………………………………………………………566

Защищенные службы……………………………………………………………………………………………..566

Планирование задач и UBPM……………………………………………………………………………………..569

Планировщик задач………………………………………………………………………………………………..569

Унифицированный диспетчер фоновых процессов…………………………………………..576

COM-интерфейсы планировщика задач……………………………………………………………..581

Инструментарий управления Windows…………………………………………………………………….582

Архитектура WMI…………………………………………………………………………………………………..582

Поставщики WMI…………………………………………………………………………………………………..584

Общая информационная модель и язык формата управляемых объектов…….585

Связи классов…………………………………………………………………………………………………………..589

Реализация WMI…………………………………………………………………………………………………….592

Безопасность WMI………………………………………………………………………………………………….594

Трассировка событий для Windows…………………………………………………………………………..594

Инициализация ETW…………………………………………………………………………………………….597

Сеансы ETW…………………………………………………………………………………………………………….599

Поставщики ETW…………………………………………………………………………………………………..602

Поставка событий……………………………………………………………………………………………………607

Поток ETW Logger………………………………………………………………………………………………….608

Потребление событий…………………………………………………………………………………………….610

Системные средства ведения журнала (логгеры)………………………………………………614

Безопасность ETW………………………………………………………………………………………………….621

Динамическая трассировка………………………………………………………………………………………….625

Внутренняя архитектура………………………………………………………………………………………..628

Библиотека типов DTrace………………………………………………………………………………………635

Отчеты об ошибках Windows………………………………………………………………………………………637

Сбой пользовательского приложения………………………………………………………………….638

Сбой в режиме ядра (системы)……………………………………………………………………………..645

Обнаружение зависания процесса………………………………………………………………………..655

Глобальные флаги………………………………………………………………………………………………..658

Прослойки ядра……………………………………………………………………………………………………661

Инициализация механизма прослоек…………………………………………………………………..662

База данных прослоек…………………………………………………………………………………………….664

Прослойки драйверов……………………………………………………………………………………………..665

Прослойки устройств……………………………………………………………………………………………..669

Заключение……………………………………………………………………………………………………………669

Глава 11 Кэширование и файловые системы……………………………………………………….670

Терминология………………………………………………………………………………………………………….670

Ключевые функции диспетчера кэша………………………………………………………………………..672

Единый централизованный системный кэш……………………………………………………….672

Диспетчер памяти……………………………………………………………………………………………………672

Когерентность кэша………………………………………………………………………………………………..673

Виртуальное блочное кэширование……………………………………………………………………..674

Потоковое кэширование…………………………………………………………………………………………675

Поддержка восстанавливаемых файловых систем…………………………………………….675

Усовершенствования рабочего набора NTFS MFT……………………………………………676

Поддержка разделов памяти………………………………………………………………………………….677

Управление виртуальной памятью кэша…………………………………………………………………..678

Размер кэша……………………………………………………………………………………………………….680

Виртуальный размер кэша……………………………………………………………………………………..680

Размер рабочего набора кэша………………………………………………………………………………..680

Физический размер кэша……………………………………………………………………………………….681

Структуры данных кэша………………………………………………………………………………………………683

Общесистемные структуры данных кэша……………………………………………………………683

Структуры данных кэша для отдельного файла…………………………………………………686

Интерфейсы файловой системы…………………………………………………………………………………689

Копирование в кэш и из него…………………………………………………………………………………691

Кэширование с помощью интерфейсов отображения и закрепления……………..691

Кэширование с помощью интерфейсов прямого доступа к памяти………………..692

Быстрый ввод-вывод……………………………………………………………………………………….692

Чтение с упреждением и отложенная запись……………………………………………………………694

Интеллектуальное упреждающее чтение…………………………………………………………….694

Усовершенствования, связанные с упреждающим чтением…………………………….696

Кэширование с отложенной записью и поздняя запись……………………………………697

Отключение поздней записи для файла………………………………………………………………703

Принудительная запись кэша на диск………………………………………………………………….704

Сброс отображенных файлов на диск…………………………………………………………………..704

Дросселирование записи………………………………………………………………………………………..705

Системные потоки…………………………………………………………………………………………………..706

Агрессивная отложенная запись и низкоприоритетная поздняя запись………..707

Динамическая память……………………………………………………………………………………………..708

Учет дисковых операций ввода-вывода в диспетчере кэша……………………………..709

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

Форматы файловой системы Windows………………………………………………………………..712

CDFS…………………………………………………………………………………………………………………………712

UDF…………………………………………………………………………………………………………………………..712

FAT12, FAT16 и FAT32………………………………………………………………………………………….713

exFAT………………………………………………………………………………………………………………………..716

NTFS………………………………………………………………………………………………………………………….717

ReFS…………………………………………………………………………………………………………………………..718

Архитектура драйвера файловой системы…………………………………………………………..719

Локальные FSD……………………………………………………………………………………………………….719

Сетевые FSD…………………………………………………………………………………………………………….721

Операции с файловой системой……………………………………………………………………………728

Явный файловый ввод-вывод……………………………………………………………………………….729

Запись измененной и отображенной страницы диспетчера памяти………………..733

Система поздней записи диспетчера кэша…………………………………………………………..733

Поток упреждающего чтения диспетчера кэша………………………………………………….734

Обработчик отказов страниц диспетчера памяти………………………………………………734

Драйверы фильтров файловой системы и мини-фильтры……………………………….735

Фильтрация именованных каналов и мейлслоты………………………………………………736

Управление поведением точки повторной обработки……………………………………….737

Process Monitor………………………………………………………………………………………………………..739

Файловая система NT ………………………………………………………………………………740

Требования к файловой системе высокого класса……………………………………………..741

Восстанавливаемость……………………………………………………………………………………………..741

Безопасность…………………………………………………………………………………………………………….741

Резервирование данных и отказоустойчивость………………………………………………….742

Дополнительные возможности NTFS………………………………………………………………….742

Несколько потоков данных……………………………………………………………………………………743

Имена на основе Юникода…………………………………………………………………………………….745

Общее средство индексирования………………………………………………………………………….746

Динамическое перераспределение плохих кластеров………………………………………..746

Жесткие ссылки………………………………………………………………………………………………………746

Символические (мягкие) ссылки и соединения…………………………………………………747

Сжатие и разреженные файлы………………………………………………………………………………750

Регистрация изменений………………………………………………………………………………………….751

Пользовательские квоты в томе…………………………………………………………………………….752

Отслеживание ссылок…………………………………………………………………………………………….752

Шифрование…………………………………………………………………………………………………………….753

Семантика удаления в стиле POSIX…………………………………………………………………….754

Дефрагментация………………………………………………………………………………………………………757

Динамическая разбивка на разделы……………………………………………………………………..760

Поддержка NTFS для многоуровневых томов……………………………………………………762

Драйвер файловой системы NTFS……………………………………………………………………………..766

Структура NTFS на диске……………………………………………………………………………………………769

Тома…………………………………………………………………………………………………………………………..769

Кластеры…………………………………………………………………………………………………………………..770

Главная файловая таблица…………………………………………………………………………………….771

Номера файловых записей…………………………………………………………………………………….775

Файловые записи…………………………………………………………………………………………………….776

Имена файлов………………………………………………………………………………………………………….779

Туннелирование………………………………………………………………………………………………………782

Резидентные и нерезидентные атрибуты…………………………………………………………….783

Сжатие данных и разреженные файлы………………………………………………………………..787

Сжатие разреженных данных………………………………………………………………………………..787

Сжатие неразреженных данных……………………………………………………………………………789

Разреженные файлы……………………………………………………………………………………………….791

Файл журнала изменений………………………………………………………………………………………791

Индексирование………………………………………………………………………………………………………796

Идентификаторы объектов……………………………………………………………………………………798

Контроль над квотами…………………………………………………………………………………………….799

Консолидированная безопасность………………………………………………………………………..800

Точки повторной обработки………………………………………………………………………………….801

Storage Reserves и NTFS Reservations…………………………………………………………………..803

Поддержка транзакций…………………………………………………………………………………………..806

Изоляция………………………………………………………………………………………………………………….807

Транзакционные API………………………………………………………………………………………………808

Реализация на диске……………………………………………………………………………………………….809

Реализация протоколирования……………………………………………………………………………..812

Поддержка восстановления NTFS……………………………………………………………………………..812

Конструкция…………………………………………………………………………………………………………….813

Регистрация метаданных……………………………………………………………………………………….814

Служба файла журнала………………………………………………………………………………………….814

Типы записей в журнале………………………………………………………………………………………..816

Восстановление……………………………………………………………………………………………………….819

Проход анализа………………………………………………………………………………………………………..819

Проход повтора………………………………………………………………………………………………………..820

Проход отмены………………………………………………………………………………………………………..821

Восстановление плохих кластеров NTFS…………………………………………………………….823

Самовосстановление……………………………………………………………………………………………….827

Проверка диска в режиме онлайн и быстрое восстановление………………………….828

Зашифрованная файловая система…………………………………………………………………………….831

Первичное шифрование файла …………………………………………………………………………….834

Процесс расшифровки……………………………………………………………………………………………837

Резервное копирование зашифрованных файлов………………………………………………837

Копирование зашифрованных файлов………………………………………………………………..838

Передача шифрования в BitLocker……………………………………………………………………….839

Поддержка шифрования в режиме онлайн………………………………………………………….840

Диски с прямым доступом…………………………………………………………………………………………..842

Модель драйвера DAX……………………………………………………………………………………………844

Тома DAX…………………………………………………………………………………………………………………845

Кэшированный и некэшированный ввод-вывод в томах DAX………………………..846

Отображение исполняемых образов…………………………………………………………………….847

Блоковые тома…………………………………………………………………………………………………………851

Драйверы фильтров файловой системы и DAX…………………………………………………852

Сброс ввода-вывода в режиме DAX……………………………………………………………………..854

Поддержка больших и огромных страниц…………………………………………………………..855

Поддержка виртуальных дисков постоянной памяти и Storage Spaces………….859

Устойчивая файловая система……………………………………………………………………………………863

Архитектура Minstore……………………………………………………………………………………………..864

Физическая схема B+-дерева………………………………………………………………………………….866

Распределители……………………………………………………………………………………………………….867

Таблица страниц……………………………………………………………………………………………………..870

Ввод-вывод Minstore………………………………………………………………………………………………871

Архитектура ReFS…………………………………………………………………………………………………..873

Дисковая структура ReFS………………………………………………………………………………………877

Идентификаторы объектов……………………………………………………………………………………878

Безопасность и журнал изменений………………………………………………………………………879

Расширенные возможности ReFS………………………………………………………………………………880

Клонирование блоков файлов (поддержка моментальных снимков) и разреженный VDL……………………………………………………………………………………………….880

Сквозная запись в ReFS…………………………………………………………………………………………883

Поддержка восстановления ReFS…………………………………………………………………………885

Обнаружение утечек……………………………………………………………………………………………….887

Тома магнитной записи внахлест………………………………………………………………………….888

Поддержка ReFS для многоуровневых томов и SMR………………………………………..890

Уплотнение контейнеров……………………………………………………………………………………….893

Сжатие и фантомные файлы………………………………………………………………………………….896

Storage Spaces……………………………………………………………………………………………………897

Внутренняя архитектура Storage Spaces………………………………………………………………898

Услуги, предоставляемые Storage Spaces…………………………………………………………….899

Заключение…………………………………………………………………………………………………..903

Глава 12. Запуск и завершение работы системы………………………………………………..905

Процесс загрузки…………………………………………………………………………………………………………..905

Загрузка UEFI…………………………………………………………………………………………………………906

Процесс загрузки BIOS………………………………………………………………………………………….910

Безопасная загрузка………………………………………………………………………………………………..910

Диспетчер загрузки Windows………………………………………………………………………………..914

Меню загрузки…………………………………………………………………………………………………………933

Запуск загрузочного приложения…………………………………………………………………………934

Измеренная загрузка………………………………………………………………………………………………935

Доверенное исполнение………………………………………………………………………………………….940

Загрузчик операционной системы Windows………………………………………………………943

Загрузка из iSCSI…………………………………………………………………………………………………….946

Загрузчик гипервизора…………………………………………………………………………………………..947

Политика запуска VSM………………………………………………………………………………………….949

Безопасный запуск………………………………………………………………………………………………….952

Инициализация ядра и исполнительных подсистем…………………………………………955

Фаза 1 инициализации ядра………………………………………………………………………………….961

Smss, Csrss и Wininit……………………………………………………………………………………………….967

ReadyBoot…………………………………………………………………………………………………………………972

Автоматически запускаемые образы…………………………………………………………………….974

Завершение работы…………………………………………………………………………………………………975

Спящий режим и быстрый запуск………………………………………………………………………..979

Среда восстановления Windows (WinRE)………………………………………………………….984

Безопасный режим………………………………………………………………………………………………….986

Загрузка драйвера в безопасном режиме……………………………………………………………..988

Пользовательские программы с поддержкой безопасного режима…………………990

Файл состояния загрузки………………………………………………………………………………………990

Заключение……………………………………………………………………………………………………………991

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как открыть windows image backup
  • Как открыть диалоговое окно на windows 7
  • Epson perfection v600 photo windows 10
  • Командная строка windows 10 как открыть горячие клавиши
  • Как обновить панель задач в windows 10