必威电竞|足球世界杯竞猜平台

wrk
來源:互聯(lián)網

WRK的全稱是“Windows Research Kernel”,它是微軟為高校操作系統(tǒng)課程提供的可修改和跟蹤的操作系統(tǒng)教學平臺。它給出了Windows這個成功的商業(yè)操作系統(tǒng)的內核大部分代碼,可以對其進行修改、編譯,并且可以用這個內核啟動Windows操作系統(tǒng)。可讓學生將操作系統(tǒng)基本原理和商業(yè)操作系統(tǒng)內核聯(lián)系起來,進一步加深對操作系統(tǒng)整體的理解。

包括模塊

微軟的WRK計劃(Windows Research Kernel),這個計劃是讓高校師生以及親密的合作商有一個機會能夠了解和學習windows的內核代碼。WRK包含了以下模塊:

* Processes

* Threads

* Virtual memory and cache managers

* i/o 管理學

* 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)

特點功能

在本科的操作系統(tǒng)教學中,能夠提供一個展示真實操作系統(tǒng)是如何工作的環(huán)境是很重要的。同時教學平臺要求在學生的理解和修改的基礎上能夠真實的運行起來,所以我們采用WRK作為操作系統(tǒng)課程的教學實踐平臺。WRK平臺隸屬于Windows Academic Program項目,是微軟將Windows Kernel的核心技術融入到高校的教學和科研中的產物。該平臺是基于Windows操作系統(tǒng)的真實內核代碼進行提煉、修改形成的。它在操作系統(tǒng)教學方面具有以下幾個突出的優(yōu)點:

真實可靠

WRK是建立在真實的NT內核基礎上的,實現(xiàn)了線程調度、內存管理、I/O管理、文件系統(tǒng)等操作系統(tǒng)所必須的組成部分。

可以將編譯出的內核放到裝有Windows 2003的機器上,通過增加啟動項,指定從WRK內核啟動。通過修改編譯時的選項,可以支持X86和AMD64兩種架構。

當然,我們也可以使用虛擬機運行WRK。可以防止修改過的代碼對真實的硬件和文件系統(tǒng)產生負面影響;也可以方便的通過串口進行調試。

概念實現(xiàn)

現(xiàn)代操作系統(tǒng)原理中包含了很多的概念,如線程、虛擬內存、硬件抽象等等。一些模擬的操作系統(tǒng)由于各種原因無法將這些概念付諸實際,這樣就導致學生在學習的過程中,獲得的只是一些空洞的知識。WRK中將Windows的各種實現(xiàn)都展示了出來。

真實體驗

一般來說,操作系統(tǒng)內核的調試需要兩臺計算機。一臺作為宿主機,運行需要調試的內核;另一臺作為調試機,運行調試程序。兩臺機器通過串口進行連接,傳送調試指令和調試數(shù)據(jù)。

因為WRK可以運行在虛擬機上,我們可以通過一個命名管道連接虛擬機和物理機。將虛擬機作為宿主機,而物理機器作為調試機來進行調試。

不確定性是操作系統(tǒng)所必須具有的特征。WRK運行在真實的硬件平臺上,各種硬件中斷的隨機性和不確定性賦予了WRK天生的不確定性。當然,這個不確定性對于我們也是具有兩面性的,一方面展示的真實操作系統(tǒng)的特征;另一方面,對于我們內核的調試也具有不確定性。

結構清晰

WRK具有非常清晰的目錄結構,將所有代碼分布在16個文件夾中。如下表:

表格 1 WRK目錄列表

1.

表格 1 WRK目錄列表

WRK的代碼量相當大,源代碼有47M。所以,隨著操作系統(tǒng)課程的進行,同學可以有針對性的閱讀某一個模塊的代碼,能夠更好的理論聯(lián)系實際。

代碼質量

WRK是用c語言來實現(xiàn)的。這是考慮到了操作系統(tǒng)內核效率的問題。WRK代碼質量很高,規(guī)范很好,可以通過閱讀提高自己的水平。

編譯程序

1. 用威睿安裝一個windows server 2003系統(tǒng)(以下所指系統(tǒng)如未加說明均為該windows 2003虛擬機)

2. 將WRK源碼拷貝到系統(tǒng)下C盤,將文件夾取名wrk(可以任意命名)

3. 將系統(tǒng)中的環(huán)境變量Path設置為C:\wrk\tools\x86;%path%

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

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

(內核正在編譯...編譯完后在wrk\base\ntos\BUILD\EXE下生成內核文件)

6. 將wrk\base\ntos\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步中,發(fā)光的數(shù)字"2",該數(shù)值應與原來最后一句中的一致(否則進入系統(tǒng)時會出現(xiàn)沒有找到引導盤);

2. 如果還是進入不了系統(tǒng),則下載win2003sp1ch進行系統(tǒng)升級。

安裝運行

WRK 1.2可以在兩種環(huán)境下運行:

* X86(Windows Server 2003 Service Pack 1)

* AMD64(Windows XP x64 Professional)

可以在運行上述操作系統(tǒng)的物理計算機上安裝WRK,但是,為了實驗方便同時也為了保護物理計算機的操作系統(tǒng),建議在虛擬機下安裝WRK。

目前最為流行的虛擬機軟件有威睿 和Virtual PC,這兩種軟件都可以用來安裝WRK。

參考資料 >

生活家百科家居網