Исследовательское ядро windows написано на следующих языках программирования

Windows Academic Program. Структура Windows Research Kernel. HTML‑документация по WRK.

Аннотация: 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].

Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)

Рис.
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) с указанием префиксов входящих в их состав функций.

Таблица
5.1.
Компоненты WRK и префиксы функций

Компонент 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).

HTML документация по Windows Research Kernel

Рис.
5.2.
HTML документация по Windows Research Kernel

По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.

Резюме

В данной лекции представлен обзор исследовательского ядра Windows (Windows Research Kernel, WRK). Перечислены компоненты WRK. Предложено использование HTML документации по WRK.

В следующей лекции будут рассмотрены основные объекты, отвечающие за работу приложений – процессы и потоки.

Контрольные вопросы

  1. Расскажите о составе академической программы Microsoft.
  2. Что такое Windows Research Kernel?
  3. Какие компоненты ядра присутствуют в Windows Research Kernel?
  4. Перечислите основные компоненты Windows Research Kernel.
  5. Какие префиксы используются в названиях функций WRK?
  6. Какая информация имеется в 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 компонентов ядра.

5-1.jpg

Рис.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).

Wrk5-2.jpg

По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.

Дополнительная информация

  1. Презентация “Windows Research Kernel: Source overview & project” одного из архитекторов ядра Windows, 2006 год.Медиа:WindowsResearchKernel-1.pdf
Microsoft

Search.png

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).

на коде какого ядра основан код ядра windows 8

Впервые Modern UI появился в Windows Phone 7 в 2010 году. Принцип, используемый в этом интерфейсе, – на первом месте содержание, а не графическое оформление. Поэтому в Modern UI минимизировано использование элементов интерфейса – кнопок и меню; вместо иконок используются плитки (tiles), внутри которых текст выводится при помощи легко читаемых шрифтов, а для динамичного отображения информации широко используется анимация.

Традиционный рабочий стол также присутствует – его можно вызвать, щелкнув на плитку Desktop. Обратно к интерфейсу Modern UI можно вернуться, подведя указатель мыши в левый нижний угол экрана (один из четырех «активных углов») или нажав кнопку Windows на клавиатуре.

Другим изменением в интерфейсе стало использование Ribbon Interface (Ленточный интерфейс) в Проводнике Windows (рис.3.2).

на коде какого ядра основан код ядра windows 8

Учетные записи

На компьютер под управлением 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).

на коде какого ядра основан код ядра windows 8

История файлов

Функция История файлов (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-приложений:

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

Инструменты

Для написания приложений в стиле 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].

на коде какого ядра основан код ядра windows 8

Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера 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).

на коде какого ядра основан код ядра windows 8

По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.

Резюме

В следующей лекции будут рассмотрены основные объекты, отвечающие за работу приложений – процессы и потоки.

Источник

Архитектура ОС Windows и Linux

Добрый день Пикабушники!

Сегодня я решил показать Вам различия между ядрами операционных систем Windows и Linux.

Начнем с относительно простого ядра Linux.

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

на коде какого ядра основан код ядра windows 8

Теперь перейдем к Windows:

на коде какого ядра основан код ядра windows 8

Как видим структура ядра намного более сложная. Преимущество это или недостаток? Каждый решает для себя сам. Программа под 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):

на коде какого ядра основан код ядра windows 8

Файл README содержит краткое описание структуры пакета.

Файл LICENSE содержит подробное описание лицензии, на основе которой доступен WRK.

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

Откройте файлы README и LICENSE и ознакомьтесь с их содержимым.

Весь материал для изучения в пакете WRK представлен на английском языке.

Ознакомьтесь с содержимым базовых директорий пакета WRK:

Ознакомление со структурой исходных кодов ядра Windows

Войдите в директорию WRK-v1.2.

на коде какого ядра основан код ядра windows 8

Директория tools содержит инструменты для сборки из исходных кодов, например, утилиту nmake. Ознакомьтесь с содержимым данной директории.

Источник

Заглянуть в ядро: насколько сильна Windows

на коде какого ядра основан код ядра windows 8

Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.

на коде какого ядра основан код ядра windows 8

Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.

на коде какого ядра основан код ядра windows 8Многие области операционной системы от Microsoft в повседневной работе от нас скрыты. Как правило, пользователь видит лишь то, что работает в пользовательском режиме; режим ядра, в котором операционная система общается с оборудованием, ему недоступен.

на коде какого ядра основан код ядра windows 8Windows Debugger анализирует образ памяти и показывает причины сбоев — в нашем случае виноват драйвер режима ядра на коде какого ядра основан код ядра windows 8Файл NTOS — сердце ядра Windows, логически подразделяется на два слоя. Особенность состоит в том, что из соображений повышения производительности драйверы могут обращаться к оборудованию напрямую на коде какого ядра основан код ядра windows 8Ядро Linux отвечает за управление командами ввода-вывода, памятью и процессами. На самом низком уровне ядра находятся функции, управляющие прерыванием процессов на коде какого ядра основан код ядра windows 8Доступ к ядру Linux открыт каждому. На рисунке — фрагмент конфигурации ядра версии 2.6.19 на коде какого ядра основан код ядра windows 8Ядро системы 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 говорит ее открытость: каждый может сконфигурировать ядро по своему усмотрению.

Источник

Содержание

  1. Windows Research Kernel
  2. Содержание
  3. Что такое Windows Research Kernel?
  4. Windows Academic Program
  5. Структура Windows Research Kernel
  6. HTML документация по WRK
  7. 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.

Like this post? Please share to your friends:
  • Исправление ошибки 0xc000007b в 64 битной windows 10
  • Исправляем проблемы с отображением русских букв в windows 10
  • Исправление неполадок совместимости windows 7 видео
  • Исправляем ошибку центра обновлений windows 8007000e в windows 7
  • Исправление неполадок панели задач в windows 10