Аннотация: Основные особенности. Версии Windows 8. Разработка приложений для Windows 8.
Windows 8 – новейшая операционная система от корпорации Microsoft, предназначенная для использования на персональных компьютерах, в том числе с сенсорными дисплеями.
Разработка Windows 8 началась в 2009 году и впервые система была анонсирована в январе 2011 года, а в сентябре того же года представлена предварительная версия для разработчиков Windows 8 Developer Preview. В феврале 2012 года выпускается предварительная версия Windows 8 Consumer Preview, в мае – Windows 8 Release Preview. В августе 2012 становится доступной окончательная версия Windows 8 для подписчиков MSDN и TechNet. Официальная дата начала продаж назначена на 26 октября 2012 года.
Ядро Windows 8 имеет номер версии 6.2 и его код основан на коде ядра Windows 7 (имеющего номер версии 6.1) с небольшими изменениями.
Основные особенности
Интерфейс
Самым заметным отличием новой системы от Windows 7 является, конечно, интерфейс Modern UI, который используется при старте системы вместо привычного рабочего стола (рис.3.1).
Рис.
3.1.
Интерфейс Modern UI
Впервые Modern UI появился в Windows Phone 7 в 2010 году. Принцип, используемый в этом интерфейсе, – на первом месте содержание, а не графическое оформление. Поэтому в Modern UI минимизировано использование элементов интерфейса – кнопок и меню; вместо иконок используются плитки (tiles), внутри которых текст выводится при помощи легко читаемых шрифтов, а для динамичного отображения информации широко используется анимация.
Традиционный рабочий стол также присутствует – его можно вызвать, щелкнув на плитку Desktop. Обратно к интерфейсу Modern UI можно вернуться, подведя указатель мыши в левый нижний угол экрана (один из четырех «активных углов») или нажав кнопку Windows на клавиатуре.
Другим изменением в интерфейсе стало использование Ribbon Interface (Ленточный интерфейс) в Проводнике Windows (рис.3.2).
Рис.
3.2.
Проводник Windows
Учетные записи
На компьютер под управлением 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).
Рис.
3.3.
Диспетчер задач (Task Manager)
История файлов
Функция История файлов (File history) автоматически сохраняет копии изменяемых файлов, так что при необходимости можно откатить изменения и вернуться к старым версиям файлов.
Восстановление системы
Добавлены две функции по восстановлению системы без использования носителей с дистрибутивом – Обновление (Refresh) и Сброс (Reset). При Обновлении система переустанавливается с сохранением пользовательских файлов и настроек; при Сбросе диск форматируется и система устанавливается с нуля.
Storage Spaces
Функция Storage Spaces позволяет объединять физические диски, построенные по разным технологиям (SATA, USB, SAS), в единый виртуальный диск с автоматическим резервированием информации.
Версии Windows 8
Планируется выпуск четырех версий Windows 8:
- Windows 8 – базовая версия для 32 разрядных (x86) и 64 разрядных (x64) платформ;
- Windows 8 Pro – версия для продвинутых и бизнес-пользователей. В неё будут добавлены поддержка доменов Windows, групповые политики, шифрование файлов, технологии виртуализации;
- Windows 8 Enterprise – версия для корпоративных пользователей. Присутствуют все возможности Windows 8 Pro и добавляются следующие технологии: Windows To Go (возможность загрузки с переносных устройств – внешних жестких дисков и флеш дисков), DirectAccess (простой и безопасный доступ к ресурсам корпоративной сети через Интернет), BranchCache (кэширование файлов корпоративной сети), AppLocker (гибкое управление разрешениями на запуск приложений);
- Windows RT – версия, которая будет поддерживать мобильные процессоры ARM. Будет доступна только как предварительно установленная операционная система на компьютерах с ARM процессорами. В состав системы будет входить пакет Microsoft Office Home & Student 2013 RT.
Минимальные системные требования для Windows 8 практически совпадают с требованиями для Windows 7:
- процессор не менее 1 ГГц;
- оперативная память не менее 1 ГБ для 32 разрядных систем, 2 ГБ для 64 разрядных;
- свободное пространство на жестком диске не менее 20 ГБ;
- видеокарта с поддержкой DirectX 9 и с WDDM драйвером.
Разработка приложений для Windows 8
Для Windows 8 стала возможной разработка нового типа Windows приложений – приложений в стиле Modern UI (см. раздел на MSDN [MSDN Apps]).
Особенности приложений в стиле Modern UI
У приложений в стиле Modern UI есть ряд особенностей, которые отличают их от традиционных Windows-приложений:
- наличие одного окна – приложение имеет одно окно, по умолчанию развернутое на весь экран, лишенное необязательных элементов интерфейса;
- поддержка сенсорного ввода – Windows 8 предоставляет приложениям средства для поддержки ввода с разных устройств – клавиатуры, мыши, пера, сенсорной панели;
- контракты приложений – приложения могут объявлять поддержку контрактов – соглашений по предоставлению определенных сервисов. В Windows 8 поддерживается несколько контрактов:
- поиск (Search) – соглашение о возможности поиска по содержимому;
- общий доступ (Sharing) – соглашение о предоставлении своего содержимого другим приложениям;
- воспроизведение (Play To) – соглашение о передаче данных из приложения на устройство воспроизведения;
- выбор между приложениями (App to App picking) – соглашение о возможности напрямую выбирать файлы;
- параметры (Settings) – соглашение о доступности параметров приложения;
- печать (Print) – соглашение о возможности печати на любом совместимом принтере;
- плитки вместо ярлыков – приложение представляется пользователю в виде плитки, в которой может быть текст или динамически изменяющееся содержимое, даже когда само приложение не работает;
- новые элементы интерфейса:
- строка команд приложения (App bar) – располагается внизу экрана, вызывается как контекстное меню. В этой строке можно размещать основные команды приложения (рис.3.4);
- панель Charms – располагается в правой части экрана и содержит кнопки для поиска, общего доступа, вызова начального экрана, работы с устройствами и работы с параметрами (рис.3.5).
Рис.
3.4.
Пример строки команд (App bar) для музыкального проигрывателя
Рис.
3.5.
Панель Charms
Инструменты
Для написания приложений в стиле 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 8.
- Перечислите основные особенности Windows 8.
- Назовите версии Windows 8 и отличия между ними.
- Каковы минимальные системные требования для установки Windows 8?
- Что такое «контракты» при разработке приложений в стиле Modern UI?
- Чем отличается Modern UI от традиционных интерфейсов?
- Какие новые элементы интерфейса появились в Modern UI?
Содержание
- 1 Что такое Windows Research Kernel?
- 2 Windows Academic Program
- 3 Структура Windows Research Kernel
- 4 HTML документация по WRK
- 5 Дополнительная информация
Windows Research Kernel (WRK) — исходный код ядра ОС Windows (Windows XP x64 и Windows Server 2003 SP1), распространяемый для некоммерческих, исследовательских целей в рамках «Windows Academic Program» под НЕ СВОБОДНОЙ лицензией (где пруфлинк?). Как следствие, этот код не может быть использован в процессе разработки ReactOS (т.е. разработчики никогда не смотрели этот код и не планируют этого делать, пока не изменятся условия лицензирования WRK)
(19:00:58) Fireball: лицензия ихняя, она кабальная (19:01:11) Fireball: эти исходники использовать нельзя почти ни в каком виде.
WRK предназначен для факультетов и преподавателей, работающих в области операционных систем, для разработчиков курсов, авторов учебников и т.д., желающих включить информацию о ядре Windows, основанную на действующем исходном коде. WRK содержит среду для сборки/тестирования и бинарные файлы для исключённых компонентов исходного кода, которые могут быть использованы, чтобы собрать полнофункциональные NTOS ядра для последующей установки на Windows Server 2003 для x86/x64 и Windows XP x64.
Ниже информация из лекции «Исследовательское ядро Windows» курса «Введение во внутреннее устройство Windows» от Intuit.ru.
Windows Academic Program
В 2006 году корпорация Microsoft в рамках академической программы Windows (Windows Academic Program) сделала доступной для академических организаций исходный код исследовательского ядра Windows (Windows Research Kernel, WRK). WRK основано на коде операционных систем Windows Server 2003 SP1 и Windows XP x64.
Кроме WRK в академическую программу Microsoft входят следующие компоненты:
- учебные материалы по курсу операционных систем на основе Windows XP – Windows Internals Curriculum Resource Kit (CRK). Составлены в соответствии с рекомендациями ACM/IEEE по преподаванию курса «Операционные системы» (Operating systems, OS). Материалы включают презентации лекций, указания к лабораторным работам (в том числе лабораторные работы для Windows 7), задания, тесты, а также материалы для преподавателей (Instructor Supplement);
- среда ProjectOZ для экспериментального исследования ядра Windows;
- описание опыта университетов (Faculty Experiences) по преподаванию в рамках академической программы Microsoft.
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей (Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance (MSDN AA).
Microsoft, предоставляя академическому сообществу исходные коды ядра Windows, преследовало следующие цели:
- облегчить студентам и преподавателям сравнение Windows с другими операционными системами;
- предоставить студентам возможность для изучения исходных кодов ядра и создания собственных проектов на их основе;
- поддержать исследования и публикации по внутреннему устройству Windows;
- содействовать разработке учебников по операционным системам на основе ядра Windows;
- упростить лицензирование.
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены.
На следующем рисунке представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра.
Рис.1. Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
В состав WRK, кроме собственно исходных кодов ядра Windows, входят руководство по ядру Windows NT (NT OS/2 Design Workbook) и решение (solution) Visual Studio 2008 (WRK.sln) (которое можно преобразовать для более новых версий Visual Studio).
Руководство по ядру Windows NT было составлено в конце 1980 х – начале 1990 х гг., когда в Microsoft велась разработка новой операционной системы Windows NT с рабочим названием «NT OS/2» сначала совместно с IBM, затем самостоятельно. Руководство содержит ценную информацию по структуре и функциям ядра Windows, а также раскрывает соображения, которые привели разработчиков к тем или иным архитектурным решениям.
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
<Префикс><Операция><Объект>
где <Префикс> обозначает модуль, которому принадлежит функция, <Операция> – действие, совершаемое над <Объектом>.
Например, рассмотрим функцию KeStartThread:
- Ke (префикс) – функция входит в состав ядра;
- Start (операция) – функция начинает выполнение объекта;
- Thread (объект) – объектом является поток.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
- inc – общедоступные заголовочные файлы;
- init – функции инициализации системы.
Приведем ещё один префикс часто встречающихся в WRK функций – Nt. Функции ядра с этим префиксом входят в Native API, они экспортируются Ntdll.dll, их можно вызывать из пользовательского режима. Часто функции с префиксом Nt соответствует WinAPI функция, и, например, при вызове WinAPI функции CreateProcess происходит вызов функции NtCreateProcess.
HTML документация по WRK
В Институте программной инженерии Хассо Платтнера Университета г. Потсдама (Hasso-Plattner-Institute for Software Engineering at University Potsdam) Александром Шмидтом (Alexander Schmidt) и Михаэлем Шёбелем (Michael Schobel) была создана HTML документация по WRK с использованием генератора документации Phoenix Cross Reference (PXR)2 . Данная документация доступна для преподавателей по следующей ссылке:
http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8668
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Дополнительная информация
- Презентация “Windows Research Kernel: Source overview & project” одного из архитекторов ядра Windows, 2006 год.Медиа:WindowsResearchKernel-1.pdf
Microsoft |
---|
Windows Research Kernel • WNT: правдивая история Windows NT • Remote Desktop Protocol • Xming • Windows Subsystem for Linux (WSL) • Запуск DE и графического ПО в WSL • Cygwin • PowerShell |
Целью
лабораторной работы является практическое
освоение Windows Research Kernel (WRK) – исходных
кодов исследовательского ядра Windows,
предназначенных для более глубокого
изучения архитектуры Windows и исследований
в области операционных систем. Необходимый
вводный и общий теоретический материал
по архитектуре и особенностям WRK
представлен в «Академическая
программа Microsoft Shared Source Initiative. Открытое
ядро Windows для изучения и исследований
(Windows Research Kernel)»
данного курса. Данная лабораторная
работа является лишь начальным
практическим ознакомлением с пакетом
WRK, использование которого в обучении
операционным системам само по себе
может стать основой для семестрового
или полугодового курса и (или) семинара
по ОС. Методы использования WRK, а также
основы внутренней архитектуры Windows
описаны в книге [7].
Пакет WRK доступен для скачивания
преподавателями, аспирантами и студентами,
зарегистрированными с помощью Microsoft
Passport, по ссылке [21]
с академического сайта Microsoft. Размер
дистрибутива для скачивания – 14 мегабайт.
Содержание
-
Аппаратура
и программные инструменты, необходимые
для лабораторной работы -
Продолжительность
лабораторной работы -
Обзор
Windows Research Kernel -
WRK
включает исходные коды для следующих
компонент: -
WRK
— Детали -
NTOS
реализует основные функции ОС для: -
Скачивание
и установка WRK -
Структура
директорий WRK -
Ознакомление
со структурой исходных кодов ядра
Windows -
Ознакомление
с базовой структурой исходных кодов
ядра -
Задание
повышенной сложности: Экспериментальная
сборка Windows из исходных кодов -
Инструкция
по сборке Windows -
Пояснения
к инструкции по сборке Windows
Аппаратура
и программные инструменты, необходимые
для лабораторной работы
Настольный
или портативный компьютер с одной из
версий операционной системы Microsoft
Windows
Продолжительность
лабораторной работы
2
академических часа
Обзор
Windows Research Kernel
Пакет
WRK включает исходный код ядраWindows XP x64 и
Windows Server 2003 SP1 с окружением для сборки и
тестирования экспериментальных версий
ядра Windows для использования
в целях изучения и преподавания.
WRK
включает исходные коды для следующих
компонент:
-
Processes
– Процессы -
Threads
-Потоки -
LPC
– Локальные вызовы процедур -
Virtual
memory – Виртуальная память -
Scheduler
— Планировщик -
Object
manager – Менеждер объектов -
I/O
manager – Менеджер ввода-выводв -
Synchronization
— Синхронизация -
Worker
threads – Рабочие потоки -
Kernel
heap manager – Менеджер
кучи
ядра -
Прочая
функциональность ядра (NTOS)
Пакет
WRK полезен при разработке проектов,
позволяющих студентам исследовать
принципы операционной системы с
использованием
исходных кодов ядра. Он поддерживает
построение экспериментов и проектов
на основе модификации ядра Windows ,
обеспечивая высокоуровневые методы
обучения и исследования и лучшее
понимание архитектуры и реализации
Windows.
WRK
— Детали
Пакет
Windows Research Kernel содержит исходные коды
ядра Windows (NTOS).
NTOS
реализует основные функции ОС для:
-
Управления
процессами -
Управления
потоками -
Управления
виртуальной памятью и кэш-памятью -
Управления
вводом-выводом -
Управления
реестром -
Функцй
исполнительной подсистемы ядра
(executive), таких, как куча ядра и синхронизация -
Менеджера
объектов -
Механизма
локального вызова процедур -
Монитора
безопасности -
Низкоуровневого
управления процессором (планирование
потоков, асинхронные и отложенные
вызовы процедур, обработка прерываний,
обработка исключений)
Компонента
Hardware Abstraction Layer, файловые системы, сетевые
стеки и драйверы устройств реализованы
отдельно от NTOS и загружаются в режиме
ядра как динамически линкуемые библиотеки.
Исходные коды для этих динамических
компонент не включены в WRK. Однако
некоторые из них доступны в различных
инструментальных наборах, опубликованных
фирмой Microsoft, таких, как Installable File System
Kit и Windows Driver Development Kit.
Пакет
WRK включает значительную часть исходных
кодов ядра NTOS из самых ноых версий
Windowsподдерживающих архитектуру x64.
Исходные коды ядра, не включенные в WRK,
относятся, главным образом, к компонентам
Plug and Play (динамическому подключению
устройств), управлению электропитанием,
верификатору устройств, интерфейсу
отладки ядра и виртуальной машине DOS
(выполняющей DOS-приложения).
Пакет
WRK предназначается для преподавателей,
работающих в области операционных
систем, разрабатывающих курсы и учебники
и желающих включить в них информацию о
ядре Windows, базирующуюся на реальных
исходных кодах.
Пакет
WRK включает окружение для сборки и
тестирования и бинарные коды для
отсутствующих компонент, которые могут
быть использованы
для сборки полнофункционального ядра
NTOS, инсталлируемого в системах Windows
Server 2003 для x86/x64 и Windows XP x64.
Скачивание
и установка WRK
Скачайте
по ссылке [2] пакет Windows Research Kernel и
распакуйте полученный архив.
Структура
директорий WRK
Войдите
в базовую директорию WindowsResearchKernel-WRK.
Вы
увидите в Windows Explorer структуру директорий
пакета WRK (рис.
39.1):
Рис.
39.1.
Структура директорий пакета WRK
Файл
README содержит краткое описание структуры
пакета.
Файл
LICENSE содержит подробное описание
лицензии, на основе которой доступен
WRK.
Кратко,
суть лицензии в том, что WRK может быть
использован
только для обучения и исследований, но
не джля коммерческих разработок.
Откройте
файлы README и LICENSE и ознакомьтесь с их
содержимым.
Весь
материал для изучения в пакете WRK
представлен на английском языке.
Ознакомьтесь
с содержимым базовых директорий пакета
WRK:
-
Директория
NTDesignWorkbook содержит уникальный материал
– фактически это подробные спецификации
архитектуры всех компонент ядра Windows.
Это – «святая святых» фирмы
Microsoft, как и сами исходные коды ядра
Windows. Приведение в доступный для изучения
вид этих спецификаций для академического
сообщества программистов потребовало,
по признанию специалистов Microsoft,
нескольких лет работы. -
Директория
VirtualPC2004S1 содержит дистрибутив инструмента
Microsoft под названием Microsoft Virtual PC. Данный
инструмент позволяет организовать на
Вашем компьютере виртуальную машину,
в которую Вы можете инсталлировать
любую операционную систему, в том числе
– экспериментальную ОС, являющуюся
результатом Ваших экспериментов в WRK.
В качестве отдельного практического
занятия, можете инсталлировать Microsoft
Virtual PC и в полученную виртуальную машину
инсталлируйте другую операционную
систему, например, другую версию Windows
или какую-либо версию Linux. -
Директория
WRK-v1.2 содержит собственно исходные коды
ядра Windows. Их струкуру подробнее
рассмотрим немного позже.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Ever asked how Windows API retrieves the current time, the version of the OS, or whether an evaluation period has expired? This structure will answers some of these questions.
Recently, a colleague of mine, Martin von Löwis, found an article in Google about Windows timing and this article used an artifact of the KUSER_SHARED_DATA
structure. Well, as we have the sources, let’s have a closer look to that structure (see publicsdkincntexapi.h). (As the WRK license agreement limits the number of lines of code that can be shown in one piece to 50 lines, I left out the comments.)
02229 typedef struct _KUSER_SHARED_DATA { 02237 ULONG TickCountLowDeprecated; 02238 ULONG TickCountMultiplier; 02244 volatile KSYSTEM_TIME InterruptTime; 02250 volatile KSYSTEM_TIME SystemTime; 02256 volatile KSYSTEM_TIME TimeZoneBias; 02264 USHORT ImageNumberLow; 02265 USHORT ImageNumberHigh; 02271 WCHAR NtSystemRoot[260]; 02277 ULONG MaxStackTraceDepth; 02283 ULONG CryptoExponent; 02289 ULONG TimeZoneId; 02290 ULONG LargePageMinimum; 02291 ULONG Reserved2[7]; 02297 NT_PRODUCT_TYPE NtProductType; 02298 BOOLEAN ProductTypeIsValid; 02309 ULONG NtMajorVersion; 02310 ULONG NtMinorVersion; 02316 BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; 02322 ULONG Reserved1; 02323 ULONG Reserved3; 02329 volatile ULONG TimeSlip; 02335 ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; 02344 LARGE_INTEGER SystemExpirationDate; 02350 ULONG SuiteMask; 02356 BOOLEAN KdDebuggerEnabled; 02362 UCHAR NXSupportPolicy; 02368 volatile ULONG ActiveConsoleId; 02376 volatile ULONG DismountCount; 02384 ULONG ComPlusPackage; 02392 ULONG LastSystemRITEventTickCount; 02399 ULONG NumberOfPhysicalPages; 02405 BOOLEAN SafeBootMode; 02413 ULONG TraceLogging; 02422 ULONGLONG TestRetInstruction; 02423 ULONG SystemCall; 02424 ULONG SystemCallReturn; 02425 ULONGLONG SystemCallPad[3]; 02431 union { 02432 volatile KSYSTEM_TIME TickCount; 02433 volatile ULONG64 TickCountQuad; 02434 }; 02440 ULONG Cookie; 02446 ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; 02447 02448 } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
While I cannot say the meaning and usage of all fields, I will concentrate on the most interesting ones.
Windows Times
Windows maintains three types of time: The interrupt time (line 2244), the system time (line 2250), and the system’s tick count (lines 2431 thru 2434). While the first ones represent a real time value in units of 100 ns, the latter is just a counter starting at zero when the machine boots. In tests using the KUSER_SHARED_DATA
we figured out that the tick count is incremented each 15.625 ms.
The interrupt time is the only Windows clock that guarantees to be monotonous that is, its value only increases over timer. Its value represents the time in units of 100 ns since the system was booted. The interrupt time is the base clock for all timers in Windows (see my recent article A Bug in Windows Timer Management). It is updated every clock interrupt.
In contrast, the system time represents the time in units of 100 ns since January 1, 1601. It always represents your local time, not UTC (Universal Coordinated Time). The system time does not guarantee to be monotonous, which means it might “jump” backwards. (Just think of the Daylight Saving time adjustment or NTP.)
Now, let’s have a closer look at the data structure that is used to hold the interrupt time and the system time (see publicsdkincntkeapi.h):
00048 typedef struct _KSYSTEM_TIME { 00049 ULONG LowPart; 00050 LONG High1Time; 00051 LONG High2Time; 00052 } KSYSTEM_TIME, *PKSYSTEM_TIME;
As you can see, the time is stored as a 64-bit value: High1Time:LowPart
. But why is there another HighPart (High2Time
) field in the structure (line 51)? To be short, it is for synchronization purposes. The three time values are updated directly by the clock interrupt service routine (ISR). An ISR must not acquire any lock because it must complete as fast as possible and thus must not block. However, to ensure applications (Win32) to read a consistent time value, the order in which the members of KSYSTEM_TIME
are updated has a very strict manner. The ISR first updates High2Time
, then LowPart
, and finally High1Time
. A consuming application must read the structure the same strict but inverse order, that is, it first reads High1Time
, then LowPart
, and finally High2Time
. If High1Time
and High2Time
are equal, the High1Time:LowPart
is a consistent value. Otherwise the application was interrupted by the clock interrupt and needs to read the structure again.
Access the Structure in Your Application
The most important thing I need to tell you about the KUSER_SHARED_DATA
structure is that it is exported to user address space. See files basentosinci386.h or basentosincamd64.h, respectively, depending on your target architecture. Refer to the definition of KI_USER_SHARED_DATA
. This constant holds the virtual address, where the single instance of KUSER_SHARE_DATA
is mapped to. For example, on an x86 architecture, it is mapped to 0xFFDF0000
. But be careful with using this structure! It is subject to change and it might have a completely different structure on Windows XP or Windows Vista. Although I think this is pretty improbable because of its strong usage inside the kernel, you must be aware of that fact.
If you already have experiences with KUSER_SHARED_DATA, don’t hesitate to comment and share your knowledge among the community.
This entry was posted on Thursday, August 9th, 2007 at 10:40 am and is filed under Data structures. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
Windows-Research-Kernel-WRK-
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.
WRK v1.2
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:
cache - cache manager
config - registry implementation
dbgk - user-mode debugger support
ex - executive functions (kernel heap, synchronization, time)
fsrtl - file system run-time support
io - I/O manager
ke - scheduler, CPU management, low-level synchronization
lpc - local procedure call implementation
mm - virtual memory manager
ob - kernel object manager
ps - process/thread support
se - security functions
wmi - Windows Management Instrumentation
inc - NTOS-only include files
rtl - kernel run-time support
init - kernel startup
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 <destination_directory>
(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_DIR>WRK.sln, where <WRK_DIR> 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%
NOTE ABOUT
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.
WRK v1.2
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:
cache - cache manager
config - registry implementation
dbgk - user-mode debugger support
ex - executive functions (kernel heap, synchronization, time)
fsrtl - file system run-time support
io - I/O manager
ke - scheduler, CPU management, low-level synchronization
lpc - local procedure call implementation
mm - virtual memory manager
ob - kernel object manager
ps - process/thread support
se - security functions
wmi - Windows Management Instrumentation
inc - NTOS-only include files
rtl - kernel run-time support
init - kernel startup
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 <destination_directory>
(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_DIR>WRK.sln, where <WRK_DIR> 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%
NOTE ABOUT
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.
Windows не является операционной системой с открытым исходным кодом, но, как уже упоминалось в предыдущей главе, Microsoft открыла исходный код ядра на основе Windows XP X64 и Windows Server 2003 SP1. Он может компилировать и проходить, как обучение исследовательских учреждений. И исследовательская платформа использует, называется WRK (Windows Research Kerrel, Kernel Windows Research).
Важная цель WRK — это вспомогательное обучение, позволяющее компьютерным специалистам понимать и освоить основные концепции и различные механизмы в современной операционной системе через исходный код Windows Kernel.
1, WRK содержит следующие
WRK ядра исходный код, связанный процесс, нить, управление поток памяти, руководитель, руководитель объектов, диспетчер объектов, Cache Manager, локальный вызов процесса (LPC), реестр, I / O Manager, Manager, контрольный монитор безопасности и планирование потоков, APC (асинхронный процесс) / DPC (задержка обрабатываний процесса), прерывание и обработка исключений и т. Д. В качестве исходного кода есть ответ на компиляционный инструмент, поэтому нет дополнительного компилятора для компиляции WRK на исполняемое ядро Windows Server 2003 SP1.
NT Docket Documentation. Это набор ранних документов, однако, прочитав эти документы, вы можете четко понять оригинальные идеи дизайна за Windows NT, а с другой стороны, видно, как Windows развивается и развивается в течение более десяти лет. Эти документы охватывают все аспекты операционной системы Windows, даже в том числе наброски дизайна файловой системы и структуру модуляции ядра.
Программное обеспечение Virtual PC 2007 и виртуальные изображения Windows Server 2003 SP1, эта система виртуальной машины настроила ядро WRK. С помощью этого виртуального изображения System PC 2007 и WRK вы можете легко отладки и отслеживать код в WRK.
Ресурсы курса CRK (комбинация ресурсов учебных программ), включая полный набор операционных систем Windows, в общей сложности 15 единиц. Каждый блок содержит некоторую тему, упражнения и восходящие работы. Это очень полезное обучение для курса с Windows в качестве платформ преподавания и эксперимента.
Исходный код проекта. Projectoz — это операционная система экспериментальной среды для механизмов CPU, MMU и Trap, установленные NTAPI из ядра Windows. Ядро представляет собой космическую абстракцию CPU, MMU и механизма ловушки. Поскольку следующее следующее — это настоящая операционная система Windows в обработке и манипулирующей оборудовании, учащиеся имеют больше возможностей для изучения и почувствовать сложность алгоритмов операционной системы и структур данных.
Однако Microsoft в настоящее время не открыта для всех, но преподавание и научных исследований как открытая цель, ограничена факультетом университета. Видеть:
2, Описание исходного кода WRK
Файл модуля ядра Windows является NTOSKRNL.EXE, который расположен в каталоге Windows System32, который содержит раздел «Исполнительного и ядра» (Micronucleen) в архитектуре Windows. Исходный код, предоставленный WRK, может компилировать этот файл модуля ядра, и созданный по умолчанию файл drkx86.exe называется wrkx86.exe в среде компиляции WRK. Опция / ядро загрузки Windows может указать файл основного модуля, отличный от ntoskrnl.exe. Таблица 2.2 Перечисляет структуру каталогов исходного кода WRK и его соответствующих компонентов ядра.
WRK содержит большую часть кода, необходимого для компиляции модулей ядра NTOSKRNL.EXE, и код, который не раскрыт, в основном реализован путем управления подключаемым устройством, управлением питанием, детектором драйвера устройств и реализацией виртуальной продукции VOS. Для того, чтобы составить исходный код WRK и получить фактический запуск модуля ядра, отсутствующая деталь включена в WRK в виде бинарного целевого кода, расположенного в базе NTOS Build Prebuilt i386 (или база ntos build Prebuilt amd64) каталог. Этот каталог также содержит некоторые другие целевые файлы, которые требуют статических ссылок. Поэтому, как только WRK все еще является отличным ресурсом для изучения и понимания рабочего механизма Windows.
Код WRK извлекается в последнем коде продукта Windows, который может быть скомпилирован и запущен в Windows Server 2003 SP1 (процессор для процессоров X86) и Vindos XP SP2 (версию AMD64), его версия ядра составляет 5,2. Код WRK практически соответствует коду продукта. Основное изменение состоит в том, чтобы удалить поддержку сервера, такого как код, связанный с Intel IA 64.
Консистенция исходного кода Windows лучше, очень легко читать. Логика самого кода и различные идентификаторы в основном, пожелание, и важные заголовки функций имеют подробные инструкции по применению, а важные фрагменты кода также имеют специальные ноты. В целом, организация кода более четко, как показано в таблице 2.2. Каждый компонент внутри модуля ядра предоставляет некоторые функции интерфейса для других компонентных вызовов, а некоторые функции используются внутри компонента. Таблица 2.3 перечислены некоторые часто используемые префиксы идентификации. Есть некоторые компонентные внутренние функции. Есть также закономерности: префикс является первой буквой, сопровождающейся одним I, или следует по одному P в префиксе, здесь я представляет внутреннюю, то есть внутренний; P-код частного, то есть частные.
Даже если нет кода, также можно понять основной принцип Windows через эту книгу, гораздо более интуитивно понятную и эффективную, чем код.
Какие версии существуют у операционной системы 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)?
This is the first part of the WRK series. For your convenience you can find other parts using the links below (or by guessing the address):
Part 1 – Compiling and debugging
Part 2 – Monitoring and function invocation
Part 3 — Syscall
Part 4 — New module
Nowadays Microsoft is very happy to share code of its tools with the open source community. But it wasn’t always the same — .NET Framework code wasn’t freely available, however, there was the project Rotor (or Shared Source CLI 2.0) which was a .NET implementation for research purposes. You could download the code, compile it on your own and experiment with the internals of the platform. It wasn’t exactly the same though, but it was good enough to see the code and play with it.
Similarly, there was a project with Windows OS source code, namely Windows Research Kernel. In this series we are going to compile the code, change some of its internals and see it in action.
WRK
Windows Research Kernel (WRK) is a source code of the kernel of Windows Server 2003 SP 1. It was released for research purposes so you couldn’t download it just like that, however, right now you might find it on Github pretty easily. The code is old, which means that getting it to work is a little hard, however, you should be able to follow the guide Getting started with WRK.doc
to compile the project since it comes down to just running the bat file (assuming you have installed all of the dependencies). You can build the code for x86 and x64. There is also a solution (VS 2008!), you can just choose the configuration and build everything with your favorite IDE.
But the kernel is not enough, you need to have the rest of the Windows OS to actually test it. That’s why it was distributed with virtual machine based on Virtual PC 2007 (do you even remember this application?) which you could use to boot the kernel. The Windows Server 2003 installed in that VM was a little different than the normal one, i.e., it was showing the build number of the desktop so you could see which kernel you booted. Also, it had SP 1 installed and disabled updates because SP 2 was not compatible with the WRK.
Let’s start with enabling debugging for the VM. I assume you downloaded the WRK and the VM image and you can run it correctly. I will be using VMWare Player. By the way, did you know that you can use the same hard drive file for VMWare, Virtual Box and Hyper-V? This way you can configure your VM to be able to boot it with any hypervisor you like, and also support boot to VHD to use it natively on your machine. Pretty cool.
First, you need to configure serial port for the machine and expose it as a named pipe for the host. You can see the configuration below:
The OS should have debugging enabled by default. If it is not, then you need to add the following to the boot.ini:
default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)WINDOWS=«Windows Server 2003, Standard» multi(0)disk(0)rdisk(0)partition(2)WINDOWS=«Windows Server 2003, WRK» /kernel=wrkx86.exe /hal=< your HAL > /debug /debugport=com1 multi(0)disk(0)rdisk(0)partition(2)WINDOWS=«Windows Server 2003, WRK — No Debugger» /kernel=wrkx86.exe /hal=< your HAL > |
Remember to set correct HAL.
Finally, you need to configure WinDBG. Just use the following settings:
Also, configure your symbols to the correct directory. You can automate this by using the following script to run the debugger:
@echo off set wrksymbols=%wrkpath%basentosBUILDEXE set dbgpipe=.pipedebugPipe set dbgargs=-k com:pipe,port=%dbgpipe%,resets=0,reconnect —y %wrksymbols% windbg %dbgargs% |
Done. You should now be able to debug the kernel and play with it.
Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются операционные системы семейства 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 8 – новейшая операционная система от корпорации Microsoft, предназначенная для использования на персональных компьютерах, в том числе с сенсорными дисплеями.
Ядро Windows 8 имеет номер версии 6.2 и его код основан на коде ядра Windows 7 (имеющего номер версии 6.1) с небольшими изменениями.
Основные особенности
Интерфейс
Самым заметным отличием новой системы от Windows 7 является, конечно, интерфейс Modern UI, который используется при старте системы вместо привычного рабочего стола (рис.3.1).
Впервые Modern UI появился в Windows Phone 7 в 2010 году. Принцип, используемый в этом интерфейсе, – на первом месте содержание, а не графическое оформление. Поэтому в Modern UI минимизировано использование элементов интерфейса – кнопок и меню; вместо иконок используются плитки (tiles), внутри которых текст выводится при помощи легко читаемых шрифтов, а для динамичного отображения информации широко используется анимация.
Традиционный рабочий стол также присутствует – его можно вызвать, щелкнув на плитку Desktop. Обратно к интерфейсу Modern UI можно вернуться, подведя указатель мыши в левый нижний угол экрана (один из четырех «активных углов») или нажав кнопку Windows на клавиатуре.
Другим изменением в интерфейсе стало использование Ribbon Interface (Ленточный интерфейс) в Проводнике Windows (рис.3.2).
Учетные записи
На компьютер под управлением Windows 8 можно войти, используя учетную запись Microsoft (Live ID). При этом становятся доступны все связанные с учетной записью сервисы – SkyDrive, Outlook.com, Microsoft Messenger, Facebook, LinkedIn, Twitter и др.
С помощью использования Live ID доступна функция семейной безопасности и родительского контроля (Microsoft Family Safety).
Безопасность
Программа Защитник Windows (Windows Defender), которая ранее обладала только антишпионскими функциями, теперь стала ещё и антивирусом.
Поддерживается механизм безопасной загрузки на системах с UEFI (Unified Extensible Firmware Interface – унифицированный расширенный интерфейс для встроенного программного обеспечения; стандарт, предназначенный для замены BIOS), путем проверки целостности загрузчика Windows. Таким образом, предотвращаются попытки вредоносных программ перехватить управление до загрузки системы.
Диспетчер задач
Диспетчер задач (Task Manager) существенно изменен по сравнению с предыдущими версиями: добавлены подробности по текущему использованию ресурсов, добавлена вкладка Автозапуск (Startup), добавлена вкладка истории использования приложениями различных ресурсов (App history) (рис.3.3).
История файлов
Функция История файлов (File history) автоматически сохраняет копии изменяемых файлов, так что при необходимости можно откатить изменения и вернуться к старым версиям файлов.
Восстановление системы
Добавлены две функции по восстановлению системы без использования носителей с дистрибутивом – Обновление (Refresh) и Сброс (Reset). При Обновлении система переустанавливается с сохранением пользовательских файлов и настроек; при Сбросе диск форматируется и система устанавливается с нуля.
Storage Spaces
Функция Storage Spaces позволяет объединять физические диски, построенные по разным технологиям (SATA, USB, SAS), в единый виртуальный диск с автоматическим резервированием информации.
Версии Windows 8
Планируется выпуск четырех версий Windows 8:
Минимальные системные требования для Windows 8 практически совпадают с требованиями для Windows 7:
Разработка приложений для Windows 8
Для Windows 8 стала возможной разработка нового типа Windows приложений – приложений в стиле Modern UI (см. раздел на MSDN [MSDN Apps]).
Особенности приложений в стиле Modern UI
У приложений в стиле Modern UI есть ряд особенностей, которые отличают их от традиционных Windows-приложений:
Инструменты
Для написания приложений в стиле Modern UI можно использовать среду разработки Visual Studio 2012, средство для создания пользовательского интерфейса Blend, шаблоны проектов Visual Studio (http://msdn.microsoft.com/ru-RU/windows/apps/br229516.aspx).
Поддерживаемые языки программирования – C#, С++, Visual Basic, JavaScript. Для разработки приложений, требующих эффективной работы с графикой, можно использовать Microsoft DirectX 11.
Для интеграции приложения с сервисами Hotmail, Windows Live Messenger, Microsoft SkyDrive и др. применяется Live SDK – набор специализированных API для доступа к информации пользователя этих сервисов.
Для более подробной информации см. [MSDN Apps; Лутай и др.; Techdays].
Резюме
Рассмотрены ключевые особенности и версии новейшей операционной системы Microsoft Windows 8. Приводится также информация о разработке приложений в стиле нового интерфейса Modern UI.
В следующей лекции мы переходим к изучению внутреннего устройства Windows и начинаем с рассмотрения архитектуры системы.
Источник
Исследовательское ядро Windows
Windows Academic Program
Кроме WRK в академическую программу Microsoft входят следующие компоненты [15]:
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей ( Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance ( MSDN AA).
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены [11].
На рис.5.1 представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра [13].
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
Например, рассмотрим функцию KeStartThread:
В таблице 5.1 приведены основные компоненты WRK (см. соответствие с компонентами на рис.5.1) с указанием префиксов входящих в их состав функций.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System 1 Raw File System («сырая» файловая система) – если Windows не может распознать файловую систему диска, для него назначается Raw File System (драйвер которой реализован в ядре) и все запросы чтения/записи файлов к такому диску отклоняются. |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Таблица 5.1. Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
HTML документация по WRK
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros) (рис.5.2).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Резюме
В следующей лекции будут рассмотрены основные объекты, отвечающие за работу приложений – процессы и потоки.
Источник
Архитектура ОС Windows и Linux
Добрый день Пикабушники!
Сегодня я решил показать Вам различия между ядрами операционных систем Windows и Linux.
Начнем с относительно простого ядра Linux.
Теперь перейдем к Windows:
Как видим структура ядра намного более сложная. Преимущество это или недостаток? Каждый решает для себя сам. Программа под Windows обращается через документированный Windows API к «своей» библиотеке (например Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll), эти библиотеки по внутреннему протоколу (документация для разработчиков не из Microsoft не доступна) обращается по протоколу Native API к Ntdll.dll и далее передается через диспетчер системных сервисов ядру (все это внутри Ntoskrnl.exe).
Не менее важным является включение графической подсистемы в ядро (в современных серверных ОС данная система отключена или отсутствует), что во-первых не дает сменить графическую оболочку «на ходу», а во-вторых уже не способствует быстродействию.
Источник
Практическое изучение Windows Research Kernel
Аппаратура и программные инструменты, необходимые для лабораторной работы
Настольный или портативный компьютер с одной из версий операционной системы Microsoft Windows
Продолжительность лабораторной работы
2 академических часа
Обзор Windows Research Kernel
Пакет WRK включает исходный код ядраWindows XP x64 и Windows Server 2003 SP1 с окружением для сборки и тестирования экспериментальных версий ядра Windows для использования в целях изучения и преподавания.
WRK включает исходные коды для следующих компонент:
Пакет Windows Research Kernel содержит исходные коды ядра Windows (NTOS).
NTOS реализует основные функции ОС для:
Скачивание и установка WRK
Структура директорий WRK
Войдите в базовую директорию WindowsResearchKernel-WRK.
Вы увидите в Windows Explorer структуру директорий пакета WRK ( рис. 39.1):
Файл README содержит краткое описание структуры пакета.
Файл LICENSE содержит подробное описание лицензии, на основе которой доступен WRK.
Кратко, суть лицензии в том, что WRK может быть использован только для обучения и исследований, но не джля коммерческих разработок.
Откройте файлы README и LICENSE и ознакомьтесь с их содержимым.
Весь материал для изучения в пакете WRK представлен на английском языке.
Ознакомьтесь с содержимым базовых директорий пакета WRK:
Ознакомление со структурой исходных кодов ядра Windows
Войдите в директорию WRK-v1.2.
Директория tools содержит инструменты для сборки из исходных кодов, например, утилиту nmake. Ознакомьтесь с содержимым данной директории.
Источник
Заглянуть в ядро: насколько сильна Windows
Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.
Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.
Многие области операционной системы от Microsoft в повседневной работе от нас скрыты. Как правило, пользователь видит лишь то, что работает в пользовательском режиме; режим ядра, в котором операционная система общается с оборудованием, ему недоступен.
Windows Debugger анализирует образ памяти и показывает причины сбоев — в нашем случае виноват драйвер режима ядра Файл NTOS — сердце ядра Windows, логически подразделяется на два слоя. Особенность состоит в том, что из соображений повышения производительности драйверы могут обращаться к оборудованию напрямую Ядро Linux отвечает за управление командами ввода-вывода, памятью и процессами. На самом низком уровне ядра находятся функции, управляющие прерыванием процессов Доступ к ядру Linux открыт каждому. На рисунке — фрагмент конфигурации ядра версии 2.6.19 Ядро системы Apple основано на двух источниках: в нем используются функции основанной на Unix подсистемы BSD наряду с частями микроядра Mach Со словом «Windows» связано много предубеждений и мифов. Например, бытует мнение, что работать в Windows крайне опасно, так как миллионы вирусов, гуляющих по Интернету, атакуют исключительно эту ОС. К тому же многие уверены, что детище Microsoft не отличается высокой производительностью: чем дольше вы пользуетесь этой системой, тем медленнее она работает. Что касается стабильности, то всем хорошо знаком пресловутый «синий экран». Это и неудивительно: Vista состоит из семидесяти миллионов строк кода — как тут не запутаться! Чтобы выяснить, справедливы ли все эти обвинения, необходимо заглянуть в самое ядро операционной системы и проверить, насколько оно отвечает трем критериям: безопасность, производительность и стабильность. А для сравнения возьмем ядра двух других систем — Linux и Mac OS X. Кроме того, мы подробно расскажем, какие методы используют Windows и ее конкуренты.
Контроль над системой
Ядро управляет операционной системой, и ее качество зависит именно от качества ядра. На нем держится буквально все. в частности, ядро выполняет роль интерфейса для компьютерного оборудования: оно общается с внешними устройствами и управляет встроенными компонентами, такими как оперативная память, центральный процессор и жесткий диск.
Чтобы обеспечить безопасность системы, ядро следит за всеми текущими процессами, определяя, какие программы и как долго могут пользоваться аппаратными ресурсами. Стабильность достигается за счет структурирования ресурсов. За этим стоят функции, к которым обращаются каждый день — например, отображение файловых систем на жестком диске. Высокая производительность важна при возникновении конфликтов доступа — например, когда две программы пытаются записать данные на жесткий диск одновременно. В этом случае ядро расставляет приоритеты и предоставляет доступ одной из программ, в то время как второй приходится ждать. Ниже мы подробно расскажем, как именно Windows справляется со всеми этими задачами.
Обзор типов ядер
Монолитное.
Одно большое ядро для всех задач — в этом заключается идея монолита. Такое ядро отвечает за управление памятью и процессами, за коммуникацию между процессами, а также предлагает функции для поддержки драйверов и оборудования. Именно к этой категории относятся Windows, Linux и Mac OS X.
Микро. Ошибка в ядре может вывести из строя всю операционную систему. Поэтому микроядро отличается предельно малыми размерами — чтобы свести ошибки и сбои к минимуму. Но поскольку ядро должно поддерживать широкий набор функций, оно подразделяется на несколько модулей, из которых только один работает в режиме ядра. Классическим примером является Mach — компонент Mac OS X. Так или иначе, до сих пор ни одна операционная система с микроядром не завоевала популярности среди домашних пользователей.
Гибрид.
Гибридное ядро представляет собой нечто среднее между монолитным и микроядром. Само ядро делается облегченным, а для дополнительных задач существуют динамические модули. В Linux и OS X тоже можно подгружать части ядра, но не в таких масштабах, чтобы отнести их ядра к гибридным.
Windows : работает на любом оборудовании
Начиная с NT, в архитектуре Windows выделяется два режима: пользовательский и привилегированный, или режим ядра. Это относится и к Vista.
В режиме пользователя работает практически все, что видит пользователь, то есть приложения вроде Word или Photoshop. В этом режиме программы не имеют прямого доступа к оборудованию или оперативной памяти. Таким образом, пользовательский режим надежно изолирован, а все обращения к глубинам системы направляются через специальные интерфейсы, такие как Win32 API с системными библиотеками DLL (Dynamic Link Libraries).
Такой режим ядра — фоновый и практически незаметен для пользователя. Все хорошо до тех пор, пока не возникнет какая-либо проблема — например, драйвер режима ядра (см. схему ядра Windows) не обрушит всю систему, и взору пользователя предстанет синий экран.
Центральное значение здесь имеет файл ntoskrnl.exe.
По аналогии с режимом ядра и пользовательским режимом его задачи также делятся на две группы — слой ядра и исполнительная система. Главная задача слоя ядра — планировать загрузку центрального процессора, то есть распределять процессорное время между отдельными программами. Исполнительная система отвечает за виртуальную память, процессы ввода-вывода и другие задачи.
Глубже всего в системе располагается уровень аппаратных абстракций (Hardware Abstraction Layer, HAL). Он предоставляет другим слоям ОС службы для работы со встроенным оборудованием. Так, слой ядра может распределять процессорное время между программами независимо от того, какой процессор используется в компьютере — двуядерный AMD или четырехъядерный Intel. Если бы не HAL, Microsoft пришлось бы разрабатывать отдельную Windows для каждого компьютера.
Средства для отладки Windows WINDBG Чтобы проанализировать состояние памяти при выдаче «синего экрана», вам понадобится программа-отладчик, такая как WinDbg. На странице загрузок Microsoft вы найдете также соответствующий файл символов. www.microsoft.com/whdc/DevTools/Debugging NotMyFault тестирует систему на прочность: эта программа провоцирует ошибки в Windows и пытается ее обрушить. Экспериментируйте осторожно! Process Explorer. Управление процессами — одна из главных задач операционных систем. Process Explorer показывает все текущие процессы, соответствующие дескрипторы и связи между процессами. http://download.sysinternals.com
Linux : подгружает модули при необходимости
Хотя ядро Linux (см. схему) основано на Unix, но сходства с Windows у него больше, чем можно подумать. Оно также располагается непосредственно над оборудованием и играет роль своеобразной прослойки между оборудованием и работающими программами. Стандартные задачи тоже сходны: как и в Windows, ядро сотрудничает с устройствами ввода-вывода и берет на себя управление памятью. Оно также управляет процессами, то есть решает, какая задача в данный момент имеет приоритет, и получает доступ к процессорному времени. Для этого на самых нижних уровнях ядра располагаются функции управления прерываниями (interrupts).
Запрос на прерывание посылает, к примеру, клавиатура, когда пользователь нажимает на любую клавишу. Этот запрос обрабатывается специальным системным механизмом — диспетчером. Он решает, насколько высока приоритетность прерывания и включает его в очередь текущих процессов. Как только появляется возможность выполнить прерывание, диспетчер приостанавливает протекающий процесс и сохраняет его статус. Только после этого прерывание, то есть введенная с клавиатуры команда, может быть реализовано.
Архитектура Linux, как и Windows, имеет монолитное строение. Тем не менее, ядро может динамически догружать различные модули. В основном они дополняют имеющиеся компоненты или даже полностью заменяют их.
В ядро Linux встроены интерфейсы системных и библиотечных вызовов, а также пользовательский интерфейс. При этом важную роль играет интерфейс системных вызовов: он отвечает за процессы в целом. Специальной командой процессы переключаются из пользовательского режима в режим ядра.
Mac OS X : сила двух ядер
Ядро Mac OS X сокращенно обозначается как XNU — X is Not Unix.
Эта аббревиатура соответствует действительности, потому что ядро операционной системы Apple скомбинировано из двух источников, и лишь его часть имеет отношение к Unix (см. рис.). Остальное компания взяла из проекта Mach — классического примера микроядра (см. рис.). При этом Mach используется только для передачи сообщений (message passing), то есть эффективной коммуникации между отдельными частями ядра. Помимо Mach XNU содержит код проекта FreeBSD, который основан на Unix. Эта часть отвечает за взаимодействие с пользователем, обработку сигналов и совместимость со стандартами POSIX.
Последнее гарантирует, что большинство программ для Unix будут функционировать и в Mac OS X.
Важным компонентом Mach является система ввода-вывода (I/O Kit).
Именно здесь заключается существенное отличие от Windows и Linux: I/O Kit представляет собой дополнительный слой абстракций между оборудованием и остальной системой.
Здесь находятся стандартные модели драйверов, на основе которых разработчики пишут специализированные драйверы. Это способствует стабильности и повышает вычислительную мощность.
Помимо служб ядра Mac OS X позволяет также использовать расширения ядра. Система загружает их динамически по мере необходимости. Часто в таких случаях говорят о гибридном ядре, однако эксперты относят ядро Mac OS X скорее к монолитным из-за особенностей его строения.
Процессы: цифровая подпись как средство защиты
Важной задачей ядра является управление процессами.
Под этим подразумевается не только расстановка приоритетов, но и обеспечение безопасности. В классическом варианте в Windows процессы запускаются и управляются через интерфейс Win32 API.
В ядре этим занимается исполнительная система NTOS.
Доступ к объектам ядра, относящимся к про цессу обеспечивают так называемые дескрипторы (handles). Процессы в Windows могут запускать новые процессы. Так, Word (процесс 1) может открыть новый документ (процесс 2). В классической модели Windows Word имеет право также стереть или изменить новый документ. Иными словами, по общему правилу процесс может распоряжаться порожденными собою же процессами.
Однако в стандартных процессах есть одна лазейка, позволяющая обойти структуру доступа. Это возможно при наличии полномочий на отладку программ — в данном случае администратору предоставляется полный доступ к процессу. Так он может заглянуть в адресное пространство процесса, считать и изменять используемые в процессе данные. Злоумышленникам это дает возможность добавить в процесс новые потоки.
В связи с этим Vista пересмотрела процессную модель специально для мультимедийных файлов и ввела новый тип процессов — защищенные. Возможности манипулирования ими существенно ограничены: хоть ядро и предоставляет диагностическую информацию о таких процессах, но непосредственный доступ закрыт даже для администраторов.
Согласно этому методу, кодек для просмотра фильма, например, может работать как защищенный процесс только при одном условии — его полный исполняемый код должен быть подписан цифровой подписью.
Защищенные процессы — показательный пример того, как Microsoft приспосабливает устаревшую архитектуру Windows к современным проблемам.
В Linux и Mac OS X процессная модель сходна с моделью Windows: процессы-«родители» контролируют порожденных ими «детей». Однако защищенных процессов, таких как в Vista, нет. Это неудивительно: Microsoft использует эту технологию в первую очередь для цифрового управления правами (Digital Rights Management).
Таким образом, при наличии администраторских (root) прав в Linux и Mac OS X можно делать все, даже анализировать процессы и манипулировать ими.
ASLR : «неуловимые» адреса
Современные процессоры имеют адресную шину шириной 64 бит, однако несколько бит изначально отводится под другие задачи.
Например, NX-бит препятствует исполнению данных DEP (Data Execution Prevention).
При попытке выполнить код, который находится в участке памяти, помеченном «не для исполнения», возникает внутренняя ошибка. В Windows отключить DEP для 64-битных программ и драйверов нельзя, зато для 32-битных (все еще весьма распространенных) — без проблем. Это позволяет злоумышленникам вызвать переполнение буфера. В результате они могут инфицировать такие процессы, как Internet Explorer, и проникнуть внутрь системы. После того как вредитель закрепился в Windows, он может использовать Windows-API в своих интересах — например, для того, чтобы считать нужные ему данные или изменить конфигурацию системы.
Поэтому Microsoft ввела новую функцию защиты ядра — Address Space Load Randomization (ASLR, «рандомизация адресного пространства»). Частично она была реализована уже в SP2 для ХР, но полностью — только в Vista. Ее суть заключается в следующем. В Windows входными воротами для злоумышленников обычно являются библиотеки DLL, которые в предшествовавших версиях системы всегда загружались в одни и те же участки памяти. С ASLR системные DLL и исполняемые файлы при каждой загрузке системы попадают в разные участки оперативной памяти, чтобы вредоносное ПО больше не могло атаковать системные операции по стандартным адресам. Для этого менеджер памяти имеет в своем распоряжении 256 различных адресов и при загрузке DLL выбирает один из них случайным образом. Такая «плавающая» стратегия ASLR имеет дополнительное преимущество: адресное пространство упаковано плотнее, чем в более ранних версиях Windows, так что непрерывных свободных участков в памяти остается больше.
В специальных дистрибутивах Linux, таких как Hardened Gentoo, ASLR уже полностью реализована. В стандартном же ядре содержится лишь неполный вариант. В современном OS X Build ASLR используется для нескольких библиотек, но их полноценная реализация, к сожалению, отсутствует.
Проверка подлинности: надежный код
В качестве противоядия Microsoft использует в Vista подпись кода в режиме ядра (KMCS), которая разрешает загружать лишь те драйверы устройств, которые снабжены цифровой подписью. Большинство драйверов получают подписи через лабораторию WHQl (Windows Hardware Quality Lab), однако разработчики могут подписывать свой код сами — правда, для этого им нужен действительный сертификат. Windows проверяет также, имеет ли выданный сертификат отношение к одному из центров сертификации, данные о которых содержатся в загрузчике Windows и ядре ОС. Надо сказать, что 32-битные системы Vista хотя и проверяют цифровые подписи драйверов, все-таки позволяют загрузить неподписанные драйверы.
В 64-битных Windows такой номер не пройдет.
Все модули ядра в Mac OS X и Linux, в принципе, могут иметь цифровую подпись. Хотя теоретически это относится и к драйверам, никаких механизмов проверки в этих операционных системах не встроено.
MMCSS : приоритет видео
Планировщик Windows жонглирует несколькими процессами, открытыми одновременно. Каждое приложение на определенное время получает доступ к вычислительным мощностям центрального процессора, затем уступает место другим и ждет снова своей очереди.
Чтобы такого не происходило, например, когда вы смотрите фильм, в Windows встроены специальные функции для мультимедийных файлов. Поэтому антивирусы и службы Windows в основном работают в фоновом режиме и не мешают просмотру.
В Vista приоритет фильмов и музыки обеспечивается службой планирования мультимедийных классов — MMCSS. Для этого мультимедийное приложение, такое как Media Player, сначала должно зарегистрироваться в этой службе. Данная служба, реализованная в файле %SystemRoot%System32Mmcss.dll, включает в себя поток для управления приоритетами. Windows предусматривает ступени приоритетности от 0 до 31, при этом MMCSS имеет очень высокую приоритетность — 27. Соответственно, приоритетность всех зарегистрированных мультимедийных потоков поднимается до 27. С 16-й ступени начинается режим реального времени, то есть потоку с приоритетом 16 остальные помешать уже не могут.
Linux предлагает еще более высокую градацию шкалы приоритетности — от 0 до 99. Для мультимедийных задач, например, на медиасерверах, такая разбивка подходит лучше. В Mac OS X планировщик является одним из используемых компонентов Mach.
Шкала приоритетности здесь еще мельче — от 0 до 127, и это не единственное подтверждение того, что Mach намного современнее, чем Linux и Windows. В OS X мультимедийное приложение может даже присвоить себе фиксированную долю вычислительного времени. При достаточной мощности это практически исключает риск образования узких мест.
Ввод-вывод: приоритетность задач
Высокая приоритетность при просмотре фильмов может негативно отразится на многозадачности. Так, до ХР в Windows существовали серьезные проблемы с фоновыми службами, например, автоматической дефрагментацией.
Конечно, это помогало поддерживать жесткий диск в порядке, но кому же понравится, когда, к примеру, Outlook выпадает из обоймы на два часа? Однако благодаря приоритетности ввода-вывода ждать больше не придется. Так, в Vista процессы «переднего плана» (не фоновые) всегда пользуются преимуществом, и дефрагментация приостановится до тех пор, пока пользователь не сделает в своей работе очередную паузу. Система ввода-вывода в Vista предполагает пять ступеней приоритетности — от «очень низкая» до «критически важная»; стандартный уровень — «нормальная». Фоновым задачам Windows автоматически присваивает низкую приоритетность, однако менеджер памяти всегда считается критически важным: действительно, когда оперативной памяти начинает не хватать, он должен незамедлительно сбросить данные на жесткий диск.
Команды ввода-вывода, посылаемые от драйверов устройств (такие как движение мыши), поступают в очередь со средней приоритетностью.
Еще одна ценная возможность заключается в том, что Vista может резервировать для операций ввода-вывода фиксированные диапазоны. Так, например, Media Player может потребовать от системы ввода-вывода гарантию, что фильм будет считываться с DVD в определенном темпе.
Тогда как в Vista приоритетность ввода-вывода — нововведение, в Mac OS X и Linux данный прием используется давно. В Mac OS X это заложено в архитектуре, так как для передачи сообщений используется Mach. В системах семейства Linux, начиная с ядра 2.6, тоже встроена эффективная схема приоритетов.
Адресное пространство: динамическое управление
32-битные процессоры накладывают на Windows и инсталлированные программы серьезные ограничения в отношении адресного пространства. Так, ядро Windows не может занимать больше 2 Гбайт. Когда нужно выделить место для драйверов, кеша файловой системы и стека, это может привести к определенным трудностям. Поэтому в Vista адресное пространство ядра динамическое. Оно занимается раздачей и разблокированием участков в зависимости от рабочих потребностей.
Операционные системы Linux и Mac OS X не имеют строгих ограничений. И в этих операционных системах общие размеры ядра имеют свой предел. В целом формат отдельных компонентов никак не ограничен. Действительно, в отличие от Windows в этих системах нет четкого разграничения между пространством ядра и пространством драйверов.
КТМ: предотвращение программных сбоев
Если приложение намерено предпринять ряд взаимосвязанных изменений, оно может создать либо дескриптор КТм («диспетчера транзакций ядра») и транзакцию DTC (Distributed Transaction Coordinator, «координатора распределенных транзакций»), либо просто дескриптор КТМ, и выполнять изменения файлов и ключей реестра в рамках этой транзакции. Если все прошло успешно, транзакция подтверждается — изменения приняты. До этого программа может в любой момент отменить весь процесс. Дополнительное преимущество заключается в том, что другие приложения видят эти изменения только после того, как транзакция принята.
Ядра Mac OS X и Linux тоже работают с транзакциями.
Пользователь, как правило, этого совсем не замечает, если не считать сбоев при установке обновлений. Впрочем, в обеих ОС это никак не подрывает стабильность системы, просто транзакции не будут исполнены.
Windows 7, 8, 9…
Не секрет, что Microsoft работает над новой архитектурой Windows. Прототипом операционной системы будущего (после Win7) должны стать два проекта.
Singularity обещает нам Windows без «синих экранов» и зависаний. Проект основан на трех ключевых функциях: программно-изолированные процессы (SIP), микроядро и каналы (channels).
Микроядро обеспечивает лишь неотъемлемые «ядерные» функции, такие как управление памятью, процессами и каналами, планировка процессорного времени и управление вводом-выводом. Все другие функции перекладываются на модули и реализуются изолированно друг от друга через SIP-процессы.
Проект Midori рассчитан на отдаленную перспективу. Его ядро будет иметь модульную структуру.
Преимущество заключается в том, что Windows будет лучше работать на различных платформах, таких как нетбуки, КПК или мобильные телефоны.
Вывод
Прошлые версии Windows на фоне Linux и Mac OS X смотрятся совсем неплохо. Хотя конкуренты несколько моложе, они во многом основаны на старых принципах Unix. Vista доказывает, что устаревшую архитектуру Windows можно компенсировать современными технологиями безопасности, такими как защищенные процессы или цифровые подписи кода для модулей ядра. Но, к сожалению, эти функции часто работают только в 64-битном мире, а в ХР они и вовсе отсутствуют. К тому же Linux и OS X не нуждаются в уловках вроде ASLR, поскольку они не так сильно подвержены атакам хакеров. Да и получить права администратора в Linux и Mac OS X сложнее, чем в Windows.
В Windows много застарелых проблем: например, даже в Vista дефектный драйвер все еще может обрушить всю систему. OS X выглядит несколько более современно: высокая производительность обеспечивается главным образом за счет использования компонентов Mach для коммуникаций внутри ядра, а также системы ввода-вывода I/O Kit.
В этом смысле Windows отстает, и компенсировать разрыв сумела только Vista. В пользу Linux говорит ее открытость: каждый может сконфигурировать ядро по своему усмотрению.
Источник
Содержание
- Windows Research Kernel
- Содержание
- Что такое Windows Research Kernel?
- Windows Academic Program
- Структура Windows Research Kernel
- HTML документация по WRK
- Html документация по windows research kernel
Windows Research Kernel
Содержание
Что такое Windows Research Kernel?
Windows Research Kernel (WRK) — исходный код ядра ОС Windows (Windows XP x64 и Windows Server 2003 SP1), распространяемый для некоммерческих, исследовательских целей в рамках «Windows Academic Program» под НЕ СВОБОДНОЙ лицензией (где пруфлинк?). Как следствие, этот код не может быть использован в процессе разработки ReactOS (т.е. разработчики никогда не смотрели этот код и не планируют этого делать, пока не изменятся условия лицензирования WRK)
WRK предназначен для факультетов и преподавателей, работающих в области операционных систем, для разработчиков курсов, авторов учебников и т.д., желающих включить информацию о ядре Windows, основанную на действующем исходном коде. WRK содержит среду для сборки/тестирования и бинарные файлы для исключённых компонентов исходного кода, которые могут быть использованы, чтобы собрать полнофункциональные NTOS ядра для последующей установки на Windows Server 2003 для x86/x64 и Windows XP x64.
Ниже информация из лекции «Исследовательское ядро Windows» курса «Введение во внутреннее устройство Windows» от Intuit.ru.
Windows Academic Program
В 2006 году корпорация Microsoft в рамках академической программы Windows (Windows Academic Program) сделала доступной для академических организаций исходный код исследовательского ядра Windows (Windows Research Kernel, WRK). WRK основано на коде операционных систем Windows Server 2003 SP1 и Windows XP x64.
Кроме WRK в академическую программу Microsoft входят следующие компоненты:
- учебные материалы по курсу операционных систем на основе Windows XP – Windows Internals Curriculum Resource Kit (CRK). Составлены в соответствии с рекомендациями ACM/IEEE по преподаванию курса «Операционные системы» (Operating systems, OS). Материалы включают презентации лекций, указания к лабораторным работам (в том числе лабораторные работы для Windows 7), задания, тесты, а также материалы для преподавателей (Instructor Supplement);
- среда ProjectOZ для экспериментального исследования ядра Windows;
- описание опыта университетов (Faculty Experiences) по преподаванию в рамках академической программы Microsoft.
Все компоненты Windows Academic Program, кроме WRK и материалов для преподавателей (Instructor Supplement), доступны любому желающему. WRK и Instructor Supplement можно получить, подтвердив свой статус преподавателя или по подписке Microsoft Developer Network Academic Alliance (MSDN AA).
Microsoft, предоставляя академическому сообществу исходные коды ядра Windows, преследовало следующие цели:
- облегчить студентам и преподавателям сравнение Windows с другими операционными системами;
- предоставить студентам возможность для изучения исходных кодов ядра и создания собственных проектов на их основе;
- поддержать исследования и публикации по внутреннему устройству Windows;
- содействовать разработке учебников по операционным системам на основе ядра Windows;
- упростить лицензирование.
Исследовательское ядро Windows включает более 800 000 строк исходного кода, в основном на языке программирования C, но есть файлы и на ассемблере. В процессе подготовки к опубликованию исходный код в некоторых местах был упрощен, а комментарии улучшены.
На следующем рисунке представлена схема, отражающая покрытие исходным кодом WRK компонентов ядра.
Рис.1. Покрытие исходным кодом WRK компонентов ядра (выделено серым цветом)
Как видно из рисунка, исходные коды практически всех компонентов исполнительной системы (кроме диспетчера Plug-and-Play и диспетчера электропитания) и ядра представлены в WRK.
Структура Windows Research Kernel
В состав WRK, кроме собственно исходных кодов ядра Windows, входят руководство по ядру Windows NT (NT OS/2 Design Workbook) и решение (solution) Visual Studio 2008 (WRK.sln) (которое можно преобразовать для более новых версий Visual Studio).
Руководство по ядру Windows NT было составлено в конце 1980 х – начале 1990 х гг., когда в Microsoft велась разработка новой операционной системы Windows NT с рабочим названием «NT OS/2» сначала совместно с IBM, затем самостоятельно. Руководство содержит ценную информацию по структуре и функциям ядра Windows, а также раскрывает соображения, которые привели разработчиков к тем или иным архитектурным решениям.
Главные компоненты WRK находятся в папке WRK-v1.2basentos и включают, в основном описания и определения функций и структур данных. В ядре Windows при именовании функций используются определенные соглашения [5; 2]. Название функции обычно строится по следующей схеме:
где обозначает модуль, которому принадлежит функция, – действие, совершаемое над .
Например, рассмотрим функцию KeStartThread:
- Ke (префикс) – функция входит в состав ядра;
- Start (операция) – функция начинает выполнение объекта;
- Thread (объект) – объектом является поток.
Компонент WRK | Префикс функций | Название компонента на англ. языке | Название компонента на русском языке |
---|---|---|---|
cache | Cc | Cache manager | диспетчер кэша |
config | Cm | Configuration manager | диспетчер конфигурации |
dbgk | Dbgk | Debugging Framework | подсистема отладки |
ex | Ex | Executive support routines | функции поддержки исполнительной системы – синхронизация, таймеры, структуры данных исполнительной системы, системная информация |
fsrtl | FsRtl | File system driver run-time library | библиотека функций поддержки файловой системы времени выполнения |
io | Io | Input/Output manager | диспетчер ввода-вывода |
ke | Ke | Kernel | ядро |
lpc | Lpc | Local Procedure Call | механизм вызова локальных процедур |
mm | Mm | Memory manager | диспетчер памяти |
ob | Ob | Object manager | диспетчер объектов |
perf | Perf | Performance | функции для сбора информации о производительности системы |
ps | Ps | Process manager | диспетчер процессов |
raw | Raw | Raw File System | функции для Raw File System |
rtl | Rtl | Run-Time Library | библиотека функций времени выполнения |
se | Se | Security manager | диспетчер безопасности |
wmi | Wmi | Windows Management Instrumentation | поддержка WMI – инструментальные средства управления Windows |
Компоненты WRK и префиксы функций
Кроме перечисленных в таблице, в WRK есть ещё два важных компонента:
- inc – общедоступные заголовочные файлы;
- init – функции инициализации системы.
Приведем ещё один префикс часто встречающихся в WRK функций – Nt. Функции ядра с этим префиксом входят в Native API, они экспортируются Ntdll.dll, их можно вызывать из пользовательского режима. Часто функции с префиксом Nt соответствует WinAPI функция, и, например, при вызове WinAPI функции CreateProcess происходит вызов функции NtCreateProcess.
HTML документация по WRK
В Институте программной инженерии Хассо Платтнера Университета г. Потсдама (Hasso-Plattner-Institute for Software Engineering at University Potsdam) Александром Шмидтом (Alexander Schmidt) и Михаэлем Шёбелем (Michael Schobel) была создана HTML документация по WRK с использованием генератора документации Phoenix Cross Reference (PXR)2 . Данная документация доступна для преподавателей по следующей ссылке:
HTML документация по WRK включает 4 раздела: функции (functions), типы данных (types), синонимы (typedefs) и макросы (macros).
По информации, предоставляемой HTML документацией, WRK содержит 4167 функций и 1957 типов данных.
Html документация по windows research kernel
Windows Research Kernel Source Code
Copyright (c) Microsoft Corporation. All rights reserved.
You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt). If you do not agree to the terms, do not use the code.
The Windows Research Kernel v1.2 contains the sources for the core of the Windows (NTOS) kernel and a build environment for a kernel that will run on x86 (Windows Server 2003 Service Pack 1) and amd64 (Windows XP x64 Professional) A future version may also support booting WRK kernels on Windows XP x86 systems, but the current kernels will fail to boot due to differences in some shared structures.
The NTOS kernel implements the basic OS functions for processes, threads, virtual memory and cache managers, I/O management, the registry, executive functions such as the kernel heap and synchronization, the object manager, the local procedure call mechanism, the security reference monitor, low-level CPU management (thread scheduling, Asynchronous and Deferred Procedure calls, interrupt/trap handling, exceptions), etc.
The NT Hardware Abstraction Layer, file systems, network stacks, and device drivers are implemented separately from NTOS and loaded into kernel mode as dynamic libraries. Sources for these dynamic components are not included in the WRK, but some are available in various development kits published by Microsoft, such as the Installable File System (IFS) Kit and the Windows Driver Development Kit (DDK).
WRK v1.2 includes most of the NTOS kernel sources from the latest released version of Windows, which supports the AMD64 architecture on the Desktop. The kernel sources excluded from the kit are primarily in the areas of plug-and-play, power management, the device verifier, kernel debugger interface, and virtual dos machine. The primary modifications to WRK from the released kernel are related to cleanup and removal of server support, such as code related to the Intel IA64.
Organization of the WRK sources
The file License.txt contains the license covering use of the WRK.
The public directory contains a number of include files shared among system components. basentos contains the NTOS sources.
The primary NTOS source components included in the WRK are organized as follows:
Copying and building the WRK
WRK can be built on Windows Server 2003 or later, or on Windows XP or later.
To copy WRK to your machine:
- open a console window;
- switch to DVD;
- switch to ResourcesWindows_Research_KernelGet_WRK;
- run WRKCopy.bat /w (if you run WRKCopy.bat without parameters, WRK will be copied to C:WRK-v1.2); ALTERNATIVELY
- open Windows Explorer (MyComputer);
- create the destination directory on your hard drive;
- switch to DVD;
- navigate to ResourcesWindows_Research_KernelGet_WRKWRK-v1.2;
- select all files and subdirectories, drag and drop them to the destination directory.
To adjust the WRK environment setting batch file:
- open console window;
- switch to the directory WRK was copied to;
- run Notepad WRKEnv.bat;
- make sure the «set path=. » statement contains the directory WinDbg was installed to; (unchanged WRKEnv.bat refers to default directory C:Program FilesDebugging Tools for Windows);
- save the file and exit Notepad.
To build WRK from command line:
- open console window;
- switch to the directory WRK was copied to;
- run Build (or Rebuild or Clean ), see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- switch to basentos;
- run nmake %wrkarch%=
To build WRK in Visual Studio 2008 environment:
- start VS2008;
- open solution WRK.sln, where is the directory WRK was copied to;
- make sure the configuration is amd64/Win32 or x86/Win32, as is appropriate;
- select Build/Build Solution (or Rebuild Solution, or Clean Solution).
To start Windows Debugger from command line:
- open console window;
- switch to the directory WRK was copied to;
- run WRKDebug , see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- run WinDbg %windbgargs%
Batch files Build.bat, Rebuild.bat, Clean.bat, WRKEnv.bat and WRKDebug.bat take one parameter – target architecture, which is x86 or amd64.
For the first use of either of these batch files, default target architecture is x86.
Once the target architecture was defined (explicitly or by default), it cannot be changed for current console window, and parameter of the batch files is ignored.
The title of the window where the WRK environment has been set to some target architecture changes to “WRK x86” or “WRK amd64”.
To work with different target architecture, open another console window.
Copyright (c) Microsoft Corporation. All rights reserved.
You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt). If you do not agree to the terms, do not use the code.
The Windows Research Kernel v1.2 contains the sources for the core of the Windows (NTOS) kernel and a build environment for a kernel that will run on x86 (Windows Server 2003 Service Pack 1) and amd64 (Windows XP x64 Professional) A future version may also support booting WRK kernels on Windows XP x86 systems, but the current kernels will fail to boot due to differences in some shared structures.
The NTOS kernel implements the basic OS functions for processes, threads, virtual memory and cache managers, I/O management, the registry, executive functions such as the kernel heap and synchronization, the object manager, the local procedure call mechanism, the security reference monitor, low-level CPU management (thread scheduling, Asynchronous and Deferred Procedure calls, interrupt/trap handling, exceptions), etc.
The NT Hardware Abstraction Layer, file systems, network stacks, and device drivers are implemented separately from NTOS and loaded into kernel mode as dynamic libraries. Sources for these dynamic components are not included in the WRK, but some are available in various development kits published by Microsoft, such as the Installable File System (IFS) Kit and the Windows Driver Development Kit (DDK).
WRK v1.2 includes most of the NTOS kernel sources from the latest released version of Windows, which supports the AMD64 architecture on the Desktop. The kernel sources excluded from the kit are primarily in the areas of plug-and-play, power management, the device verifier, kernel debugger interface, and virtual dos machine. The primary modifications to WRK from the released kernel are related to cleanup and removal of server support, such as code related to the Intel IA64.
Organization of the WRK sources
The file License.txt contains the license covering use of the WRK.
The public directory contains a number of include files shared among system components. basentos contains the NTOS sources.
The primary NTOS source components included in the WRK are organized as follows:
Copying and building the WRK
WRK can be built on Windows Server 2003 or later, or on Windows XP or later.
To copy WRK to your machine:
- open a console window;
- switch to DVD;
- switch to ResourcesWindows_Research_KernelGet_WRK;
- run WRKCopy.bat /w (if you run WRKCopy.bat without parameters, WRK will be copied to C:WRK-v1.2); ALTERNATIVELY
- open Windows Explorer (MyComputer);
- create the destination directory on your hard drive;
- switch to DVD;
- navigate to ResourcesWindows_Research_KernelGet_WRKWRK-v1.2;
- select all files and subdirectories, drag and drop them to the destination directory.
To adjust the WRK environment setting batch file:
- open console window;
- switch to the directory WRK was copied to;
- run Notepad WRKEnv.bat;
- make sure the «set path=. » statement contains the directory WinDbg was installed to; (unchanged WRKEnv.bat refers to default directory C:Program FilesDebugging Tools for Windows);
- save the file and exit Notepad.
To build WRK from command line:
- open console window;
- switch to the directory WRK was copied to;
- run Build (or Rebuild or Clean ), see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- switch to basentos;
- run nmake %wrkarch%=
To build WRK in Visual Studio 2008 environment:
- start VS2008;
- open solution WRK.sln, where is the directory WRK was copied to;
- make sure the configuration is amd64/Win32 or x86/Win32, as is appropriate;
- select Build/Build Solution (or Rebuild Solution, or Clean Solution).
To start Windows Debugger from command line:
- open console window;
- switch to the directory WRK was copied to;
- run WRKDebug , see note about below; ALTERNATIVELY
- open console window;
- switch to the directory WRK was copied to;
- run WRKEnv , see note about below;
- run WinDbg %windbgargs%
Batch files Build.bat, Rebuild.bat, Clean.bat, WRKEnv.bat and WRKDebug.bat take one parameter – target architecture, which is x86 or amd64.
For the first use of either of these batch files, default target architecture is x86.
Once the target architecture was defined (explicitly or by default), it cannot be changed for current console window, and parameter of the batch files is ignored.
The title of the window where the WRK environment has been set to some target architecture changes to “WRK x86” or “WRK amd64”.
To work with different target architecture, open another console window.
I saw a question on Linux Kernel. While reading that I had this doubt.
asked Nov 27, 2009 at 8:04
1
The Windows NT branch of windows has a Hybrid Kernel. It’s neither a monolithic kernel where all services run in kernel mode or a Micro kernel where everything runs in user space. This provides a balance between the protection gained from a microkernel and the performance that can be seen in a monolithis kernel (as there are fewer user/kernel mode context switches).
As an example, device drivers and the Hardware Abstraction layer run in kernel node but the Workstation service runs in user mode. The wikipedia article on Hybrid Kernels has a good overview.
The Windows Internals book gives an explanation for the hybrid approach
… The Carnegie Mellon University Mach
operating system, a contemporary
example of a microkernel architecture,
implements a minimal kernel that
comprises thread scheduling, message
passing, virtual memory, and device
drivers. Everything else, including
various APIs, file systems, and
networking, runs in user mode.
However, commercial implementations of
the Mach microkernel operating system
typically run at least all file system,
networking, and memory management
code in kernel mode. The reason is
simple: the pure microkernel design is
commercially impractical because it’s
too inefficient.
answered Nov 27, 2009 at 8:10
Robert ChristieRobert Christie
20.2k8 gold badges43 silver badges38 bronze badges
According to Wikipedia it’s a Hybrid kernel. Which may or may not be just marketing speak for about the same as a monolithic one. The graphic on the latter page does make some things clearer, though.
Most importantly, almost no program on Windows uses the kernel API directly. And the complete Windows API subsystem resides in user space which is a rather large part of the OS as we see it. And in more recent versions Microsoft began to pull more and more device drivers from kernel space into user space (which is especially a good idea with certain drivers, such as for video cards which are probably as complex as an operating system on their own).
answered Nov 27, 2009 at 8:09
JoeyJoey
345k85 gold badges690 silver badges687 bronze badges
1
hyru hybrid kernel is the name of the Kernel that Windows systems after Windows 98, before that it was a GUI overlaid on DOS using a monolithic Kernel.
answered May 18, 2013 at 21:38
PC-PORTAL
МЕНЮ
Обновлено: 08.10.2023
Читайте также:
- Настройка принтера epson l4160
- Как сделать дополнительные кнопки для компьютера
- Как проверить шубу по qr коду