请输入您要查询的百科知识:

 

词条 wrk
释义

WRK的全称是“Windows Research Kernel”,它是微软为高校操作系统课程提供的可修改和跟踪的操作系统教学平台。它给出了Windows这个成功的商业操作系统的内核大部分代码,可以对其进行修改、编译,并且可以用这个内核启动Windows操作系统。可让学生将操作系统基本原理和商业操作系统内核联系起来,进一步加深对操作系统整体的理解。

概述:

微软的WRK计划(Windows Research Kernel),这个计划是让高校师生以及亲密的合作商有一个机会能够了解和学习windows的内核代码。WRK包含了以下模块:

* Processes

* Threads

* Virtual memory and cache managers

* I/O management

* The registry

* Executive functions, such as the kernel heap and synchronization

* Object manager

* Local procedure call mechanism

* Security reference monitor

* Low-level CPU management (thread scheduling, Asynchronous and Deferred Procedure calls, interrupt/trap handling, exceptions)

WRK的特点功能介绍

在本科的操作系统教学中,能够提供一个展示真实操作系统是如何工作的环境是很重要的。但目前普遍使用的教学平台大多是非真实的、模拟的环境,这可能使同学对操作系统的理解出现偏差。同时教学平台要求在学生的理解和修改的基础上能够真实的运行起来,所以我们采用WRK作为操作系统课程的教学实践平台。WRK平台隶属于Windows Academic Program项目,是微软公司将Windows Kernel的核心技术融入到高校的教学和科研中的产物。该平台是基于Windows操作系统的真实内核代码进行提炼、修改形成的。它在操作系统教学方面具有以下几个突出的优点:

可运行在真实的硬件平台

WRK是建立在真实的NT内核基础上的,实现了线程调度、内存管理、I/O管理、文件系统等操作系统所必须的组成部分。

可以将编译出的内核放到装有Windows 2003的机器上,通过增加启动项,指定从WRK内核启动。通过修改编译时的选项,可以支持X86和AMD64两种架构。

当然,我们也可以使用虚拟机运行WRK。可以防止修改过的代码对真实的硬件和文件系统产生负面影响;也可以方便的通过串口进行调试。

包含操作系统中很多概念的具体实现

现代操作系统原理中包含了很多的概念,如线程、虚拟内存、硬件抽象等等。一些模拟的操作系统由于各种原因无法将这些概念付诸实际,这样就导致学生在学习的过程中,获得的只是一些空洞的知识。WRK中将Windows的各种实现都展示了出来。

调试比较方便,随机性使体验更加真实

一般来说,操作系统内核的调试需要两台计算机。一台作为宿主机,运行需要调试的内核;另一台作为调试机,运行调试程序。两台机器通过串口进行连接,传送调试指令和调试数据。

因为WRK可以运行在虚拟机上,我们可以通过一个命名管道连接虚拟机和物理机。将虚拟机作为宿主机,而物理机器作为调试机来进行调试。

不确定性是操作系统所必须具有的特征。WRK运行在真实的硬件平台上,各种硬件中断的随机性和不确定性赋予了WRK天生的不确定性。当然,这个不确定性对于我们也是具有两面性的,一方面展示的真实操作系统的特征;另一方面,对于我们内核的调试也具有不确定性。

结构清晰,易于分模块阅读

WRK具有非常清晰的目录结构,将所有代码分布在16个文件夹中。如下表:

表格 1 WRK目录列表

模块目录 模块功能

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  WRK的代码量相当大,源代码有47M。所以,随着操作系统课程的进行,同学可以有针对性的阅读某一个模块的代码,能够更好的理论联系实际。

代码质量高

WRK是用C语言来实现的。这是考虑到了操作系统内核效率的问题。WRK代码质量很高,规范很好,可以通过阅读提高自己的水平。

编译WRK

1. 用VMware安装一个windows server 2003系统(以下所指系统如未加说明均为该windows 2003虚拟机)

2. 将WRK源码拷贝到系统下C盘,将文件夹取名wrk(可以任意命名)

3. 将系统中的环境变量Path设置为C:\\wrk\\tools\\x86;%path%

4. (在命令提示符中输入)cd wrk\\base\tos

5. (在命令提示符中输入)nmake -nologo x86=

(内核正在编译...编译完后在wrk\\base\tos\\BUILD\\EXE下生成内核文件)

6. 将wrk\\base\tos\\BUILD\\EXE下的内核文件拷贝到C:\\windows\\system32下

7. (在命令提示符中输入)在C:\\windows\\system32路径下输入link -dump -all hal.dll | findstr pdb命令,查看你的hal按照下面对照:

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

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

halapic.dll -> halmps.dll ; MPS

8. 进入C:\\wrk\\WS03SP1HALS\\x86目录下,将相应的hal文件夹下的文件(2个)拷贝到C:\\windows\\system32下

9. 进入C盘,将隐藏的文件boot.ini打开,在最后一行加入:

multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="test" /kernel=wrkx86.exe /hal=halmacpi.dll

10. 重新启动,进入新编译好的内核。

PS: 1. 注意第9步中,发光的数字"2",该数值应与原来最后一句中的一致(否则进入系统时会出现没有找到引导盘);

2. 如果还是进入不了系统,则下载win2003sp1ch进行系统升级。

WRK的安装

WRK 1.2可以在两种环境下运行:

* X86(Windows Server 2003 Service Pack 1)

* AMD64(Windows XP x64 Professional)

可以在运行上述操作系统的物理计算机上安装WRK,但是,为了实验方便同时也为了保护物理计算机的操作系统,建议在虚拟机下安装WRK。

目前最为流行的虚拟机软件有VMware 和Virtual PC,这两种软件都可以用来安装WRK。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 12:59:07