12623

Практичне вивчення Windows Research Kernel

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна работа7: Практичне вивчення Windows Research Kernel Метою лабораторної роботи є практичне освоєння Windows Research Kernel WRK – початкових кодів дослідницького ядра Windows призначених для більш глибокого вивчення архітектури Windows і досліджень в області операційних систем. Пакет W...

Украинкский

2013-05-02

310 KB

3 чел.

Лабораторна работа7: Практичне вивчення Windows Research Kernel

Метою лабораторної роботи є практичне освоєння Windows Research Kernel (WRK) – початкових кодів дослідницького ядра Windows, призначених для більш глибокого вивчення архітектури Windows і досліджень в області операційних систем. Пакет WRK доступний для викачування студентами, зареєстрованими за допомогою Microsoft Passport, по посиланню з академічного сайту 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:

  1.  Директорія NTDesignWorkbook містить унікальний матеріал – фактично це докладні специфікації архітектури всіх компонент ядра Windows. Це – "свята святих" фірми Microsoft, як і самі початкові коди ядра Windows. Приведення в доступний для вивчення вид цих специфікацій для академічного співтовариства програмістів зажадало, по визнанню фахівців Microsoft, декількох років роботи.
  2.  Директорія VirtualPC2004S1 містить дистрибутив інструменту Microsoft під назвою Microsoft Virtual PC. Даний інструмент дозволяє організувати на Вашому комп'ютері віртуальну машину, в яку Ви можете інсталювати будь-яку операційну систему, у тому числі – експериментальну Ос, що є результатом Ваших експериментів в WRK. Як окреме практичне заняття, можете інсталювати Microsoft Virtual PC і в отриману віртуальну машину інсталюйте іншу операційну систему, наприклад, іншу версію Windows або яку-небудь версію Linux.
  3.  Директорія WRK-v1.2 містить власне початкові коди ядра Windows. Їх струкуру докладніше розглянемо трохи пізніше.

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

Увійдіть до директорії WRK-v1.2.

Вивчіть структуру директорій ядра, зображену на мал. 39.2, короткий опис якої приведемо нижче.

Мал. 39.2.   Структура директорій початкового коду дослідницького ядра Windows

Директорія public\ містить include (заголовні, .h) – файли, що використовуються у всьому початковому коді системи.

Наприклад, заголовний файл public\ddk\inc\mountdev.h містить опис інтерфейсів між точкою монтування (mount роint) і вмонтовуваними пристроями. Ознкомьтесь з вмістом файлу. Ви переконаєтеся, що він (як і інші коди WRK) добре самодокументований, проте для більш глибокого розуміння потрібне докладне вивчення. Директорія tools містить інструменти для збірки з початкових кодів, наприклад, утиліту nmake. Ознайомтеся з вмістом даної директорії.

Ознайомлення з базовою структурою початкових кодів ядра

Директорія base\ntos\ містить початкові коди ядра NTOS.

Структура цієї директорії зображена на мал. 39.3 .

Мал. 39.3.   Структура директорії NTOS – базової директорії з початковими кодами ядра Windows

Первинні компоненти початкових кодів NTOS, включені в пакет WRK, організовані таким чином:

  •  cache\ - менеджер управління кеш-пам'яттю
  •  config\ - реалізація реєстра
  •  dbgk\ - підтримка відладки в користувацькому режимі
  •  ex\ - функції executive (купа ядра, синхронізація, установка часу)
  •  fsrtl\ - підтримка часу виконання для файлової системи
  •  io\ - планувальник, управління центральним процесором, низькорівнева синхронізація
  •  lpc\ - реалізація локальних викликів процедур (розглянуті в "Огляд архітектури і можливостей систем Windows 2000/XP/2003/Vista/2008/7 ", "Системні механізми Windows ")
  •  mm\ - менеджер віртуальної пам'яті
  •  ob\ - менеджер об'єктів ядра
  •  ps\ - підтримка процесів і потоків
  •  se\ - функції безпеки
  •  wmi\ - інструментування для управління Windows
  •  inc\ - заголовні файли, що використовуються в NTOS
  •  rtl\ - підтримка ядра часу виконання
  •  init\ - ініціалізація ядра

