Практическое изучение Windows Research Kernel
Аппаратура и программные инструменты, необходимые для лабораторной работы
Настольный или портативный компьютер с одной из версий операционной системы Microsoft Windows
Продолжительность лабораторной работы
2 академических часа
Обзор Windows Research Kernel
Пакет WRK включает исходный код ядраWindows XP x64 и Windows Server 2003 SP1 с окружением для сборки и тестирования экспериментальных версий ядра Windows для использования в целях изучения и преподавания.
WRK включает исходные коды для следующих компонент:
- Processes – Процессы
- Threads -Потоки
- LPC – Локальные вызовы процедур
- Virtual memory – Виртуальная память
- Scheduler - Планировщик
- Object manager – Менеждер объектов
- I/O manager – Менеджер ввода-выводв
- Synchronization - Синхронизация
- Worker threads – Рабочие потоки
- Kernel heap manager – Менеджер кучи ядра
- Прочая функциональность ядра (NTOS)
Пакет WRK полезен при разработке проектов, позволяющих студентам исследовать принципы операционной системы с использованием исходных кодов ядра. Он поддерживает построение экспериментов и проектов на основе модификации ядра Windows , обеспечивая высокоуровневые методы обучения и исследования и лучшее понимание архитектуры и реализации Windows.
WRK - Детали
Пакет Windows Research Kernel содержит исходные коды ядра Windows (NTOS).
NTOS реализует основные функции ОС для:
- Управления процессами
- Управления потоками
- Управления виртуальной памятью и кэш-памятью
- Управления вводом-выводом
- Управления реестром
- Функцй исполнительной подсистемы ядра (executive), таких, как куча ядра и синхронизация
- Менеджера объектов
- Механизма локального вызова процедур
- Монитора безопасности
- Низкоуровневого управления процессором (планирование потоков, асинхронные и отложенные вызовы процедур, обработка прерываний, обработка исключений)
Компонента Hardware Abstraction Layer, файловые системы, сетевые стеки и драйверы устройств реализованы отдельно от NTOS и загружаются в режиме ядра как динамически линкуемые библиотеки. Исходные коды для этих динамических компонент не включены в WRK. Однако некоторые из них доступны в различных инструментальных наборах, опубликованных фирмой Microsoft, таких, как Installable File System Kit и Windows Driver Development Kit.
Пакет WRK включает значительную часть исходных кодов ядра NTOS из самых ноых версий Windowsподдерживающих архитектуру x64. Исходные коды ядра, не включенные в WRK, относятся, главным образом, к компонентам Plug and Play (динамическому подключению устройств), управлению электропитанием, верификатору устройств, интерфейсу отладки ядра и виртуальной машине DOS (выполняющей DOS-приложения).
Пакет WRK предназначается для преподавателей, работающих в области операционных систем, разрабатывающих курсы и учебники и желающих включить в них информацию о ядре Windows, базирующуюся на реальных исходных кодах.
Пакет WRK включает окружение для сборки и тестирования и бинарные коды для отсутствующих компонент, которые могут быть использованы для сборки полнофункционального ядра NTOS, инсталлируемого в системах Windows Server 2003 для x86/x64 и Windows XP x64.
Скачивание и установка WRK
Скачайте по ссылке [2] пакет Windows Research Kernel и распакуйте полученный архив.
Структура директорий WRK
Войдите в базовую директорию WindowsResearchKernel-WRK.
Вы увидите в Windows Explorer структуру директорий пакета WRK ( рис. 39.1):
Файл README содержит краткое описание структуры пакета.
Файл LICENSE содержит подробное описание лицензии, на основе которой доступен WRK.
Кратко, суть лицензии в том, что WRK может быть использован только для обучения и исследований, но не джля коммерческих разработок.
Откройте файлы README и LICENSE и ознакомьтесь с их содержимым.
Весь материал для изучения в пакете WRK представлен на английском языке.
Ознакомьтесь с содержимым базовых директорий пакета WRK:
- Директория NTDesignWorkbook содержит уникальный материал – фактически это подробные спецификации архитектуры всех компонент ядра Windows. Это – "святая святых" фирмы Microsoft, как и сами исходные коды ядра Windows. Приведение в доступный для изучения вид этих спецификаций для академического сообщества программистов потребовало, по признанию специалистов Microsoft, нескольких лет работы.
- Директория VirtualPC2004S1 содержит дистрибутив инструмента Microsoft под названием Microsoft Virtual PC. Данный инструмент позволяет организовать на Вашем компьютере виртуальную машину, в которую Вы можете инсталлировать любую операционную систему, в том числе – экспериментальную ОС, являющуюся результатом Ваших экспериментов в WRK. В качестве отдельного практического занятия, можете инсталлировать Microsoft Virtual PC и в полученную виртуальную машину инсталлируйте другую операционную систему, например, другую версию Windows или какую-либо версию Linux.
- Директория WRK-v1.2 содержит собственно исходные коды ядра Windows. Их струкуру подробнее рассмотрим немного позже.
Ознакомление со структурой исходных кодов ядра Windows
Войдите в директорию WRK-v1.2.
Изучите структуру директорий ядра, изображенную на рис. 39.2 , краткое описание которой приведем ниже.
Директория public\ содержит include (заголовочные, .h) – файлы, используемые во всем исходном коде системы.
Например, заголовочный файл public\ddk\inc\mountdev.h содержит описание интерфейсов между точкой монтирования (mount point) и монтируемыми устройствами. Ознкомьтесь с содержимым файла. Вы убедитесь, что он (как и другие коды WRK) хорошо самодокументирован, однако для более глубокого понимания требуется подробное изучение на основе книги [ 7 ] .
Директория tools содержит инструменты для сборки из исходных кодов, например, утилиту nmake. Ознакомьтесь с содержимым данной директории.