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!

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


 

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

19458. Понятие договора хранения 24 KB
  Понятие договора хранения Договор хранения это соглашение сторон по которому одна сторона хранитель обязуется хранить вещь переданную ей другой стороной поклажедателем и возвратить эту вещь в сохранности. Договор хранения может быть как реальным так и консенсу...
19459. Символьные вычисления 37.15 KB
  В ходе лабораторной работы я научился выполнять символьные вычисления, такие как нахождение производной различных порядков, поиск пределов функций, нахождение определенных и неопределенных интегралов и т.д.
19460. Договор страхования 28.5 KB
  Договор страхования. Договор страхования это гражданскоправовая сделка между страховщиком и страхователем в силу которой страховщик обязуется при наступлении страхового случая произвести страховую выплату при условии оплаты страхователем страховой премии в обусл...
19461. Договор аренды зданий и сооружений 24.5 KB
  Договор аренды зданий и сооружений По договору аренды здания или сооружения арендодатель обязуется передать во временное владение и пользование или во временное пользование арендатору здание или сооружение. Стороны: Арендодатель и арендатор. Предмет: Здания и соор
19462. Договор аренды транспортного средства 27.5 KB
  Договор аренды транспортного средства. Договор аренды транспортных средств бывает двух видов: 1 с предоставлением услуг по управлению и обслуживанию транспортного средства с экипажем; 2 без предоставления таких услуг без экипажа. Договор аренды транспортных ср
19463. Institute on Mathematics and Mechanics, Urals Branch of Russian Academy of Science and Urals State University 59 KB
  This theoretical paper is devoted to research of computer metaphor’s sources. Metaphors are actively used in designing of modern interaction and visualization systems. The paper contains the discussion of problems of metaphor search and/or metaphor generations. One of possible hierarchy of computer metaphors is described.
19464. THEORY AS A BRIDGE BETWEEN EDUCATION, RESEARCH AND DEVELOPMENT IN HUMAN-COMPUTER INTERACTION AND COMPUTER VISUALIZATION 72 KB
  The theory is necessary to analyze an existing state of the practice, to train new professionals and to use in the practical work. One may find two main approaches to a choice of foundations for the theories of the computer visualization and human-computer interaction which can be roughly described as psychological and semiotical. The paper contains discussion on the theories of computer visualization and human-computer interaction and considers the role of the theories in education and development processes.
19465. Договор энергоснабжения и его характеристики 32.5 KB
  Договор энергоснабжения Договор энергоснабжения относится к договорам куплипродажи. Одна сторона передает другой за плату определенный товар энергию. Вместе с тем указанный товар обладает специфическими свойствами что требует особого регулирования договорн...