Наприклад, файл ob\obinit.c містить початковий код ініціалізації компоненти OB (управління внутрішніми об'єктами) ядра Windows.

Ознайомтеся з його вмістом.

Ми закінчили коротке ознайомлення із структурою WRK.

Завдання підвищеної складності: Експериментальна збірка Windows з початкових кодів

Для тих, хто вже має досвід збірки великих проектів і використовування утиліти make, а також добре володіє технічною англійською мовою, пропонуємо складніше завдання – збірку ядра Windows з початкових кодів.

Докладна інструкція по збірці дана у файлі README базової директорії.

Приводимо її нижче:

Інструкція по збірці Windows

Building/deploying а WRK kernel for x86 [or amd64]

    

   0. Сміттю WRK into а directory, say %wrk%.  

   1. set arch=x86 [or amd64]

   2. path %wrk%\tools\%arch%;%path%

   3. cd %wrk%\base\ntos

   4. nmake -nologo %arch%=

       will produce kernel files in BUILD\EXE\%arch%

       [wrkx86.* or wrkx64.*]

   5. сміттю kernel to %SystemRoot%\system32\

   6. if x86, find Multi-processor version hal.dll [see below]

   7. add а line to З:\boot.ini target system

       to boot this kernel and MP hal [see below]

   8. reboot and select boot option for new kernel

   9. уоu will boot up on а kernel уоu built/linked уоurself!

       [always keep original boot.ini line and kernel/hal available so уоu

        can still boot уоur system if something fails with уоur WRK kernel modifications]

   10. set up а debugger [see below]

    

Multi-processor hal (x86 only, amd64 hals are all MP)

   All hals are renamed hal.dll, so уоu have to use link command to

   see what type hal hal.dll really is:

       link -dump -all hal.dll | findstr pdb

   MP hals have an 'm' in native name hal, e.g. halmacpi.dll

   You may already have an MP hal installed on UP systems, due to hyperthreading.

   If hal isn't MP, уоu need to find MP hal that corresponds to current hal

   target system does have, i.e.

       halacpi.dll  -> halacpim.dll    ; ACPI PIC-based PC  [used VirtualPC]

       halaacpi.dll -> halmacpi.dll    ; ACPI APIC-based PC

       halapic.dll  -> halmps.dll      ; MPS

   Look in WRK WS03SP1HALS\x86 directory for MP hal уоu need.

    

Boot.ini

   Edit boot.ini (уоu may have to use attrib -h -s -r first)

   Сміттю line for first operating system listed to end file and edit it.

       [boot loader]

       timeout=30

       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="test" /kernel=wrkx86.exe /hal=halmacpi.dll

   Note that filenames must be short (8.3) names.

   You can add additional options for debugging (as specified in WinDbg/KD help).

    

Debugging WRK

   WinDBG/KD debuggers will work with WRK.  Documentation is pretty thorough, and

   includes information about how to debug асross а serial роrt, locally (examining kernel

   data from user-mode), and debugging kernels running on VirtualPC.

    

   Version 6.6.3.5 WinDBG/KD debuggers is available with Curriculum Resource Kit

   Tools ("CurriculumResourceKit-CRK\CRKTools\Debugging Tools directory on CD").  

   Latest version Windows Debugging Tools can be downloaded from

   http://www.microsoft.com/whdc/devtools/debugging.

Пояснення до інструкції по збірці Windows

HAL (Hardware Abstraction Layer) – компоненту ядра Windows, реалізовуюча рівень абстрагування від апаратури. Використовування подібної компоненти – багаторічна традиція Microsoft. Даний метод застосований також в Microsoft Office і в академічній версії .NET (Rotor).

Curriculum Resource Kit (CRK) – ще одна повчальна компоненту для вивчення ядра Windows, також що надається фірмою Microsoft вільно для мети вивчення і досліджень. Її структура і посилання на її дистрибутив описана в "Академічна програма Microsoft Shared Source Initiative. Відкрите ядро Windows для вивчення і досліджень (Windows Research Kernel)" . CRK містить набір утиліт, що дозволяють вивчати різні особливості роботи Ос.

CD (компакт-диск), згадуваний в інструкції, розповсюджувався в 2006 – 2007 рр. фірмою Microsoft серед викладачів університетів.

Структура академічного диска приведена на мал. 39.4 .

Мал. 39.4.   Структура академічного диска Microsoft з матеріалами для вивчення Windows

Бажаємо успіху у вивченні архітектури Windows на основі пакетів WRK і CRK!

Попереджаємо, що це дуже цікаво, але дуже непросто, вимагає значного часу, спеціальних знань і деякого досвіду в розробці і супроводі великих програмних проектів. Проте важкі задачі вирішувати цікавіше, ніж легені – на цьому шляху Вас чекає успіх!


 

А также другие работы, которые могут Вас заинтересовать

3292. Формирование общеучебных компетенций по предмету за курс 8 класса 70.5 KB
  Формирование общеучебных компетенций по предмету за курс 8 класса. Задачи: повторить основные теоретические сведения за курс основной средней школы по русскому языку и литературе, развивать познавательный интерес учащихся к предмет...
3293. Дом, в котором мы живем, Мероприятие 71 KB
  Дом, в котором мы живем Цель: формирование ответственности, гуманизма учащихся, проявляющихся в отношениях друг к другу, к учебе, труду, умения проявлять свои лучшие личные качества, подведение итогов. Задача: формирование гордости за достижения каж...
3294. Путешествие в Великобританию 52.5 KB
  Тема: Путешествие в Великобританию. Форма: урок - игра. Цели: Обучающие: А) обобщение изученного материала по теме «Великобритания». Б) совершенствование навыков устной речи В) актуализация страноведческого материала. 2. Развивающи...
