什么是WRK
WRK的全称是“Windows Research Kernel”,它是微软为高校操作系统课程提供的可修改和跟踪的操作系统教学平台。它给出了Windows这个成功的商业操作系统的内核大部分代码,可以对其进行修改、编译,并且可以用这个内核启动Windows操作系统。可让学生将操作系统基本原理和商业操作系统内核联系起来,进一步加深对操作系统整体的理解。
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代码质量很高,规范很好,可以通过阅读提高自己的水平。
这里有,不过貌似要许可证。
http://www.microsoft.com/resources/sharedsource/default.mspx
csdn这个不知道能不能用。暂时没研究到这,先记录下来。
http://download.csdn.net/source/297497
一个纳米盘的下载地址,另一个是一个网站的
http://www.namipan.com/d/wrk.7z/20e749aad6ef02d605ff9d3fef6095de095696bfc70c8300
http://www.reactoschina.com/downloads/wrc/wrk.7z