Пакет CRK основан на материалах 4-го издания книги Windows Internals ("Внутренняя структура ОС Windows") [ 1 ] . Авторы книги — М.Руссинович (M. Russinovich) и Д.Соломон (D. Solomon) при участии профессора Андреаса Польце (Andreas Polze), Институт Хассо-Платтнера, Германия. Книга охватывает все разделы ACM/IEEE-CS OS BOK и другие темы.
Материал для изучения "масштабируется" на несколько уровней, имеет модульную структуру (может использоваться целиком или по частям). Приведено большое число учебных примеров. Каждый раздел включает базовые и расширенные модули. Базовые модули содержат материалы, предназначенные для включения в полный учебный курс по ОС базового уровня продолжительностью в один семестр. Расширенные модули содержат материалы, предназначенные для включения в курс углубленного изучения ОС продолжительностью в один семестр. Во всех разделах приводятся образцы исходного кода.
Всего CRK включает около 100 часов инструктивных и учебных материалов:
Полная версия CRK стала доступной в феврале 2006 года.
Содержимое первого этапа обновлено. Теперь все разделы содержат ссылки на исходный код, который находится на компакт-диске и на академическом сайте [ 2 ] .
Использование CRK.Пакет CRK - самый популярный на настоящее время компонент учебного процесса MSDN Academic Alliance (MSDNAA). Используется преимущественно в лекциях во многих университетах - включается в уже имеющиеся презентации (для студентов старших курсов). На основе CRK может быть также разработан факультативный курс по ОС на базе Windows для аспирантов. CRK полезен для самообразования. Он содержит список дипломных проектов для выпускного курса, а также список тем для исследований, - возможных тем для кандидатских диссертаций. CRK предоставляет богатый набор лабораторных ресурсов (руководства, служебные программы и инструменты).
Цели уникального проекта по предоставлению академическому сообществу исходных кодов ядра Windows состоят в следующем:
Исследовательское ядро WRK основано на исходных кодах ОС NT Windows Server 2003 SP1 и Windows x64. Объем - более 800 тысяч строк исходного кода ядра Windows. Код несколько упрощен, добавлены и упорядочены комментарии, исправлены опечатки. Еще раз отметим, что код WRK представляет собой подлинные спецификации и проектную документацию по Windows типа NT.
Использование WRK.Комплекс WRK может быть использован прежде всего для лабораторных работ по программированию – например, для внесения изменений или создание проектов в целях преподавания и проведения экспериментов. Пример возможного проекта: планирование в ОС на основе round-robin (справедливого раздела).
WRK может быть использован также для детального изучения исходного кода, что особенно удобно, если для обучения используется пакет CRK.
WRK может быть использован для студенческих проектов для выпускного курса (дипломов, магистерских диссертаций).
WRK также является хорошей основой для перспективных исследований в рамках кандидатских диссертаций.
Цель ProjectOZ — создание экспериментальной среды для проектов по операционным системам. Студентам и преподавателям предоставляется среда для проектов ОС с использованием API-интерфейса NT. Обеспечиваются в пользовательском режиме простые абстракции. Применяются реальные функциональные возможности ОС, а не "игрушечное" моделирование. В целях преподавания и проведения экспериментов понижен уровень сложности. В простой среде разработки применяются стандартные средства для сборки, отладки и создания инструментария. Поддерживаются эксперименты, связанные с исследованием принципов работы ОС. Поощряется образ мыслей учащихся, направленный на создание готовых к использованию программных продуктов.
В области лабораторных работ по программированию ОС UNIX на сегодняшний день представлена лишь в виде "игрушечной" ОС (Minix) или симуляторов Nachos и XINU.
Для сравнения, ProjectOZ – часть программы WAP - предоставляет среду для разработки учебных и исследовательских проектов по операционным системам с использованием ядра Windows - API-интерфейсов NT.
ProjectOZ достаточно прост, но, тем не менее, обеспечивает реальные функциональные возможности ОС и простую среду разработки с инструментами для сборки, отладки и разработки инструментария.
ProjectOZ выполняется в пользовательском режиме в стандартной системе Windows, благодаря использованию возможностей архитектуры подсистем Windows.
Уровень SPACE проекта ProjectOZ поддерживает более сложные абстракции оборудования. Базовый уровень проекта, BasicOZ, предоставляет основные примитивы функций операционной системы. Поэтому времени на обучение требуется совсем немного, и учащиеся смогут очень быстро перейти к созданию собственных проектов, расширяя BasicOZ.
В заключение лекции, в данном разделе приведем контактные ссылки, любезно предоставленные специалистами Microsoft.
CodePlex (http://www.codeplex.com) – портал, открытый фирмой Microsoft для использования сообществом разработчиков при разработках с открытым исходным кодом.
Parallel Dwarfs (http://paralleldwarfs.codeplex.com) – совместный проект СПбГУ (под руководством проф. В.О. Сафонова) и Microsoft по реализации параллельных алгоритмов решения классических задач прикладной математики ("dwarfs") на основе новейших технологий параллельного программирования Microsoft.
Shared Source – вид условий распространения программного продукта с открытым кодом, при которых, в отличие от Open Source, открытый исходный код имеет кураторов со стороны фирмы, предоставившей его в открытый доступ; кураторы отвечают на вопросы пользователей и исследователей и дают рекомендации по развитию и сопровождению кода.
Shared Source Common Language Infrastructure (SSCLI, Rotor) - академическая версия .NET, распространяемая с открытыми исходными кодами для использования в преподавании и в исследованиях.
Академическая программа Windows (WAP) – программа, организованная фирмой Microsoft для изучения на основе открытых исходных кодов операционных систем семейства Windows, включая как новейшие ОС типа Windows NT / 2000 / 2003 / 2008 / Vista / 7, так и версии Windows для встроенных систем.
Исследовательское ядро Windows (Windows Research Kernel) — исходные коды ядра Windows типа NT, аннотированные подробными комментариями, и двоичные файлы, интегрированные со средой для создания и тестирования экспериментальных версий ядра Windows в целях обучения и исследования; часть программы WAP.
Пакет Windows Operating Systems Internals Curriculum Resource Kit (CRK) — пакет презентаций, экспериментов, лабораторных работ, тестов и заданий для включения учебных примеров по ядру Windows в учебные курсы по операционным системам; часть программы WAP.
Проект ProjectOZ — проект создания среды операционных систем с использованием встроенных интерфейсов ядра Windows для выполнения в пользовательском режиме простых и ясных абстракций процессора, диспетчера памяти, механизма ловушек и физической памяти, которые могли бы применяться в экспериментах, связанных с исследованием принципов работы операционных систем; часть программы WAP.
Программа Shared Source Initiative (SSI) —организационная структура, целью которой является предоставление доступа к исходным кодам продуктов Microsoft для преподавания и исследований.
Для использования при обучении и в исследованиях открытых исходных кодов продуктов фирмы Microsoft, фирма Microsoft организовала академическую программу Shared Source Initiative (SSI). Она включает более 150 проектов, в ней участвуют более 2 млн. академических разработчиков.
Для развития программы SSI открыт портал CodePlex, поддерживающий проекты с открытым исходным кодом.
Для изучения и развития системы Windows на основе ее открытых исходных кодов фирма Microsoft организовала программу Windows Academic Program (WAP). Целью Microsoft в этой программе является не только более широкая популяризация и более глубокое изучение Windows пользователями, но и привлечение свежих оригинальных идей и молодых талантливых академических разработчиков к тематике операционных систем и системы Windows.
Основные компоненты Windows Academic Program:
Эти компоненты свободно доступны на академическом портале Windows. Для преподавателей выпущен также компакт-диск с этими учебными ресурсами.
Пакет учебных ресурсов CRK основан на материале уникальной книги Д. Соломона и М. Руссиновича по внутренней архитектуре ОС Windows.
Исследовательское ядро Windows содержит более 800 тыс. строк исходного кода, основанного на коде ядра ОС Windows Server 2003 SP1 и Windows x64. К исходным кодам прилагаются подлинные спецификации и проектная документация по ядру Windows.
Цель проекта ProjectOZ – создание экспериментальной среды для исследовательских проектов в области операционных систем. Он составлен на основе проекта SPACE Калифорнийского университета в Санта-Барбаре.
В заключение лекции приведены ссылки на описанные академические ресурсы.