3295. Внеклассное мероприятие на тему «Никто не забыт, ничто не забыто» 53 KB
  Внеклассное мероприятие на тему «Никто не забыт, ничто не забыто» Цель: воспитание патриотического сознания Задачи: 1) познакомить участников с историей нашей страны в годы ВОВ, показать величие подвига советского народа, 2) воспитать уважение к ист...
3296. Викторина. Олимпийские игры. 56 KB
  Викторина. План мероприятия. Вступительное слово ведущего. Домашнее задание 9 «А» класса. Танец сиртаки и легенда.  Викторина. Домашнее задание 10 «Б» класса. Подведение итогов. Сценарий. Ведущий: Добрый день уважаемые з...
3297. Сто к одному. Конспект урока 48 KB
  Тема. Сто к одному Цели, систематизация знаний учащихся об аппаратном обеспечении ПК, базовом комплекте ПК, редакторе текстов, табличном процессоре;  развитие у школьников творческого мышления, памяти (лучше всего запоминается то, что с...
3298. Город Лицей на 59-м градусе северной широты 43.33 KB
  Город Лицей на 59-м градусе северной широты» (лицейский годы Пушкина). ХОД МЕРОПРИЯТИЯ Учитель: Сегодня у нас необычная встреча. Мы приглашаем всех отправиться совсем недалеко – всего на два столетия назад, в первые десятилетия 19 века. Мы поз...
3299. Внеклассное мероприятие Знай и люби свой край 34.5 KB
  Внеклассное мероприятие Знай и люби свой край Конкурс 1. Лекарственные растения. 1.Перечислите правила сбора лекарственных растений (нельзя заготавливать вблизи дорог и в черте города; собирать только в сухую ясную погоду; нельзя собирать больные ...
3300. Внеклассное мероприятие. Семья, как много в этом слове 37 KB
  Семья, как много в этом слове Цели внеклассного мероприятия: сформировать уважение к членам семьи, сформировать у детей понимание сущности основных социальных ролей: дочери, сына, мужа, жены. Задачи внеклассного мероприятия: сформировать представлен...