Аннотация: Windows Academic Program. Структура Windows Research Kernel. HTML‑документация по WRK.
Windows Academic Program
В 2006 году корпорация Microsoft в рамках академической программы Windows (Windows Academic Program) сделала доступной для академических организаций исходный код исследовательского ядра Windows (Windows Research Kernel, WRK) [15]. WRK основано на коде операционных систем Windows Server 2003 SP1 и Windows XP x64 [13; 11].
Кроме WRK в академическую программу Microsoft входят следующие компоненты [15]:
- учебные материалы по курсу операционных систем на основе Windows XP – Windows Internals Curriculum Resource Kit (CRK). Составлены в соответствии с рекомендациями ACM/IEEE по преподаванию курса «Операционные системы» (Operating systems, OS) [4]. Материалы включают презентации лекций, указания к лабораторным работам (в том числе лабораторные работы для Windows 7), задания, тесты, а также материалы для преподавателей (Instructor Supplement);
- среда ProjectOZ для экспериментального исследования ядра Windows;
- описание опыта университетов (Faculty Experiences) по преподаванию в рамках академической программы Microsoft.
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей (Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance (MSDN AA).
Microsoft, предоставляя академическому сообществу исходные коды ядра Windows, преследовало следующие цели [11]:
- облегчить студентам и преподавателям сравнение Windows с другими операционными системами;
- предоставить студентам возможность для изучения исходных кодов ядра и создания собственных проектов на их основе;
- поддержать исследования и публикации по внутреннему устройству Windows;
- содействовать разработке учебников по операционным системам на основе ядра Windows;
- упростить лицензирование.
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены [11].
На рис.5.1 представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра [13].
Рис.
5.1.
Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
В состав WRK, кроме собственно исходных кодов ядра Windows, входят руководство по ядру Windows NT (NT OS/2 Design Workbook) и решение (solution) Visual Studio 2008 (WRK.sln) (которое можно преобразовать для более новых версий Visual Studio).
Руководство по ядру Windows NT было составлено в конце 1980 х – начале 1990 х гг., когда в Microsoft велась разработка новой операционной системы Windows NT с рабочим названием «NT OS/2» сначала совместно с IBM, затем самостоятельно. Руководство содержит ценную информацию по структуре и функциям ядра Windows, а также раскрывает соображения, которые привели разработчиков к тем или иным архитектурным решениям.
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
<Префикс><Операция><Объект>
где <Префикс> обозначает модуль, которому принадлежит функция, <Операция> – действие, совершаемое над <Объектом>.
Например, рассмотрим функцию KeStartThread:
- Ke (префикс) – функция входит в состав ядра;
- Start (операция) – функция начинает выполнение объекта;
- Thread (объект) – объектом является поток.
В таблице 5.1 приведены основные компоненты WRK (см. соответствие с компонентами на рис.5.1) с указанием префиксов входящих в их состав функций.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System1Raw File System («сырая» файловая система) – если Windows не может распознать файловую систему диска, для него назначается Raw File System (драйвер которой реализован в ядре) и все запросы чтения/записи файлов к такому диску отклоняются. |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
- inc – общедоступные заголовочные файлы;
- init – функции инициализации системы.
Приведем ещё один префикс часто встречающихся в WRK функций – Nt. Функции ядра с этим префиксом входят в Native API, они экспортируются Ntdll.dll, их можно вызывать из пользовательского режима. Часто функции с префиксом Nt соответствует WinAPI функция, и, например, при вызове WinAPI функции CreateProcess происходит вызов функции NtCreateProcess.
HTML документация по WRK
В Институте программной инженерии Хассо Платтнера Университета г. Потсдама (Hasso-Plattner-Institute for Software Engineering at University Potsdam) Александром Шмидтом (Alexander Schmidt) и Михаэлем Шёбелем (Michael Schobel) была создана HTML документация по WRK с использованием генератора документации Phoenix Cross Reference (PXR)2http://www.dcl.hpi.uni-potsdam.de/research/WRK/2010/09/introducing-pxr-a-cross-referencing-documentation-compiler/index.html . Данная документация доступна для преподавателей по следующей ссылке:
http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8668
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros) (рис.5.2).
Рис.
5.2.
HTML документация по Windows Research Kernel
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Резюме
В данной лекции представлен обзор исследовательского ядра Windows (Windows Research Kernel, WRK). Перечислены компоненты WRK. Предложено использование HTML документации по WRK.
В следующей лекции будут рассмотрены основные объекты, отвечающие за работу приложений – процессы и потоки.
Контрольные вопросы
- Расскажите о составе академической программы Microsoft.
- Что такое Windows Research Kernel?
- Какие компоненты ядра присутствуют в Windows Research Kernel?
- Перечислите основные компоненты Windows Research Kernel.
- Какие префиксы используются в названиях функций WRK?
- Какая информация имеется в HTML документации по WRK?
Главная / Операционные системы /
Введение во внутреннее устройство Windows / Тест 5
Упражнение 1:
Номер 1
Какие виды процессов работают в пользовательском режиме?
Ответ:
(1) службы
(2) пользовательские приложения
(3) подсистемы окружения
(4) драйверы
Номер 2
Какие подсистемы окружения поддерживает Windows?
Ответ:
(1) Windows и POSIX
(2) Windows
(3) Windows, POSIX и OS/2
(4) Windows, OS/2, MS-DOS
Номер 3
Какие компоненты Windows работают в режиме ядра?
Ответ:
(1) драйверы
(2) исполнительная система
(3) службы
(4) подсистемы окружения
Упражнение 2:
Номер 1
Процесс Winlogon.exe выполняет следующую функцию:
Ответ:
(1) осуществляет процесс входа в систему и выхода из нее
(2) проверяет правильность введенных имени пользователя и пароля
(3) отвечает за выполнение служб
(4) запускает системную оболочку
Номер 2
Процесс Lsass.exe выполняет следующую функцию:
Ответ:
(1) осуществляет процесс входа в систему и выхода из нее
(2) проверяет правильность введенных имени пользователя и пароля
(3) отвечает за выполнение служб
(4) запускает системную оболочку
Номер 3
Процесс Smss.exe выполняет следующую функцию:
Ответ:
(1) отправляет текстовые сообщения по указанному адресу
(2) контролирует драйверы файловой системы
(3) отвечает за выполнение служб
(4) запуск процессов Winlogon и Csrss
Упражнение 3:
Номер 1
Укажите правильное определение понятия "служба" ("сервис") в Windows.
Ответ:
(1) приложение, работающее в фоновом режиме и не требующее взаимодействия с пользователем
(2) программный модуль, управляющий внешним устройством
(3) процесс, отвечающий за взаимодействие с пользователем
(4) компонент операционной системы, обеспечивающий выполнение системных вызовов
Номер 2
Что означает DLL?
Ответ:
(1) динамически подключаемая библиотека
(2) динамически обновляемое приложение
(3) интерфейс связи с данными
(4) приложение, управляющее данными
Номер 3
Что такое "подсистема окружения"?:
Ответ:
(1) компонент операционной системы, предоставляющий доступ приложениям к некоторому подмножеству системных функций
(2) часть системы ввода-вывода
(3) системная служба, отвечающая за взаимодействие с пользователем
(4) набор системных процессов, обеспечивающих вход пользователя в систему
Упражнение 4:
Номер 1
Что представляет собой интерфейс прикладного программирования Windows (Windows API)?
Ответ:
(1) способ взаимодействия процессов пользовательского режима с модулями режима ядра
(2) способ написания программ с графическим интерфейсом пользователя
(3) специальный язык программирования, встроенный в Windows
(4) программа, имеющая возможность взаимодействия с пользователем
Номер 2
Где можно найти подробное описание интерфейса прикладного программирования Windows (Windows API)?
Ответ:
(1) в MSDN
(2) в Windows Help
(3) в руководстве пользователя по Windows
(4) в справках прикладных программ
Номер 3
Укажите основные DLL Windows:
Ответ:
(1) Kernel32.dll
(2) Windows32.dll
(3) User32.dll
(4) Drivers32.dll
Упражнение 5:
Номер 1
.exe содержит следующие компоненты Windows:
Ответ:
(1) исполнительную систему
(2) подсистему окружения
(3) ядро
(4) системный процесс Winlogon.exe
Номер 2
Исполнительная система реализует следующие задачи:
Ответ:
(1) обработка прерываний
(2) управление процессами и потоками
(3) управление электропитанием и энергопотреблением
(4) отображение графического интерфейса пользователя
Номер 3
Диспетчер процессов входит в состав:
Ответ:
(1) исполнительной системы
(2) драйвера управления процессами
(3) службы управления процессами
(4) подсистемы окружения
Упражнение 6:
Номер 1
В состав Windows Research Kernel входят следующие компоненты:
Ответ:
(1) исходный код исследовательского ядра Windows
(2) учебные материалы по курсу операционных систем на основе Windows XP
(3) исходный код системных драйверов
(4) данные экспериментов по сравнению Windows и Linux
Номер 2
Исследовательское ядро Windows написано на следующих языках программирования:
Ответ:
(1) C++ и Ассемблер
(2) C и Ассемблер
(3) С и С++
(4) Паскаль и Ассемблер
Номер 3
Какой из перечисленных ниже компонентов Windows не входит в состав исследовательского ядра Windows?
Ответ:
(1) диспетчер системных сервисов
(2) исполнительная система
(3) ядро
(4) HAL
Упражнение 7:
Номер 1
Для следующего компонента исполнительной системы исходный код в составе исследовательского ядра Windows не предоставляется:
Ответ:
(1) диспетчер ввода-вывода
(2) диспетчер процессов
(3) диспетчер конфигурации
(4) диспетчер электропитания
Номер 2
Названия функций в Windows Research Kernel строятся по следующей схеме:
Ответ:
(1) <Префикс><Операция>
(2) <Операция><Объект><Суффикс>
(3) <Префикс><Операция><Объект>
(4) <Объект><Субъект><Операция>
Номер 3
Выберите правильное утверждение относительно документации по Windows Research Kernel.
Ответ:
(1) в одном из институтов создана HTML-документация по Windows Research Kernel
(2) в MSDN есть специальный раздел, посвященный Windows Research Kernel
(3) Какая-либо документация по Windows Research Kernel отсутствует
Упражнение 8:
Номер 1
Префикс ke означает, что функция входит в состав:
Ответ:
(1) диспетчера процессов
(2) ядра
(3) диспетчера ввода-вывода
(4) подсистемы отладки
Номер 2
Выберите правильное утверждение для функции с префиксом Nt:
Ответ:
(1) входит в Native API и экспортируется Ntdll.dll
(2) входит в Windows API и экспортируется kernel32.dll
(3) входит в диспетчер процессов и недоступна в привилегированном режиме
(4) входит в состав ядра и доступна в привилегированном режиме
Номер 3
Префикс se означает, что функция входит в состав:
Ответ:
(1) диспетчера процессов
(2) ядра
(3) диспетчера безопасности
(4) подсистемы отладки
Содержание
- 1 Что такое Windows Research Kernel?
- 2 Windows Academic Program
- 3 Структура Windows Research Kernel
- 4 HTML документация по WRK
- 5 Дополнительная информация
Что такое Windows Research Kernel?
Windows Research Kernel (WRK) — исходный код ядра ОС Windows (Windows XP x64 и Windows Server 2003 SP1), распространяемый для некоммерческих, исследовательских целей в рамках «Windows Academic Program» под НЕ СВОБОДНОЙ лицензией (где пруфлинк?). Как следствие, этот код не может быть использован в процессе разработки ReactOS (т.е. разработчики никогда не смотрели этот код и не планируют этого делать, пока не изменятся условия лицензирования WRK)
(19:00:58) Fireball: лицензия ихняя, она кабальная (19:01:11) Fireball: эти исходники использовать нельзя почти ни в каком виде.
WRK предназначен для факультетов и преподавателей, работающих в области операционных систем, для разработчиков курсов, авторов учебников и т.д., желающих включить информацию о ядре Windows, основанную на действующем исходном коде. WRK содержит среду для сборки/тестирования и бинарные файлы для исключённых компонентов исходного кода, которые могут быть использованы, чтобы собрать полнофункциональные NTOS ядра для последующей установки на Windows Server 2003 для x86/x64 и Windows XP x64.
Ниже информация из лекции «Исследовательское ядро Windows» курса «Введение во внутреннее устройство Windows» от Intuit.ru.
Windows Academic Program
В 2006 году корпорация Microsoft в рамках академической программы Windows (Windows Academic Program) сделала доступной для академических организаций исходный код исследовательского ядра Windows (Windows Research Kernel, WRK). WRK основано на коде операционных систем Windows Server 2003 SP1 и Windows XP x64.
Кроме WRK в академическую программу Microsoft входят следующие компоненты:
- учебные материалы по курсу операционных систем на основе Windows XP – Windows Internals Curriculum Resource Kit (CRK). Составлены в соответствии с рекомендациями ACM/IEEE по преподаванию курса «Операционные системы» (Operating systems, OS). Материалы включают презентации лекций, указания к лабораторным работам (в том числе лабораторные работы для Windows 7), задания, тесты, а также материалы для преподавателей (Instructor Supplement);
- среда ProjectOZ для экспериментального исследования ядра Windows;
- описание опыта университетов (Faculty Experiences) по преподаванию в рамках академической программы Microsoft.
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей (Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance (MSDN AA).
Microsoft, предоставляя академическому сообществу исходные коды ядра Windows, преследовало следующие цели:
- облегчить студентам и преподавателям сравнение Windows с другими операционными системами;
- предоставить студентам возможность для изучения исходных кодов ядра и создания собственных проектов на их основе;
- поддержать исследования и публикации по внутреннему устройству Windows;
- содействовать разработке учебников по операционным системам на основе ядра Windows;
- упростить лицензирование.
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены.
На следующем рисунке представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра.
Рис.1. Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
В состав WRK, кроме собственно исходных кодов ядра Windows, входят руководство по ядру Windows NT (NT OS/2 Design Workbook) и решение (solution) Visual Studio 2008 (WRK.sln) (которое можно преобразовать для более новых версий Visual Studio).
Руководство по ядру Windows NT было составлено в конце 1980 х – начале 1990 х гг., когда в Microsoft велась разработка новой операционной системы Windows NT с рабочим названием «NT OS/2» сначала совместно с IBM, затем самостоятельно. Руководство содержит ценную информацию по структуре и функциям ядра Windows, а также раскрывает соображения, которые привели разработчиков к тем или иным архитектурным решениям.
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
<Префикс><Операция><Объект>
где <Префикс> обозначает модуль, которому принадлежит функция, <Операция> – действие, совершаемое над <Объектом>.
Например, рассмотрим функцию KeStartThread:
- Ke (префикс) – функция входит в состав ядра;
- Start (операция) – функция начинает выполнение объекта;
- Thread (объект) – объектом является поток.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
- inc – общедоступные заголовочные файлы;
- init – функции инициализации системы.
Приведем ещё один префикс часто встречающихся в WRK функций – Nt. Функции ядра с этим префиксом входят в Native API, они экспортируются Ntdll.dll, их можно вызывать из пользовательского режима. Часто функции с префиксом Nt соответствует WinAPI функция, и, например, при вызове WinAPI функции CreateProcess происходит вызов функции NtCreateProcess.
HTML документация по WRK
В Институте программной инженерии Хассо Платтнера Университета г. Потсдама (Hasso-Plattner-Institute for Software Engineering at University Potsdam) Александром Шмидтом (Alexander Schmidt) и Михаэлем Шёбелем (Michael Schobel) была создана HTML документация по WRK с использованием генератора документации Phoenix Cross Reference (PXR)2 . Данная документация доступна для преподавателей по следующей ссылке:
http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8668
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Дополнительная информация
- Презентация “Windows Research Kernel: Source overview & project” одного из архитекторов ядра Windows, 2006 год.Медиа:WindowsResearchKernel-1.pdf
Microsoft |
---|
Windows Research Kernel • WNT: правдивая история Windows NT • Remote Desktop Protocol • Xming • Windows Subsystem for Linux (WSL) • Запуск DE и графического ПО в WSL • Cygwin • PowerShell |
Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются операционные системы семейства Windows: история, архитектура, принципы управления процессами, памятью, устройствами ввода|вывода, алгоритмы распределения процессорного времени, способы обеспечения безопасности, а также структура файловой системы NTFS.
Виртуальная память располагается …
(1) в оперативной памяти и на жестком диске
(2) только в оперативной памяти
(3) в кэш-памяти и в оперативной памяти
(4) только на жестком диске
Какие компоненты включает подсистема ввода-вывода в Windows?
(1) диспетчер ввода-вывода
(2) диспетчер памяти
(3) драйверы устройств
(4) HAL
Операционная система – это …
(1) комплекс программ, предоставляющий пользователю удобную среду для работы с компьютерным оборудованием
(2) устройство, предназначенное для автоматизации процесса обработки информации
(3) программно-аппаратный комплекс, предназначенный для автоматического решения задач
Какие виды процессов работают в пользовательском режиме?
(1) службы
(2) пользовательские приложения
(3) подсистемы окружения
(4) драйверы
Что такое процесс?
(1) программа в ходе выполнения
(2) вид службы (сервиса)
(3) последовательность шагов для решения задачи
(4) компонент операционной системы
Размер виртуального адресного пространства в 32 разрядных Windows составляет …
(1) 2 гигабайта
(2) 4 гигабайта
(3) 32 гигабайта
(4) 16 экзабайт
Перед выполнением операций с файлом, требуется …
(1) открыть файл
(2) прочитать файл
(3) записать заголовок файла
(4) дойти до конца файла
Системный вызов – это …
(1) вызов удаленной компьютерной системы по сетевому интерфейсу
(2) обращение процессора к устройству на системной плате для выполнения определенной операции
(3) вызов программой специальной системной команды процессора
(4) запрос программы к операционной системе для выполнения определенных действий
Процесс Winlogon.exe выполняет следующую функцию:
(1) осуществляет процесс входа в систему и выхода из нее
(2) проверяет правильность введенных имени пользователя и пароля
(3) отвечает за выполнение служб
(4) запускает системную оболочку
Выберите правильное утверждение относительно многозадачной операционной системы
(1) операционная система умеет запускать в одно и то же время несколько потоков
(2) операционная система умеет запускать в одно и то же время несколько процессов
(3) операционная система поддерживает использование нескольких объектов
(4) операционная система поддерживает одновременный вход нескольких пользователей
Как называется размер блока виртуальной памяти, с которым работает операционная система?
(1) байт
(2) килобайт
(3) страница
(4) таблица
В структуре DRIVER_OBJECT
в поле DriverInit
содержится …
(1) адрес процедуры инициализации драйвера
(2) адрес процедуры выгрузки драйвера
(3) путь к информации о драйвере в реестре
(4) информация о расположении драйвера в памяти
Выберите правильное определение драйвера.
(1) программный модуль, управляющий устройством
(2) программа, осуществляющая сбор информации об аппаратном обеспечении
(3) аппаратный модуль, предназначенный для взаимодействия с внешней памятью
(4) компонент вычислительной системы, отвечающий за интерактивность
Укажите правильное определение понятия «служба» («сервис») в Windows.
(1) приложение, работающее в фоновом режиме и не требующее взаимодействия с пользователем
(2) программный модуль, управляющий внешним устройством
(3) процесс, отвечающий за взаимодействие с пользователем
(4) компонент операционной системы, обеспечивающий выполнение системных вызовов
В состав структуры EPROCESS
входят следующие поля:
(1) CreateTime
– время создания процесса
(2) UniqueProcessId
– уникальный идентификатор процесса
(3) StartAddress
– адрес стартовой функции процесса
(4) PriorityClass
– класс приоритета процесса
Из каких частей состоит виртуальное адресное пространство?
(1) пользовательское виртуальное адресное пространство
(2) потоковое виртуальное адресное пространство
(3) стековое виртуальное адресное пространство
(4) системное виртуальное адресное пространство
Процесс чтения данных с устройства ввода-вывода описывается следующей последовательностью операций:
(1) создание IRP
– помещение IRP
в очередь потока – вызов драйвера
(2) создание объекта DRIVER_OBJECT
– создание объекта DEVICE_OBJECT
– чтение объекта DEVICE_OBJECT
(3) создание объекта DEVICE_OBJECT
– создание IRP
– чтение драйвера
(4) загрузка драйвера – создание объекта DRIVER_OBJECT
– чтение IRP
В состав какого семейства входит операционная система Windows CE?
(1) семейство клиентских операционных систем
(2) семейство серверных операционных систем
(3) семейство мобильных операционных систем
(4) семейство встроенных операционных систем реального времени
Что представляет собой интерфейс прикладного программирования Windows (Windows API)?
(1) способ взаимодействия процессов пользовательского режима с модулями режима ядра
(2) способ написания программ с графическим интерфейсом пользователя
(3) специальный язык программирования, встроенный в Windows
(4) программа, имеющая возможность взаимодействия с пользователем
В ходе создания процесса выполняются следующие этапы:
(1) открытие исполняемого файла
(2) создание объекта «Процесс»
(3) создание основного потока
(4) создание дочернего потока
Функция WinAPI VirtualAlloc позволяет…
(1) резервировать виртуальные страницы
(2) передавать память зарезервированным страницам
(3) выделять память в стеке потока
(4) расширять виртуальное адресное пространство процесса
Что такое файловая система?
(1) способ организации данных в виде файлов на устройствах внешней памяти
(2) способ хранения системных данных в оперативной памяти
(3) система организации доступа к зашифрованным файлам
(4) вид операционной системы, в основе которой лежит работа с файлами
Какие требования предъявлялись при разработке к операционной системе Windows NT 3.1?
(1) поддержка Unicode
(2) поддержка 64-разрядных процессоров
(3) возможность работы в качестве систем реального времени
(4) возможность работы в качестве сервера и клиента
.exe содержит следующие компоненты Windows:
(1) исполнительную систему
(2) подсистему окружения
(3) ядро
(4) системный процесс Winlogon.exe
Выберите правильные утверждения:
(1) При реализации вытесняющего алгоритма планирования потоков операционная система может переключить процессор на другой поток
(2) При реализации вытесняющего алгоритма планирования потоков поток не может сам прервать свое выполнение
(3) При реализации невытесняющего алгоритма планирования потоков только сам поток может передать управление операционной системе
(4) При реализации невытесняющего алгоритма планирования потоков операционная система может переключить процессор на другой поток
Укажите требования к безопасности операционной системы:
(1) обязательная идентификация и аутентификация
(2) управляемый доступ к объектам
(3) хранение объектов в оперативной памяти
(4) защита при повторном использовании объектов
Укажите правильное определение понятия «сектор»?
(1) блок данных фиксированного размера на диске; наименьшая единица информации для диска
(2) логический блок данных на диске, включающий один или несколько кластеров
(3) непрерывная часть жесткого диска, формируемая в процессе высокоуровневого форматирования
(4) совокупность байтов, расположенных на разных разделах одного и того же диска
Какие версии существуют у операционной системы Windows Server 2003?
(1) Web, Standard, Enterprise, Datacenter
(2) Professional, Server, Advanced Server и Datacenter Server
(3) Server, XP
(4) XP, Vista
В состав Windows Research Kernel входят следующие компоненты:
(1) исходный код исследовательского ядра Windows
(2) учебные материалы по курсу операционных систем на основе Windows XP
(3) исходный код системных драйверов
(4) данные экспериментов по сравнению Windows и Linux
Что такое приоритет потока?
(1) целое число, обозначающее степень привилегированности потока
(2) номер потока в очереди потоков
(3) значение, определяющее является ли поток более приоритетным относительно процесса
(4) индекс процесса-владельца потока
Укажите правильные утверждения относительно дескриптора защиты:
(1) дескриптор защиты имеется только у пользователей системы
(2) дескриптор защиты имеют все объекты в системе
(3) в дескрипторе защиты хранится список пользователей, которые могут получить доступ к объекту
(4) дескриптор защиты общий у всех процессов в системе
Укажите особенности файловой системы NTFS, за счет которых обеспечивается свойство восстанавливаемости
(1) атомарные транзакции
(2) шифрование информации
(3) избыточность хранения информации
(4) дисковые квоты для пользователей
Назовите существенное отличие Windows 8 от Windows 7.
(1) интерфейс Modern UI
(2) мгновенный поиск информации на компьютере
(3) контроль учетных записей пользователей
(4) шифрование дисков
Для следующего компонента исполнительной системы исходный код в составе исследовательского ядра Windows не предоставляется:
(1) диспетчер ввода-вывода
(2) диспетчер процессов
(3) диспетчер конфигурации
(4) диспетчер электропитания
В Windows поток может покинуть состояние выполнения по следующим причинам:
(1) ожидание потоком события
(2) вытеснение потока операционной системой
(3) создание нового потока
(4) появление в очереди потока с низшим приоритетом
Какие действия определяются правом учетной записи (account right)?
(1) интерактивный вход в систему
(2) вход в качестве службы
(3) включение компьютера
(4) загрузка драйвера
Из каких частей состоит файловая запись?
(1) заголовок и атрибуты
(2) заголовок
(3) поле имени файла и поле данных файла
(4) поле имени файла и поле указателя на файл
Функция История файлов (File history) в Windows 8…
(1) автоматически сохраняет копии изменяемых файлов, так что при необходимости можно откатить изменения и вернуться к старым версиям файлов
(2) запоминает, какие обращения происходили к файлам на системном разделе за последние 24 часа
(3) сохраняет структуру файловой системы NTFS на выбранном разделе в специальный файл
Префикс ke означает, что функция входит в состав:
(1) диспетчера процессов
(2) ядра
(3) диспетчера ввода-вывода
(4) подсистемы отладки
Выберите правильное утверждение относительно процессов
(1) процесс имеет только базовый приоритет, который нельзя изменять
(2) процесс имеет базовый и текущий приоритеты, которые нельзя изменять
(3) процесс имеет только базовый приоритет, который можно изменять
(4) процесс имеет базовый и текущий приоритеты, которые можно изменять
В приложениях Modern UI поддерживаются следующие виды контрактов:
(1) поиск
(2) общий доступ
(3) запись
(4) проверка совместимости
Выберите верные утверждения относительно виртуальной памяти.
(1) виртуальная память может располагаться как в оперативной памяти, так и на жестком диске
(2) процесс может работать с виртуальной памятью, размер которой превышает размер оперативной памяти
(3) размер виртуальной памяти должен совпадать с размером памяти, используемой операционной системой
(4) виртуальная память предоставляется только пользовательским процессам, не системным
Что такое файл?
(1) совокупность данных, имеющих имя и допускающих операции чтения-записи
(2) место на жестком диске, специально выделенное для хранения пользовательских данных
(3) структура данных, организованная в виде списка, чтение и запись в котором допускается только с одного конца
(4) структура данных, организованная в виде списка, чтение в котором происходит с одного конца, а запись – с другого
Программное обеспечение включает:
(1) прикладное программное обеспечение
(2) справочное программное обеспечение
(3) инструментальное программное обеспечение
(4) системное программное обеспечение
Какие подсистемы окружения поддерживает Windows?
(1) Windows и POSIX
(2) Windows
(3) Windows, POSIX и OS/2
(4) Windows, OS/2, MS-DOS
Что такое поток?
(1) программа в ходе выполнения
(2) вид службы (сервиса)
(3) компонент операционной системы
(4) объект, которому операционная система предоставляет процессорное время
Размер виртуального адресного пространства, доступный процессам, в 32 разрядных Windows составляет …
(1) 2 гигабайта
(2) 4 гигабайта
(3) 32 гигабайта
(4) 16 экзабайт
Операция ввода-вывода представляется в системе объектом типа …
(1) IRP
(2) FILE_OBJECT
(3) DEVICE_OBJECT
(4) IO_STATUS
Приложение, выполняемое в пользовательском режиме процессора, не может:
(1) напрямую обращаться к адресному пространству другого приложения
(2) осуществлять системные вызовы
(3) переключать процессор в привилегированный режим
(4) взаимодействовать с пользователем
Процесс Lsass.exe выполняет следующую функцию:
(1) осуществляет процесс входа в систему и выхода из нее
(2) проверяет правильность введенных имени пользователя и пароля
(3) отвечает за выполнение служб
(4) запускает системную оболочку
Операционные системы Windows NT являются…
(1) однозадачными
(2) многозадачными
(3) однопоточными
(4) многопоточными
Что такое рабочий набор процесса?
(1) подмножество виртуальных страниц процесса, расположенных в физической памяти
(2) набор байт виртуальной памяти, вытесненных на диск
(3) данные, сохраненные в файл подкачки
(4) таблица страниц процесса
Каким образом хранится информация о запрошенной операции ввода-вывода?
(1) в поле MajorFunction
структуры IO_STACK_LOCATION
хранится номер требуемой функции драйвера
(2) в поле RequestedOperation
структуры IRP
хранится код запрошенной операции
(3) в поле Function
структуры DEVICE_OBJECT
хранится адрес запрошенной операции
(4) в поле OperationIndex
структуры DRIVER_OBJECT
хранится индекс требуемой операции
В классификацию операционных систем по способу организации вычислений входят:
(1) системы пакетной обработки
(2) системы разделения времени
(3) системы смешанного времени
(4) системы удаленного доступа
Что означает DLL?
(1) динамически подключаемая библиотека
(2) динамически обновляемое приложение
(3) интерфейс связи с данными
(4) приложение, управляющее данными
За поток в Windows отвечает структура, которая называется …
(1) KPROCESS
(2) ETHREAD
(3) KPOTOK
(4) ESTREAM
В какой части виртуального адресного пространства хранится исполняемый образ процесса?
(1) пользовательское виртуальное адресное пространство
(2) потоковое виртуальное адресное пространство
(3) стековое виртуальное адресное пространство
(4) системное виртуальное адресное пространство
Укажите правильные действия при чтении файла
(1) функция ReadFile
передает дескриптор объекта FILE_OBJECT
функции диспетчера ввода-вывода NtReadFile
(2) функция IopSynchronousServiceTail
помещает объект IRP
в очередь потока
(3) функция NtReadFile
передает объект DEVICE_OBJECT
процессу
(4) функция IopQueueThreadIrp
вызывает драйвер
Какова разрядность операционной системы Windows for Workgroups 3.11?
(1) 11
(2) 16
(3) 32
(4) 64
Где можно найти подробное описание интерфейса прикладного программирования Windows (Windows API)?
(1) в MSDN
(2) в Windows Help
(3) в руководстве пользователя по Windows
(4) в справках прикладных программ
Файлы с какими расширениями в Windows могут быть исполняемыми?
(1) PSD
(2) PIF
(3) BAT
(4) CMM
Для чего используются таблицы страниц?
(1) для установления соответствия виртуальных адресов физическим
(2) для хранения информации о зарезервированных страницах
(3) для организации работы с кучей процесса
(4) для хранения указателей на вершины стеков потоков
Укажите файловые системы, поддерживаемые Windows
(1) exFAT
(2) CDFS
(3) HPFS
(4) WindowsFS
В какую операционную систему Windows впервые была включена поддержка файловой системы NTFS?
(1) Windows 98
(2) Windows NT 3.1
(3) Windows 2000
(4) Windows XP
Исполнительная система реализует следующие задачи:
(1) обработка прерываний
(2) управление процессами и потоками
(3) управление электропитанием и энергопотреблением
(4) отображение графического интерфейса пользователя
В Windows реализован следующий алгоритм планирования потоков:
(1) невытесняющий
(2) вытесняющий, на основе квантования и приоритетов
(3) вытесняющий, на основе только квантования
(4) вытесняющий, на основе только приоритетов
Укажите правильные утверждения относительно маркера доступа:
(1) маркер доступа имеется у каждого пользователя в системе
(2) маркер доступа имеют все объекты в системе
(3) в маркере доступа хранится список пользователей, которые могут получить доступ к объекту
(4) процессы, создаваемые пользователем, наследуют его маркер
Какой объем памяти на диске займет файл размером 1000 байт, если размер сектора – 512 байт, размер кластера – 4 килобайта, файловая система – NTFS?
(1) 512 байт
(2) 1000 байт
(3) 1 килобайта
(4) 4 килобайта
Выберите из списка мобильные операционные системы.
(1) Windows Mobile
(2) Windows Vista
(3) Windows Phone
(4) Windows 9x
Исследовательское ядро Windows написано на следующих языках программирования:
(1) C++ и Ассемблер
(2) C и Ассемблер
(3) С и С++
(4) Паскаль и Ассемблер
В Windows процессорное время распределяется между:
(1) процессами
(2) потоками
(3) программами
(4) сегментами
Для чего используется идентификатор защиты (SID)?
(1) для однозначного определения пользователя в системе
(2) для идентификации всех ресурсов в системе
(3) для идентификации системных процессов
(4) для аутентификации пользователей
Выберите правильные утверждения относительно главной таблицы файлов MFT.
(1) в записях MFT содержится информация о расположении файлов на томе
(2) при хранении MFT желательна фрагментация
(3) небольшие файлы хранятся прямо в записях MFT
(4) в записях MFT содержится информация только о системных файлах
Выберите правильные утверждения для Windows 8.
(1) на компьютер под управлением Windows 8 можно войти, используя учетную запись Microsoft (Live ID)
(2) на компьютер под управлением Windows 8 можно войти, используя почтовый адрес Gmail
(3) в программу Защитник Windows (Windows Defender) добавлены антивирусные функции
(4) в Windows 8 исчез Проводник Windows
Названия функций в Windows Research Kernel строятся по следующей схеме:
(1) <Префикс><Операция>
(2) <Операция><Объект><Суффикс>
(3) <Префикс><Операция><Объект>
(4) <Объект><Субъект><Операция>
Какие по длительности кванты используются в клиентских версиях операционных систем Windows и почему?
(1) короткие, для повышения «отзывчивости» системы
(2) длинные, для повышения производительности системы
(3) короткие, для повышения надежности выполнения небольших задач
(4) длинные, для повышения безопасности системных процессов
Какие действия определяются привилегиями (privileges)?
(1) интерактивный вход в систему
(2) вход в качестве службы
(3) включение компьютера
(4) загрузка драйвера
Выберите правильное утверждение относительно резидентных атрибутов
(1) резидентные атрибуты дублируют нерезидентные атрибуты
(2) резидентные атрибуты полностью помещаются в файловую запись MFT
(3) файловая запись MFT содержит только резидентные атрибуты
(4) начальные поля резидентных атрибутов хранятся в файловой записи MFT, остальные поля – в другой части тома
8 выпускается в следующих версиях:
(1) Pro
(2) Enterprise
(3) Server
(4) Mobile
Выберите правильное утверждение для функции с префиксом Nt:
(1) входит в Native API и экспортируется Ntdll.dll
(2) входит в Windows API и экспортируется kernel32.dll
(3) входит в диспетчер процессов и недоступна в привилегированном режиме
(4) входит в состав ядра и доступна в привилегированном режиме
Выберите правильное утверждение относительно потоков
(1) поток имеет только базовый приоритет, который нельзя изменять
(2) поток имеет базовый и текущий приоритеты, которые нельзя изменять
(3) поток имеет только базовый приоритет, который можно изменять
(4) поток имеет базовый и текущий приоритеты, которые можно изменять
Какие процессоры поддерживает Windows 8 RT?
(1) ARM
(2) Cyrix
(3) PowerPC
(4) SPARC
Выберите преимущества, получаемые за счет использования виртуальной памяти
(1) благодаря использованию виртуальной памяти размер памяти, занимаемой процессом, может быть больше, чем размер оперативной памяти
(2) благодаря использованию виртуальной памяти можно разместить в памяти больше программ
(3) благодаря использованию виртуальной памяти прикладные программисты не занимаются сложными вопросами реального размещения данных в памяти
(4) благодаря использованию виртуальной памяти ускоряется работа каждой программы
Пользовательским приложениям большинство устройств представляются операционной системой в виде …
(1) файлов
(2) драйверов
(3) библиотек
(4) процессов
Среда разработки Microsoft Visual Studio является примером…
(1) прикладного программного обеспечения
(2) посреднического программного обеспечения
(3) инструментального программного обеспечения
(4) системного программного обеспечения
Какие компоненты Windows работают в режиме ядра?
(1) драйверы
(2) исполнительная система
(3) службы
(4) подсистемы окружения
Выберите правильные утверждения относительно потоков:
(1) потоки одного процесса разделяют адресное пространство процесса
(2) потоки одного процесса выполняются всегда только на одном процессоре (ядре)
(3) каждый поток в рамках одного процесса имеет свою собственную область память, называемую стек
(4) все потоки одного процесса создаются и уничтожаются одновременно
Укажите теоретический предел виртуального адресного пространства в 64 разрядных Windows.
(1) 16 экзабайт
(2) 64 гигабайта
(3) 32 гигабайта
(4) 1 экзабайт
Устройство представляется в системе объектом типа …
(1) FILE_OBJECT
(2) DEVICE_OBJECT
(3) HARDWARE_OBJECT
(4) DRIVER_OBJECT
Термин «ядро» (NTOS Kernel) в Windows обозначает совокупность:
(1) исполнительной системы и собственно ядра
(2) монолитного ядра и микроядра
(3) драйверов и сервисов
(4) программ, работающих в привилегированном режиме
Процесс Smss.exe выполняет следующую функцию:
(1) отправляет текстовые сообщения по указанному адресу
(2) контролирует драйверы файловой системы
(3) отвечает за выполнение служб
(4) запуск процессов Winlogon и Csrss
Многопоточность – это средство …:
(1) распараллеливания действий внутри процесса
(2) разделения работы внутри операционной системы
(3) поддержки пользовательского интерфейса
(4) работы с аппаратным обеспечением
Укажите правильную последовательность действий при преобразовании виртуальных адресов в физические.
(1) определяется строка в таблице страниц, соответствующая виртуальной странице, по ней определяется физическая страница
(2) определяется номер регистра процессора, соответствующего виртуальному адресу, по нему определяется физическая страница
(3) по виртуальному адресу в соответствии со специальной формулой вычисляется физический адрес
(4) номер виртуальной страницы всегда однозначно соответствует одной и той же физической странице
В структуре DRIVER_OBJECT
в поле MajorFunction
содержится (содержатся) …
(1) адреса процедур, отвечающих за определенные операции с устройством
(2) адреса основных функций приложения, которые может использовать драйвер
(3) адрес функции, отвечающей за инициализацию драйвера
(4) адрес функции, отвечающей за главную функцию драйвера
Требование «надежности» обозначает:
(1) вероятность безотказной работы системы
(2) способность обеспечивать приемлемые время решения задач и время реакции системы
(3) возможность переноса операционной системы на другую аппаратную платформу с минимальными изменениями
(4) способность совместной работы
Что такое «подсистема окружения»?:
(1) компонент операционной системы, предоставляющий доступ приложениям к некоторому подмножеству системных функций
(2) часть системы ввода-вывода
(3) системная служба, отвечающая за взаимодействие с пользователем
(4) набор системных процессов, обеспечивающих вход пользователя в систему
Указатель на список потоков процесса хранится в структуре …
(1) KPROCESS
(2) ETHREAD
(3) KPOTOK
(4) ESTREAM
Что такое «куча»?
(1) набор процессов, выполняющих определенные системные функции
(2) область памяти, в которой процесс может выделять память динамическим структурам данных
(3) набор адресов, по которым процесс может читать данные
(4) область памяти, выделенная для использованных данных, которые в дальнейшем не пригодятся
Где хранится список запросов на операции ввода-вывода?
(1) в очереди IRP
потока
(2) в специальном поле структуры EPROCESS
(3) в специальном регистре процессора
(4) в очереди запросов процесса
95 была основана на ядре …
(1) MS-DOS
(2) Linux
(3) UNIX
(4) Windows NT
Укажите основные DLL Windows:
(1) Kernel32.dll
(2) Windows32.dll
(3) User32.dll
(4) Drivers32.dll
При создании процесса основной поток …
(1) сразу начинает выполняться
(2) помещается в очередь готовых к выполнению потоков
(3) переходит в состояние ожидания
(4) оказывается в переходном состоянии
Адрес каталога страниц процесса хранится …
(1) в специальном поле структуры KPROCESS
(2) в таблице страниц процесса
(3) по специальному адресу в оперативной памяти
(4) в первом виртуальном адресе процесса
Какие функции выполняет файловая система?
(1) обеспечивает безопасное и надежное хранение данных
(2) организует файлы в виде иерархии каталогов
(3) выполняет низкоуровневое форматирование диска
(4) отвечает за синхронизацию процессов при работе с файлами
В какой операционной системе Microsoft впервые объединила два направления клиентских систем – для профессиональных и для домашних пользователей?
(1) Windows Me
(2) Windows 2000
(3) Windows XP
(4) Windows Vista
Диспетчер процессов входит в состав:
(1) исполнительной системы
(2) драйвера управления процессами
(3) службы управления процессами
(4) подсистемы окружения
Характеристикой какого из перечисленных алгоритмов планирования потоков является следующее утверждение: «Активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе»?
(1) вытесняющий алгоритм планирования
(2) невытесняющий алгоритм планирования
(3) алгоритм планирования с квантованием
(4) алгоритм планирования с приоритетами
Что такое аутентификация?
(1) сообщение пользователем системе своего имени
(2) проверка того, что пользователь является тем, за кого себя выдает
(3) предоставление прав доступа легальным пользователям
(4) фиксация событий, связанных с доступом к защищаемым ресурсам
Какой объем памяти на диске с файловой системой NTFS займет файл размером 2 килобайта, если размер сектора – 512 байт, размер кластера – 2 килобайта?
(1) 512 байт
(2) 2 килобайта
(3) 2,5 килобайта
(4) 4 килобайта
Укажите правильную последовательность появления версий операционных систем Windows.
(1) Windows 2000 Professional – Windows XP – Windows Server 2003
(2) Windows 2000 Professional – Windows Server 2003 – Windows XP
(3) Windows XP – Windows 2000 Professional – Windows Server 2003
(4) Windows XP – Windows Server 2003 – Windows 2000 Professional
Какой из перечисленных ниже компонентов Windows не входит в состав исследовательского ядра Windows?
(1) диспетчер системных сервисов
(2) исполнительная система
(3) ядро
(4) HAL
Что такое квант?
(1) единица времени, за которую поток выполняет все необходимые действия
(2) единица времени, отводимая операционной системой каждому потоку для выполнения
(3) часть процесса, которая выполняется за единицу времени
(4) часть операционной системы, которая отвечает за алгоритм квантования
Какое право доступа дает возможность изменения списка управления доступом?
(1) DELETE
(2) READ_CONTROL
(3) SYNCHRONIZE
(4) WRITE_DAC
Какая структура данных отвечает за том на диске?
(1) FCB
(2) SCB
(3) VPB
(4) HANDLE_TABLE
Диспетчер задач (Task Manager) Windows 8 дополнен следующими функциями:
(1) отображение программ автозапуска
(2) история использования приложениями различных ресурсов
(3) отображение файлов, к которым происходило обращение за последнее время
(4) советы по оптимизации реестра
Выберите правильное утверждение относительно документации по Windows Research Kernel.
(1) в одном из институтов создана HTML-документация по Windows Research Kernel
(2) в MSDN есть специальный раздел, посвященный Windows Research Kernel
(3) Какая-либо документация по Windows Research Kernel отсутствует
Выберите состояния, в которых может находиться поток:
(1) готовность
(2) ожидание
(3) снятие приоритета
(4) удержание кванта
Какая функция отвечает за проверку возможности доступа процесса к объекту?
(1) SeAccessCheck
(2) NtAccessRead
(3) KeVerifyObject
(4) KiProcessAccess
Укажите имена, которые являются стандартными атрибутами файлов
(1) $FILE_NAME
(2) $STANDARD_INFORMATION
(3) $SIZE
(4) $DATA
Выберите особенности приложений в стиле Modern UI.
(1) поддержка сенсорного ввода
(2) контракты приложений
(3) многооконный интерфейс
(4) наличие панели инструментов
Префикс se означает, что функция входит в состав:
(1) диспетчера процессов
(2) ядра
(3) диспетчера безопасности
(4) подсистемы отладки
Что происходит при завершении кванта времени выполняющегося потока?
(1) операционная система проверяет, есть ли в очереди готовности поток с таким же приоритетом или выше
(2) поток вытесняется
(3) потоку предоставляется другой квант времени
(4) операционная система проверяет, завершены ли вычисления в потоке
На коде какого ядра основан код ядра Windows 8?
(1) на коде ядра Windows XP
(2) на коде ядра Windows Server 2003
(3) на коде ядра Windows Me
(4) на коде ядра Windows 7
Какие версии существуют у операционной системы Windows Server 2003?
Функция История файлов (File history) в Windows 8…
Названия функций в Windows Research Kernel строятся по следующей схеме:
Какие требования предъявлялись при разработке к операционной системе Windows NT 3.1?
В классификацию операционных систем по способу организации вычислений входят:
Укажите правильные утверждения относительно дескриптора защиты:
В структуре DRIVER_OBJECT в поле MajorFunction содержится (содержатся) …
В ходе создания процесса выполняются следующие этапы:
Какие виды процессов работают в пользовательском режиме?
Функция WinAPI VirtualAlloc позволяет…
В Windows поток может покинуть состояние выполнения по следующим причинам:
Многопоточность – это средство …:
Какие компоненты включает подсистема ввода-вывода в Windows?
Процесс Winlogon.exe выполняет следующую функцию:
Размер виртуального адресного пространства в 32 разрядных Windows составляет …
Укажите особенности файловой системы NTFS, за счет которых обеспечивается свойство восстанавливаемости
Системный вызов – это …
Какой объем памяти на диске займет файл размером 1000 байт, если размер сектора – 512 байт, размер кластера – 4 килобайта, файловая система – NTFS?
Префикс se означает, что функция входит в состав:
Указатель на список потоков процесса хранится в структуре …
Укажите файловые системы, поддерживаемые Windows
В состав какого семейства входит операционная система Windows CE?
Из каких частей состоит файловая запись?
Что представляет собой интерфейс прикладного программирования Windows (Windows API)?
Что такое аутентификация?
В состав Windows Research Kernel входят следующие компоненты:
Перед выполнением операций с файлом, требуется …
Диспетчер процессов входит в состав:
На коде какого ядра основан код ядра Windows 8?
Выберите правильные утверждения относительно потоков:
Программное обеспечение включает:
Термин «ядро» (NTOS Kernel) в Windows обозначает совокупность:
Требование «надежности» обозначает:
Какова разрядность операционной системы Windows for Workgroups 3.11?
Укажите правильную последовательность появления версий операционных систем Windows.
Назовите существенное отличие Windows 8 от Windows 7.
Выберите особенности приложений в стиле Modern UI.
Какие подсистемы окружения поддерживает Windows?
Процесс Lsass.exe выполняет следующую функцию:
Укажите правильное определение понятия «служба» («сервис») в Windows.
Укажите основные DLL Windows:
.exe содержит следующие компоненты Windows:
Какой из перечисленных ниже компонентов Windows не входит в состав исследовательского ядра Windows?
Что такое поток?
Выберите правильное утверждение относительно многозадачной операционной системы
За поток в Windows отвечает структура, которая называется …
При создании процесса основной поток …
Выберите правильные утверждения:
В Windows процессорное время распределяется между:
Какие по длительности кванты используются в клиентских версиях операционных систем Windows и почему?
Что происходит при завершении кванта времени выполняющегося потока?
Виртуальная память располагается …
Укажите теоретический предел виртуального адресного пространства в 64 разрядных Windows.
Укажите правильную последовательность действий при преобразовании виртуальных адресов в физические.
В какой части виртуального адресного пространства хранится исполняемый образ процесса?
Адрес каталога страниц процесса хранится …
Укажите правильные утверждения относительно маркера доступа:
Какое право доступа дает возможность изменения списка управления доступом?
Какая функция отвечает за проверку возможности доступа процесса к объекту?
Пользовательским приложениям большинство устройств представляются операционной системой в виде …
Устройство представляется в системе объектом типа …
Укажите правильные действия при чтении файла
Что такое файловая система?
Укажите имена, которые являются стандартными атрибутами файлов
Что такое приоритет потока?
Характеристикой какого из перечисленных алгоритмов планирования потоков является следующее утверждение: «Активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе»?
Файлы с какими расширениями в Windows могут быть исполняемыми?
Какие процессоры поддерживает Windows 8 RT?
Укажите правильное определение понятия «сектор»?
Что такое «подсистема окружения»?:
Выберите преимущества, получаемые за счет использования виртуальной памяти
Выберите правильные утверждения относительно главной таблицы файлов MFT.
Как называется размер блока виртуальной памяти, с которым работает операционная система?
8 выпускается в следующих версиях:
Выберите из списка мобильные операционные системы.
Выберите правильное утверждение относительно документации по Windows Research Kernel.
Выберите состояния, в которых может находиться поток:
Операционная система – это …
В состав структуры EPROCESS входят следующие поля:
В какую операционную систему Windows впервые была включена поддержка файловой системы NTFS?
В структуре DRIVER_OBJECT в поле DriverInit содержится …
Операция ввода-вывода представляется в системе объектом типа …
Выберите правильное утверждение относительно потоков
Что такое файл?
Укажите требования к безопасности операционной системы:
Выберите верные утверждения относительно виртуальной памяти.
Диспетчер задач (Task Manager) Windows 8 дополнен следующими функциями:
Что означает DLL?
Для следующего компонента исполнительной системы исходный код в составе исследовательского ядра Windows не предоставляется:
Префикс ke означает, что функция входит в состав:
В Windows реализован следующий алгоритм планирования потоков:
Размер виртуального адресного пространства, доступный процессам, в 32 разрядных Windows составляет …
Для чего используется идентификатор защиты (SID)?
Процесс чтения данных с устройства ввода-вывода описывается следующей последовательностью операций:
Какая структура данных отвечает за том на диске?
Выберите правильное утверждение относительно резидентных атрибутов
В какой операционной системе Microsoft впервые объединила два направления клиентских систем – для профессиональных и для домашних пользователей?
Где хранится список запросов на операции ввода-вывода?
Исполнительная система реализует следующие задачи:
Что такое квант?
Процесс Smss.exe выполняет следующую функцию:
Что такое рабочий набор процесса?
Какой объем памяти на диске с файловой системой NTFS займет файл размером 2 килобайта байт, если размер сектора – 512 байт, размер кластера – 2 килобайта?
Что такое процесс?
Каким образом хранится информация о запрошенной операции ввода-вывода?
Что такое «куча»?
95 была основана на ядре …
Приложение, выполняемое в пользовательском режиме процессора, не может:
Выберите правильное определение драйвера.
В приложениях Modern UI поддерживаются следующие виды контрактов:
Где можно найти подробное описание интерфейса прикладного программирования Windows (Windows API)?
Исследовательское ядро Windows написано на следующих языках программирования:
Какие действия определяются привилегиями (privileges)?
Какие компоненты Windows работают в режиме ядра?
Выберите правильные утверждения для Windows 8.
Операционные системы Windows NT являются…
Какие функции выполняет файловая система?
Для чего используются таблицы страниц?
Выберите правильное утверждение относительно процессов
Среда разработки Microsoft Visual Studio является примером…
Выберите правильное утверждение для функции с префиксом Nt:
Из каких частей состоит виртуальное адресное пространство?
Какие действия определяются правом учетной записи (account right)?
Windows 8 – новейшая операционная система от корпорации Microsoft, предназначенная для использования на персональных компьютерах, в том числе с сенсорными дисплеями.
Ядро Windows 8 имеет номер версии 6.2 и его код основан на коде ядра Windows 7 (имеющего номер версии 6.1) с небольшими изменениями.
Основные особенности
Интерфейс
Самым заметным отличием новой системы от Windows 7 является, конечно, интерфейс Modern UI, который используется при старте системы вместо привычного рабочего стола (рис.3.1).
Впервые Modern UI появился в Windows Phone 7 в 2010 году. Принцип, используемый в этом интерфейсе, – на первом месте содержание, а не графическое оформление. Поэтому в Modern UI минимизировано использование элементов интерфейса – кнопок и меню; вместо иконок используются плитки (tiles), внутри которых текст выводится при помощи легко читаемых шрифтов, а для динамичного отображения информации широко используется анимация.
Традиционный рабочий стол также присутствует – его можно вызвать, щелкнув на плитку Desktop. Обратно к интерфейсу Modern UI можно вернуться, подведя указатель мыши в левый нижний угол экрана (один из четырех «активных углов») или нажав кнопку Windows на клавиатуре.
Другим изменением в интерфейсе стало использование Ribbon Interface (Ленточный интерфейс) в Проводнике Windows (рис.3.2).
Учетные записи
На компьютер под управлением Windows 8 можно войти, используя учетную запись Microsoft (Live ID). При этом становятся доступны все связанные с учетной записью сервисы – SkyDrive, Outlook.com, Microsoft Messenger, Facebook, LinkedIn, Twitter и др.
С помощью использования Live ID доступна функция семейной безопасности и родительского контроля (Microsoft Family Safety).
Безопасность
Программа Защитник Windows (Windows Defender), которая ранее обладала только антишпионскими функциями, теперь стала ещё и антивирусом.
Поддерживается механизм безопасной загрузки на системах с UEFI (Unified Extensible Firmware Interface – унифицированный расширенный интерфейс для встроенного программного обеспечения; стандарт, предназначенный для замены BIOS), путем проверки целостности загрузчика Windows. Таким образом, предотвращаются попытки вредоносных программ перехватить управление до загрузки системы.
Диспетчер задач
Диспетчер задач (Task Manager) существенно изменен по сравнению с предыдущими версиями: добавлены подробности по текущему использованию ресурсов, добавлена вкладка Автозапуск (Startup), добавлена вкладка истории использования приложениями различных ресурсов (App history) (рис.3.3).
История файлов
Функция История файлов (File history) автоматически сохраняет копии изменяемых файлов, так что при необходимости можно откатить изменения и вернуться к старым версиям файлов.
Восстановление системы
Добавлены две функции по восстановлению системы без использования носителей с дистрибутивом – Обновление (Refresh) и Сброс (Reset). При Обновлении система переустанавливается с сохранением пользовательских файлов и настроек; при Сбросе диск форматируется и система устанавливается с нуля.
Storage Spaces
Функция Storage Spaces позволяет объединять физические диски, построенные по разным технологиям (SATA, USB, SAS), в единый виртуальный диск с автоматическим резервированием информации.
Версии Windows 8
Планируется выпуск четырех версий Windows 8:
Минимальные системные требования для Windows 8 практически совпадают с требованиями для Windows 7:
Разработка приложений для Windows 8
Для Windows 8 стала возможной разработка нового типа Windows приложений – приложений в стиле Modern UI (см. раздел на MSDN [MSDN Apps]).
Особенности приложений в стиле Modern UI
У приложений в стиле Modern UI есть ряд особенностей, которые отличают их от традиционных Windows-приложений:
Инструменты
Для написания приложений в стиле Modern UI можно использовать среду разработки Visual Studio 2012, средство для создания пользовательского интерфейса Blend, шаблоны проектов Visual Studio (http://msdn.microsoft.com/ru-RU/windows/apps/br229516.aspx).
Поддерживаемые языки программирования – C#, С++, Visual Basic, JavaScript. Для разработки приложений, требующих эффективной работы с графикой, можно использовать Microsoft DirectX 11.
Для интеграции приложения с сервисами Hotmail, Windows Live Messenger, Microsoft SkyDrive и др. применяется Live SDK – набор специализированных API для доступа к информации пользователя этих сервисов.
Для более подробной информации см. [MSDN Apps; Лутай и др.; Techdays].
Резюме
Рассмотрены ключевые особенности и версии новейшей операционной системы Microsoft Windows 8. Приводится также информация о разработке приложений в стиле нового интерфейса Modern UI.
В следующей лекции мы переходим к изучению внутреннего устройства Windows и начинаем с рассмотрения архитектуры системы.
Источник
Исследовательское ядро Windows
Windows Academic Program
Кроме WRK в академическую программу Microsoft входят следующие компоненты [15]:
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей ( Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance ( MSDN AA).
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены [11].
На рис.5.1 представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра [13].
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
Например, рассмотрим функцию KeStartThread:
В таблице 5.1 приведены основные компоненты WRK (см. соответствие с компонентами на рис.5.1) с указанием префиксов входящих в их состав функций.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System 1 Raw File System («сырая» файловая система) – если Windows не может распознать файловую систему диска, для него назначается Raw File System (драйвер которой реализован в ядре) и все запросы чтения/записи файлов к такому диску отклоняются. |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Таблица 5.1. Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
HTML документация по WRK
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros) (рис.5.2).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Резюме
В следующей лекции будут рассмотрены основные объекты, отвечающие за работу приложений – процессы и потоки.
Источник
Архитектура ОС Windows и Linux
Добрый день Пикабушники!
Сегодня я решил показать Вам различия между ядрами операционных систем Windows и Linux.
Начнем с относительно простого ядра Linux.
Теперь перейдем к Windows:
Как видим структура ядра намного более сложная. Преимущество это или недостаток? Каждый решает для себя сам. Программа под Windows обращается через документированный Windows API к «своей» библиотеке (например Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll), эти библиотеки по внутреннему протоколу (документация для разработчиков не из Microsoft не доступна) обращается по протоколу Native API к Ntdll.dll и далее передается через диспетчер системных сервисов ядру (все это внутри Ntoskrnl.exe).
Не менее важным является включение графической подсистемы в ядро (в современных серверных ОС данная система отключена или отсутствует), что во-первых не дает сменить графическую оболочку «на ходу», а во-вторых уже не способствует быстродействию.
Источник
Практическое изучение Windows Research Kernel
Аппаратура и программные инструменты, необходимые для лабораторной работы
Настольный или портативный компьютер с одной из версий операционной системы Microsoft Windows
Продолжительность лабораторной работы
2 академических часа
Обзор Windows Research Kernel
Пакет WRK включает исходный код ядраWindows XP x64 и Windows Server 2003 SP1 с окружением для сборки и тестирования экспериментальных версий ядра Windows для использования в целях изучения и преподавания.
WRK включает исходные коды для следующих компонент:
Пакет Windows Research Kernel содержит исходные коды ядра Windows (NTOS).
NTOS реализует основные функции ОС для:
Скачивание и установка WRK
Структура директорий WRK
Войдите в базовую директорию WindowsResearchKernel-WRK.
Вы увидите в Windows Explorer структуру директорий пакета WRK ( рис. 39.1):
Файл README содержит краткое описание структуры пакета.
Файл LICENSE содержит подробное описание лицензии, на основе которой доступен WRK.
Кратко, суть лицензии в том, что WRK может быть использован только для обучения и исследований, но не джля коммерческих разработок.
Откройте файлы README и LICENSE и ознакомьтесь с их содержимым.
Весь материал для изучения в пакете WRK представлен на английском языке.
Ознакомьтесь с содержимым базовых директорий пакета WRK:
Ознакомление со структурой исходных кодов ядра Windows
Войдите в директорию WRK-v1.2.
Директория tools содержит инструменты для сборки из исходных кодов, например, утилиту nmake. Ознакомьтесь с содержимым данной директории.
Источник
Заглянуть в ядро: насколько сильна Windows
Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.
Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.
Многие области операционной системы от Microsoft в повседневной работе от нас скрыты. Как правило, пользователь видит лишь то, что работает в пользовательском режиме; режим ядра, в котором операционная система общается с оборудованием, ему недоступен.
Windows Debugger анализирует образ памяти и показывает причины сбоев — в нашем случае виноват драйвер режима ядра Файл NTOS — сердце ядра Windows, логически подразделяется на два слоя. Особенность состоит в том, что из соображений повышения производительности драйверы могут обращаться к оборудованию напрямую Ядро Linux отвечает за управление командами ввода-вывода, памятью и процессами. На самом низком уровне ядра находятся функции, управляющие прерыванием процессов Доступ к ядру Linux открыт каждому. На рисунке — фрагмент конфигурации ядра версии 2.6.19 Ядро системы Apple основано на двух источниках: в нем используются функции основанной на Unix подсистемы BSD наряду с частями микроядра Mach Со словом «Windows» связано много предубеждений и мифов. Например, бытует мнение, что работать в Windows крайне опасно, так как миллионы вирусов, гуляющих по Интернету, атакуют исключительно эту ОС. К тому же многие уверены, что детище Microsoft не отличается высокой производительностью: чем дольше вы пользуетесь этой системой, тем медленнее она работает. Что касается стабильности, то всем хорошо знаком пресловутый «синий экран». Это и неудивительно: Vista состоит из семидесяти миллионов строк кода — как тут не запутаться! Чтобы выяснить, справедливы ли все эти обвинения, необходимо заглянуть в самое ядро операционной системы и проверить, насколько оно отвечает трем критериям: безопасность, производительность и стабильность. А для сравнения возьмем ядра двух других систем — Linux и Mac OS X. Кроме того, мы подробно расскажем, какие методы используют Windows и ее конкуренты.
Контроль над системой
Ядро управляет операционной системой, и ее качество зависит именно от качества ядра. На нем держится буквально все. в частности, ядро выполняет роль интерфейса для компьютерного оборудования: оно общается с внешними устройствами и управляет встроенными компонентами, такими как оперативная память, центральный процессор и жесткий диск.
Чтобы обеспечить безопасность системы, ядро следит за всеми текущими процессами, определяя, какие программы и как долго могут пользоваться аппаратными ресурсами. Стабильность достигается за счет структурирования ресурсов. За этим стоят функции, к которым обращаются каждый день — например, отображение файловых систем на жестком диске. Высокая производительность важна при возникновении конфликтов доступа — например, когда две программы пытаются записать данные на жесткий диск одновременно. В этом случае ядро расставляет приоритеты и предоставляет доступ одной из программ, в то время как второй приходится ждать. Ниже мы подробно расскажем, как именно Windows справляется со всеми этими задачами.
Обзор типов ядер
Монолитное.
Одно большое ядро для всех задач — в этом заключается идея монолита. Такое ядро отвечает за управление памятью и процессами, за коммуникацию между процессами, а также предлагает функции для поддержки драйверов и оборудования. Именно к этой категории относятся Windows, Linux и Mac OS X.
Микро. Ошибка в ядре может вывести из строя всю операционную систему. Поэтому микроядро отличается предельно малыми размерами — чтобы свести ошибки и сбои к минимуму. Но поскольку ядро должно поддерживать широкий набор функций, оно подразделяется на несколько модулей, из которых только один работает в режиме ядра. Классическим примером является Mach — компонент Mac OS X. Так или иначе, до сих пор ни одна операционная система с микроядром не завоевала популярности среди домашних пользователей.
Гибрид.
Гибридное ядро представляет собой нечто среднее между монолитным и микроядром. Само ядро делается облегченным, а для дополнительных задач существуют динамические модули. В Linux и OS X тоже можно подгружать части ядра, но не в таких масштабах, чтобы отнести их ядра к гибридным.
Windows : работает на любом оборудовании
Начиная с NT, в архитектуре Windows выделяется два режима: пользовательский и привилегированный, или режим ядра. Это относится и к Vista.
В режиме пользователя работает практически все, что видит пользователь, то есть приложения вроде Word или Photoshop. В этом режиме программы не имеют прямого доступа к оборудованию или оперативной памяти. Таким образом, пользовательский режим надежно изолирован, а все обращения к глубинам системы направляются через специальные интерфейсы, такие как Win32 API с системными библиотеками DLL (Dynamic Link Libraries).
Такой режим ядра — фоновый и практически незаметен для пользователя. Все хорошо до тех пор, пока не возникнет какая-либо проблема — например, драйвер режима ядра (см. схему ядра Windows) не обрушит всю систему, и взору пользователя предстанет синий экран.
Центральное значение здесь имеет файл ntoskrnl.exe.
По аналогии с режимом ядра и пользовательским режимом его задачи также делятся на две группы — слой ядра и исполнительная система. Главная задача слоя ядра — планировать загрузку центрального процессора, то есть распределять процессорное время между отдельными программами. Исполнительная система отвечает за виртуальную память, процессы ввода-вывода и другие задачи.
Глубже всего в системе располагается уровень аппаратных абстракций (Hardware Abstraction Layer, HAL). Он предоставляет другим слоям ОС службы для работы со встроенным оборудованием. Так, слой ядра может распределять процессорное время между программами независимо от того, какой процессор используется в компьютере — двуядерный AMD или четырехъядерный Intel. Если бы не HAL, Microsoft пришлось бы разрабатывать отдельную Windows для каждого компьютера.
Средства для отладки Windows WINDBG Чтобы проанализировать состояние памяти при выдаче «синего экрана», вам понадобится программа-отладчик, такая как WinDbg. На странице загрузок Microsoft вы найдете также соответствующий файл символов. www.microsoft.com/whdc/DevTools/Debugging NotMyFault тестирует систему на прочность: эта программа провоцирует ошибки в Windows и пытается ее обрушить. Экспериментируйте осторожно! Process Explorer. Управление процессами — одна из главных задач операционных систем. Process Explorer показывает все текущие процессы, соответствующие дескрипторы и связи между процессами. http://download.sysinternals.com
Linux : подгружает модули при необходимости
Хотя ядро Linux (см. схему) основано на Unix, но сходства с Windows у него больше, чем можно подумать. Оно также располагается непосредственно над оборудованием и играет роль своеобразной прослойки между оборудованием и работающими программами. Стандартные задачи тоже сходны: как и в Windows, ядро сотрудничает с устройствами ввода-вывода и берет на себя управление памятью. Оно также управляет процессами, то есть решает, какая задача в данный момент имеет приоритет, и получает доступ к процессорному времени. Для этого на самых нижних уровнях ядра располагаются функции управления прерываниями (interrupts).
Запрос на прерывание посылает, к примеру, клавиатура, когда пользователь нажимает на любую клавишу. Этот запрос обрабатывается специальным системным механизмом — диспетчером. Он решает, насколько высока приоритетность прерывания и включает его в очередь текущих процессов. Как только появляется возможность выполнить прерывание, диспетчер приостанавливает протекающий процесс и сохраняет его статус. Только после этого прерывание, то есть введенная с клавиатуры команда, может быть реализовано.
Архитектура Linux, как и Windows, имеет монолитное строение. Тем не менее, ядро может динамически догружать различные модули. В основном они дополняют имеющиеся компоненты или даже полностью заменяют их.
В ядро Linux встроены интерфейсы системных и библиотечных вызовов, а также пользовательский интерфейс. При этом важную роль играет интерфейс системных вызовов: он отвечает за процессы в целом. Специальной командой процессы переключаются из пользовательского режима в режим ядра.
Mac OS X : сила двух ядер
Ядро Mac OS X сокращенно обозначается как XNU — X is Not Unix.
Эта аббревиатура соответствует действительности, потому что ядро операционной системы Apple скомбинировано из двух источников, и лишь его часть имеет отношение к Unix (см. рис.). Остальное компания взяла из проекта Mach — классического примера микроядра (см. рис.). При этом Mach используется только для передачи сообщений (message passing), то есть эффективной коммуникации между отдельными частями ядра. Помимо Mach XNU содержит код проекта FreeBSD, который основан на Unix. Эта часть отвечает за взаимодействие с пользователем, обработку сигналов и совместимость со стандартами POSIX.
Последнее гарантирует, что большинство программ для Unix будут функционировать и в Mac OS X.
Важным компонентом Mach является система ввода-вывода (I/O Kit).
Именно здесь заключается существенное отличие от Windows и Linux: I/O Kit представляет собой дополнительный слой абстракций между оборудованием и остальной системой.
Здесь находятся стандартные модели драйверов, на основе которых разработчики пишут специализированные драйверы. Это способствует стабильности и повышает вычислительную мощность.
Помимо служб ядра Mac OS X позволяет также использовать расширения ядра. Система загружает их динамически по мере необходимости. Часто в таких случаях говорят о гибридном ядре, однако эксперты относят ядро Mac OS X скорее к монолитным из-за особенностей его строения.
Процессы: цифровая подпись как средство защиты
Важной задачей ядра является управление процессами.
Под этим подразумевается не только расстановка приоритетов, но и обеспечение безопасности. В классическом варианте в Windows процессы запускаются и управляются через интерфейс Win32 API.
В ядре этим занимается исполнительная система NTOS.
Доступ к объектам ядра, относящимся к про цессу обеспечивают так называемые дескрипторы (handles). Процессы в Windows могут запускать новые процессы. Так, Word (процесс 1) может открыть новый документ (процесс 2). В классической модели Windows Word имеет право также стереть или изменить новый документ. Иными словами, по общему правилу процесс может распоряжаться порожденными собою же процессами.
Однако в стандартных процессах есть одна лазейка, позволяющая обойти структуру доступа. Это возможно при наличии полномочий на отладку программ — в данном случае администратору предоставляется полный доступ к процессу. Так он может заглянуть в адресное пространство процесса, считать и изменять используемые в процессе данные. Злоумышленникам это дает возможность добавить в процесс новые потоки.
В связи с этим Vista пересмотрела процессную модель специально для мультимедийных файлов и ввела новый тип процессов — защищенные. Возможности манипулирования ими существенно ограничены: хоть ядро и предоставляет диагностическую информацию о таких процессах, но непосредственный доступ закрыт даже для администраторов.
Согласно этому методу, кодек для просмотра фильма, например, может работать как защищенный процесс только при одном условии — его полный исполняемый код должен быть подписан цифровой подписью.
Защищенные процессы — показательный пример того, как Microsoft приспосабливает устаревшую архитектуру Windows к современным проблемам.
В Linux и Mac OS X процессная модель сходна с моделью Windows: процессы-«родители» контролируют порожденных ими «детей». Однако защищенных процессов, таких как в Vista, нет. Это неудивительно: Microsoft использует эту технологию в первую очередь для цифрового управления правами (Digital Rights Management).
Таким образом, при наличии администраторских (root) прав в Linux и Mac OS X можно делать все, даже анализировать процессы и манипулировать ими.
ASLR : «неуловимые» адреса
Современные процессоры имеют адресную шину шириной 64 бит, однако несколько бит изначально отводится под другие задачи.
Например, NX-бит препятствует исполнению данных DEP (Data Execution Prevention).
При попытке выполнить код, который находится в участке памяти, помеченном «не для исполнения», возникает внутренняя ошибка. В Windows отключить DEP для 64-битных программ и драйверов нельзя, зато для 32-битных (все еще весьма распространенных) — без проблем. Это позволяет злоумышленникам вызвать переполнение буфера. В результате они могут инфицировать такие процессы, как Internet Explorer, и проникнуть внутрь системы. После того как вредитель закрепился в Windows, он может использовать Windows-API в своих интересах — например, для того, чтобы считать нужные ему данные или изменить конфигурацию системы.
Поэтому Microsoft ввела новую функцию защиты ядра — Address Space Load Randomization (ASLR, «рандомизация адресного пространства»). Частично она была реализована уже в SP2 для ХР, но полностью — только в Vista. Ее суть заключается в следующем. В Windows входными воротами для злоумышленников обычно являются библиотеки DLL, которые в предшествовавших версиях системы всегда загружались в одни и те же участки памяти. С ASLR системные DLL и исполняемые файлы при каждой загрузке системы попадают в разные участки оперативной памяти, чтобы вредоносное ПО больше не могло атаковать системные операции по стандартным адресам. Для этого менеджер памяти имеет в своем распоряжении 256 различных адресов и при загрузке DLL выбирает один из них случайным образом. Такая «плавающая» стратегия ASLR имеет дополнительное преимущество: адресное пространство упаковано плотнее, чем в более ранних версиях Windows, так что непрерывных свободных участков в памяти остается больше.
В специальных дистрибутивах Linux, таких как Hardened Gentoo, ASLR уже полностью реализована. В стандартном же ядре содержится лишь неполный вариант. В современном OS X Build ASLR используется для нескольких библиотек, но их полноценная реализация, к сожалению, отсутствует.
Проверка подлинности: надежный код
В качестве противоядия Microsoft использует в Vista подпись кода в режиме ядра (KMCS), которая разрешает загружать лишь те драйверы устройств, которые снабжены цифровой подписью. Большинство драйверов получают подписи через лабораторию WHQl (Windows Hardware Quality Lab), однако разработчики могут подписывать свой код сами — правда, для этого им нужен действительный сертификат. Windows проверяет также, имеет ли выданный сертификат отношение к одному из центров сертификации, данные о которых содержатся в загрузчике Windows и ядре ОС. Надо сказать, что 32-битные системы Vista хотя и проверяют цифровые подписи драйверов, все-таки позволяют загрузить неподписанные драйверы.
В 64-битных Windows такой номер не пройдет.
Все модули ядра в Mac OS X и Linux, в принципе, могут иметь цифровую подпись. Хотя теоретически это относится и к драйверам, никаких механизмов проверки в этих операционных системах не встроено.
MMCSS : приоритет видео
Планировщик Windows жонглирует несколькими процессами, открытыми одновременно. Каждое приложение на определенное время получает доступ к вычислительным мощностям центрального процессора, затем уступает место другим и ждет снова своей очереди.
Чтобы такого не происходило, например, когда вы смотрите фильм, в Windows встроены специальные функции для мультимедийных файлов. Поэтому антивирусы и службы Windows в основном работают в фоновом режиме и не мешают просмотру.
В Vista приоритет фильмов и музыки обеспечивается службой планирования мультимедийных классов — MMCSS. Для этого мультимедийное приложение, такое как Media Player, сначала должно зарегистрироваться в этой службе. Данная служба, реализованная в файле %SystemRoot%System32Mmcss.dll, включает в себя поток для управления приоритетами. Windows предусматривает ступени приоритетности от 0 до 31, при этом MMCSS имеет очень высокую приоритетность — 27. Соответственно, приоритетность всех зарегистрированных мультимедийных потоков поднимается до 27. С 16-й ступени начинается режим реального времени, то есть потоку с приоритетом 16 остальные помешать уже не могут.
Linux предлагает еще более высокую градацию шкалы приоритетности — от 0 до 99. Для мультимедийных задач, например, на медиасерверах, такая разбивка подходит лучше. В Mac OS X планировщик является одним из используемых компонентов Mach.
Шкала приоритетности здесь еще мельче — от 0 до 127, и это не единственное подтверждение того, что Mach намного современнее, чем Linux и Windows. В OS X мультимедийное приложение может даже присвоить себе фиксированную долю вычислительного времени. При достаточной мощности это практически исключает риск образования узких мест.
Ввод-вывод: приоритетность задач
Высокая приоритетность при просмотре фильмов может негативно отразится на многозадачности. Так, до ХР в Windows существовали серьезные проблемы с фоновыми службами, например, автоматической дефрагментацией.
Конечно, это помогало поддерживать жесткий диск в порядке, но кому же понравится, когда, к примеру, Outlook выпадает из обоймы на два часа? Однако благодаря приоритетности ввода-вывода ждать больше не придется. Так, в Vista процессы «переднего плана» (не фоновые) всегда пользуются преимуществом, и дефрагментация приостановится до тех пор, пока пользователь не сделает в своей работе очередную паузу. Система ввода-вывода в Vista предполагает пять ступеней приоритетности — от «очень низкая» до «критически важная»; стандартный уровень — «нормальная». Фоновым задачам Windows автоматически присваивает низкую приоритетность, однако менеджер памяти всегда считается критически важным: действительно, когда оперативной памяти начинает не хватать, он должен незамедлительно сбросить данные на жесткий диск.
Команды ввода-вывода, посылаемые от драйверов устройств (такие как движение мыши), поступают в очередь со средней приоритетностью.
Еще одна ценная возможность заключается в том, что Vista может резервировать для операций ввода-вывода фиксированные диапазоны. Так, например, Media Player может потребовать от системы ввода-вывода гарантию, что фильм будет считываться с DVD в определенном темпе.
Тогда как в Vista приоритетность ввода-вывода — нововведение, в Mac OS X и Linux данный прием используется давно. В Mac OS X это заложено в архитектуре, так как для передачи сообщений используется Mach. В системах семейства Linux, начиная с ядра 2.6, тоже встроена эффективная схема приоритетов.
Адресное пространство: динамическое управление
32-битные процессоры накладывают на Windows и инсталлированные программы серьезные ограничения в отношении адресного пространства. Так, ядро Windows не может занимать больше 2 Гбайт. Когда нужно выделить место для драйверов, кеша файловой системы и стека, это может привести к определенным трудностям. Поэтому в Vista адресное пространство ядра динамическое. Оно занимается раздачей и разблокированием участков в зависимости от рабочих потребностей.
Операционные системы Linux и Mac OS X не имеют строгих ограничений. И в этих операционных системах общие размеры ядра имеют свой предел. В целом формат отдельных компонентов никак не ограничен. Действительно, в отличие от Windows в этих системах нет четкого разграничения между пространством ядра и пространством драйверов.
КТМ: предотвращение программных сбоев
Если приложение намерено предпринять ряд взаимосвязанных изменений, оно может создать либо дескриптор КТм («диспетчера транзакций ядра») и транзакцию DTC (Distributed Transaction Coordinator, «координатора распределенных транзакций»), либо просто дескриптор КТМ, и выполнять изменения файлов и ключей реестра в рамках этой транзакции. Если все прошло успешно, транзакция подтверждается — изменения приняты. До этого программа может в любой момент отменить весь процесс. Дополнительное преимущество заключается в том, что другие приложения видят эти изменения только после того, как транзакция принята.
Ядра Mac OS X и Linux тоже работают с транзакциями.
Пользователь, как правило, этого совсем не замечает, если не считать сбоев при установке обновлений. Впрочем, в обеих ОС это никак не подрывает стабильность системы, просто транзакции не будут исполнены.
Windows 7, 8, 9…
Не секрет, что Microsoft работает над новой архитектурой Windows. Прототипом операционной системы будущего (после Win7) должны стать два проекта.
Singularity обещает нам Windows без «синих экранов» и зависаний. Проект основан на трех ключевых функциях: программно-изолированные процессы (SIP), микроядро и каналы (channels).
Микроядро обеспечивает лишь неотъемлемые «ядерные» функции, такие как управление памятью, процессами и каналами, планировка процессорного времени и управление вводом-выводом. Все другие функции перекладываются на модули и реализуются изолированно друг от друга через SIP-процессы.
Проект Midori рассчитан на отдаленную перспективу. Его ядро будет иметь модульную структуру.
Преимущество заключается в том, что Windows будет лучше работать на различных платформах, таких как нетбуки, КПК или мобильные телефоны.
Вывод
Прошлые версии Windows на фоне Linux и Mac OS X смотрятся совсем неплохо. Хотя конкуренты несколько моложе, они во многом основаны на старых принципах Unix. Vista доказывает, что устаревшую архитектуру Windows можно компенсировать современными технологиями безопасности, такими как защищенные процессы или цифровые подписи кода для модулей ядра. Но, к сожалению, эти функции часто работают только в 64-битном мире, а в ХР они и вовсе отсутствуют. К тому же Linux и OS X не нуждаются в уловках вроде ASLR, поскольку они не так сильно подвержены атакам хакеров. Да и получить права администратора в Linux и Mac OS X сложнее, чем в Windows.
В Windows много застарелых проблем: например, даже в Vista дефектный драйвер все еще может обрушить всю систему. OS X выглядит несколько более современно: высокая производительность обеспечивается главным образом за счет использования компонентов Mach для коммуникаций внутри ядра, а также системы ввода-вывода I/O Kit.
В этом смысле Windows отстает, и компенсировать разрыв сумела только Vista. В пользу Linux говорит ее открытость: каждый может сконфигурировать ядро по своему усмотрению.
Источник
Содержание
- Windows Research Kernel
- Содержание
- Что такое Windows Research Kernel?
- Windows Academic Program
- Структура Windows Research Kernel
- HTML документация по WRK
- Html документация по windows research kernel
Windows Research Kernel
Содержание
Что такое Windows Research Kernel?
Windows Research Kernel (WRK) — исходный код ядра ОС Windows (Windows XP x64 и Windows Server 2003 SP1), распространяемый для некоммерческих, исследовательских целей в рамках «Windows Academic Program» под НЕ СВОБОДНОЙ лицензией (где пруфлинк?). Как следствие, этот код не может быть использован в процессе разработки ReactOS (т.е. разработчики никогда не смотрели этот код и не планируют этого делать, пока не изменятся условия лицензирования WRK)
WRK предназначен для факультетов и преподавателей, работающих в области операционных систем, для разработчиков курсов, авторов учебников и т.д., желающих включить информацию о ядре Windows, основанную на действующем исходном коде. WRK содержит среду для сборки/тестирования и бинарные файлы для исключённых компонентов исходного кода, которые могут быть использованы, чтобы собрать полнофункциональные NTOS ядра для последующей установки на Windows Server 2003 для x86/x64 и Windows XP x64.
Ниже информация из лекции «Исследовательское ядро Windows» курса «Введение во внутреннее устройство Windows» от Intuit.ru.
Windows Academic Program
В 2006 году корпорация Microsoft в рамках академической программы Windows (Windows Academic Program) сделала доступной для академических организаций исходный код исследовательского ядра Windows (Windows Research Kernel, WRK). WRK основано на коде операционных систем Windows Server 2003 SP1 и Windows XP x64.
Кроме WRK в академическую программу Microsoft входят следующие компоненты:
- учебные материалы по курсу операционных систем на основе Windows XP – Windows Internals Curriculum Resource Kit (CRK). Составлены в соответствии с рекомендациями ACM/IEEE по преподаванию курса «Операционные системы» (Operating systems, OS). Материалы включают презентации лекций, указания к лабораторным работам (в том числе лабораторные работы для Windows 7), задания, тесты, а также материалы для преподавателей (Instructor Supplement);
- среда ProjectOZ для экспериментального исследования ядра Windows;
- описание опыта университетов (Faculty Experiences) по преподаванию в рамках академической программы Microsoft.
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей (Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance (MSDN AA).
Microsoft, предоставляя академическому сообществу исходные коды ядра Windows, преследовало следующие цели:
- облегчить студентам и преподавателям сравнение Windows с другими операционными системами;
- предоставить студентам возможность для изучения исходных кодов ядра и создания собственных проектов на их основе;
- поддержать исследования и публикации по внутреннему устройству Windows;
- содействовать разработке учебников по операционным системам на основе ядра Windows;
- упростить лицензирование.
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены.
На следующем рисунке представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра.
Рис.1. Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
В состав WRK, кроме собственно исходных кодов ядра Windows, входят руководство по ядру Windows NT (NT OS/2 Design Workbook) и решение (solution) Visual Studio 2008 (WRK.sln) (которое можно преобразовать для более новых версий Visual Studio).
Руководство по ядру Windows NT было составлено в конце 1980 х – начале 1990 х гг., когда в Microsoft велась разработка новой операционной системы Windows NT с рабочим названием «NT OS/2» сначала совместно с IBM, затем самостоятельно. Руководство содержит ценную информацию по структуре и функциям ядра Windows, а также раскрывает соображения, которые привели разработчиков к тем или иным архитектурным решениям.
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
где обозначает модуль, которому принадлежит функция, – действие, совершаемое над .
Например, рассмотрим функцию KeStartThread:
- Ke (префикс) – функция входит в состав ядра;
- Start (операция) – функция начинает выполнение объекта;
- Thread (объект) – объектом является поток.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
- inc – общедоступные заголовочные файлы;
- init – функции инициализации системы.
Приведем ещё один префикс часто встречающихся в WRK функций – Nt. Функции ядра с этим префиксом входят в Native API, они экспортируются Ntdll.dll, их можно вызывать из пользовательского режима. Часто функции с префиксом Nt соответствует WinAPI функция, и, например, при вызове WinAPI функции CreateProcess происходит вызов функции NtCreateProcess.
HTML документация по WRK
В Институте программной инженерии Хассо Платтнера Университета г. Потсдама (Hasso-Plattner-Institute for Software Engineering at University Potsdam) Александром Шмидтом (Alexander Schmidt) и Михаэлем Шёбелем (Michael Schobel) была создана HTML документация по WRK с использованием генератора документации Phoenix Cross Reference (PXR)2 . Данная документация доступна для преподавателей по следующей ссылке:
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Html документация по windows research kernel
Windows Research Kernel Source Code
Copyright (c) Microsoft Corporation. All rights reserved.
You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt). If you do not agree to the terms, do not use the code.
The Windows Research Kernel v1.2 contains the sources for the core of the Windows (NTOS) kernel and a build environment for a kernel that will run on x86 (Windows Server 2003 Service Pack 1) and amd64 (Windows XP x64 Professional) A future version may also support booting WRK kernels on Windows XP x86 systems, but the current kernels will fail to boot due to differences in some shared structures.
The NTOS kernel implements the basic OS functions for processes, threads, virtual memory and cache managers, I/O management, the registry, executive functions such as the kernel heap and synchronization, the object manager, the local procedure call mechanism, the security reference monitor, low-level CPU management (thread scheduling, Asynchronous and Deferred Procedure calls, interrupt/trap handling, exceptions), etc.
The NT Hardware Abstraction Layer, file systems, network stacks, and device drivers are implemented separately from NTOS and loaded into kernel mode as dynamic libraries. Sources for these dynamic components are not included in the WRK, but some are available in various development kits published by Microsoft, such as the Installable File System (IFS) Kit and the Windows Driver Development Kit (DDK).
WRK v1.2 includes most of the NTOS kernel sources from the latest released version of Windows, which supports the AMD64 architecture on the Desktop. The kernel sources excluded from the kit are primarily in the areas of plug-and-play, power management, the device verifier, kernel debugger interface, and virtual dos machine. The primary modifications to WRK from the released kernel are related to cleanup and removal of server support, such as code related to the Intel IA64.
Organization of the WRK sources
The file License.txt contains the license covering use of the WRK.
The public directory contains a number of include files shared among system components. basentos contains the NTOS sources.
The primary NTOS source components included in the WRK are organized as follows:
Copying and building the WRK
WRK can be built on Windows Server 2003 or later, or on Windows XP or later.
To copy WRK to your machine:
- open a console window;
- switch to DVD;
- switch to ResourcesWindows_Research_KernelGet_WRK;
- run WRKCopy.bat /w (if you run WRKCopy.bat without parameters, WRK will be copied to C:WRK-v1.2); ALTERNATIVELY
- open Windows Explorer (MyComputer);
- create the destination directory on your hard drive;
- switch to DVD;
- navigate to ResourcesWindows_Research_KernelGet_WRKWRK-v1.2;
- select all files and subdirectories, drag and drop them to the destination directory.
To adjust the WRK environment setting batch file:
- open console window;
- switch to the directory WRK was copied to;
- run Notepad WRKEnv.bat;
- make sure the «set path=. » statement contains the directory WinDbg was installed to; (unchanged WRKEnv.bat refers to default directory C:Program FilesDebugging Tools for Windows);
- save the file and exit Notepad.
To build WRK from command line:
- open console window;
- switch to the directory WRK was copied to;
- run Build (or Rebuild or Clean ), see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- switch to basentos;
- run nmake %wrkarch%=
To build WRK in Visual Studio 2008 environment:
- start VS2008;
- open solution WRK.sln, where is the directory WRK was copied to;
- make sure the configuration is amd64/Win32 or x86/Win32, as is appropriate;
- select Build/Build Solution (or Rebuild Solution, or Clean Solution).
To start Windows Debugger from command line:
- open console window;
- switch to the directory WRK was copied to;
- run WRKDebug , see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- run WinDbg %windbgargs%
Batch files Build.bat, Rebuild.bat, Clean.bat, WRKEnv.bat and WRKDebug.bat take one parameter – target architecture, which is x86 or amd64.
For the first use of either of these batch files, default target architecture is x86.
Once the target architecture was defined (explicitly or by default), it cannot be changed for current console window, and parameter of the batch files is ignored.
The title of the window where the WRK environment has been set to some target architecture changes to “WRK x86” or “WRK amd64”.
To work with different target architecture, open another console window.
Copyright (c) Microsoft Corporation. All rights reserved.
You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt). If you do not agree to the terms, do not use the code.
The Windows Research Kernel v1.2 contains the sources for the core of the Windows (NTOS) kernel and a build environment for a kernel that will run on x86 (Windows Server 2003 Service Pack 1) and amd64 (Windows XP x64 Professional) A future version may also support booting WRK kernels on Windows XP x86 systems, but the current kernels will fail to boot due to differences in some shared structures.
The NTOS kernel implements the basic OS functions for processes, threads, virtual memory and cache managers, I/O management, the registry, executive functions such as the kernel heap and synchronization, the object manager, the local procedure call mechanism, the security reference monitor, low-level CPU management (thread scheduling, Asynchronous and Deferred Procedure calls, interrupt/trap handling, exceptions), etc.
The NT Hardware Abstraction Layer, file systems, network stacks, and device drivers are implemented separately from NTOS and loaded into kernel mode as dynamic libraries. Sources for these dynamic components are not included in the WRK, but some are available in various development kits published by Microsoft, such as the Installable File System (IFS) Kit and the Windows Driver Development Kit (DDK).
WRK v1.2 includes most of the NTOS kernel sources from the latest released version of Windows, which supports the AMD64 architecture on the Desktop. The kernel sources excluded from the kit are primarily in the areas of plug-and-play, power management, the device verifier, kernel debugger interface, and virtual dos machine. The primary modifications to WRK from the released kernel are related to cleanup and removal of server support, such as code related to the Intel IA64.
Organization of the WRK sources
The file License.txt contains the license covering use of the WRK.
The public directory contains a number of include files shared among system components. basentos contains the NTOS sources.
The primary NTOS source components included in the WRK are organized as follows:
Copying and building the WRK
WRK can be built on Windows Server 2003 or later, or on Windows XP or later.
To copy WRK to your machine:
- open a console window;
- switch to DVD;
- switch to ResourcesWindows_Research_KernelGet_WRK;
- run WRKCopy.bat /w (if you run WRKCopy.bat without parameters, WRK will be copied to C:WRK-v1.2); ALTERNATIVELY
- open Windows Explorer (MyComputer);
- create the destination directory on your hard drive;
- switch to DVD;
- navigate to ResourcesWindows_Research_KernelGet_WRKWRK-v1.2;
- select all files and subdirectories, drag and drop them to the destination directory.
To adjust the WRK environment setting batch file:
- open console window;
- switch to the directory WRK was copied to;
- run Notepad WRKEnv.bat;
- make sure the «set path=. » statement contains the directory WinDbg was installed to; (unchanged WRKEnv.bat refers to default directory C:Program FilesDebugging Tools for Windows);
- save the file and exit Notepad.
To build WRK from command line:
- open console window;
- switch to the directory WRK was copied to;
- run Build (or Rebuild or Clean ), see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- switch to basentos;
- run nmake %wrkarch%=
To build WRK in Visual Studio 2008 environment:
- start VS2008;
- open solution WRK.sln, where is the directory WRK was copied to;
- make sure the configuration is amd64/Win32 or x86/Win32, as is appropriate;
- select Build/Build Solution (or Rebuild Solution, or Clean Solution).
To start Windows Debugger from command line:
- open console window;
- switch to the directory WRK was copied to;
- run WRKDebug , see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- run WinDbg %windbgargs%
Batch files Build.bat, Rebuild.bat, Clean.bat, WRKEnv.bat and WRKDebug.bat take one parameter – target architecture, which is x86 or amd64.
For the first use of either of these batch files, default target architecture is x86.
Once the target architecture was defined (explicitly or by default), it cannot be changed for current console window, and parameter of the batch files is ignored.
The title of the window where the WRK environment has been set to some target architecture changes to “WRK x86” or “WRK amd64”.
To work with different target architecture, open another console window.