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!

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


 

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

53182. Економічний бій 59 KB
  Товар який стихійно виділився з світу товарів щоб відігравати роль загального еквіваленту гроші. Яку функцію виконують гроші якщо їх віддають у банк під процент Чи діє закон попиту на монополістичному ринку Що станеться на товарному ринку з ціною на молоко якщо збільшиться кількість корів і зменшаться доходи споживачів Продовжіть прислівя: Хочеш втратити друга.дай йому в борг гроші. Командам пропонується згадати прислівя або приказки про гроші або про працю.
53184. Закріплення теми «Креслення в системі прямокутних проекцій» 43 KB
  Получение изображения предмета на чертеже воображаемыми лучами называют проецированием Изображение предмета на плоскости методом проецирования называют проекцией Плоскость на которой получают проекцию называютплоскость проекции Назовите методы проецирования центральное и параллельное. Какой метод проецирования более простой и удобный для получения проекций в черчении Где используется метод центрального проецирования в изобразительном искусстве. Назовите три плоскости проецирования фронтальная горизонтальная...
53185. Застосування різних способів розкладання многочленів на множники 75.5 KB
  Мета: узагальнити й систематизувати знання, вміння і навички учнів; розвивати пізнавальну активність, логічне мислення, увагу; виховувати культуру математичного мовлення, упевненість у своїх силах.
53186. Піраміди гіпотез – домовини фактів 92 KB
  Тема: Піраміди гіпотез домовини фактів†Мета: систематизувати знання за темою Пірамідаâ€; розширити й поглибити пізнавальну активність з допомогою створення проблемних творчих завдань; створити змістовну базу для вивчення інших шкільних дисциплін астрономії фізики біології; сприяти виробленню в учнів бажання і потреби ділового співробітництва взаєморозуміння; розвивати монологічне мовлення учнів загальні трудові уміння. Обладнання: газета Піраміди гіпотез домовини фактівâ€; альбом кросвордів за темою...
53187. Решение уравнений. Урок – игра математики в 6 классе 49.5 KB
  Многие задачи из жизни решаются на математическом языке с помощью уравнений. Поэтому очень важно, чтобы ваши знания и умения решать уравнения были прочны. Во время урока вам пригодятся находчивость, смекалка и сообразительность, потому что мы проведём наш урок в виде игры- соревнований.
53189. ГРА НА УРОЦІ АНГЛІЙСЬКОЇ МОВИ ЯК ЗАСІБ ПІДВИЩЕННЯ ПІЗНАВАЛЬНОЇ АКТИВНОСТІ ШКОЛЯРІВ 83 KB
  У школярів молодшого віку переважають ігрові інтереси, довільна поведінка, наочнообразне мислення, практичне ставлення до розвязування завдань. Зважаючи на все це, доцільно у роботі з ними на уроках іноземної мови систематично застосовувати елементи гри у поєднані з бесідою, елементами самостійної роботи.
53190. Інтерактивна ділова гра ток-шоу «Я так думаю» 37.5 KB
  Правила гри: Усі учасники мають рівні права; Кожен учасник має право висловити свою думку; Думка кожного має бути почута врахована та прийнята. Учасники ділової гри: всі педагогічні працівники. Загальний сценарій: учасники обєднуються в чотири групи Батьки Діти Педагоги та Експерти; ведучий розяснює мету гри загальний сценарій та правила гри; групова гра: розігрування ситуації відповідно до обраних ролей; міжгрупова дискусія керована ведучим; підсумок гри за допомогою експертів.