• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            【轉(zhuǎn)載】WRK簡單介紹

            Posted on 2010-07-20 14:05 S.l.e!ep.¢% 閱讀(665) 評論(0)  編輯 收藏 引用 所屬分類: Windows WDM

            【轉(zhuǎn)載】WRK簡單介紹

            2008-12-27

            分類:他山之石

            版權(quán)聲明 :轉(zhuǎn)載時請以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
            http://nokyo.blogbus.com/logs/33016889.html

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

            WRK的特點功能介紹
            ??? 在本科的操作系統(tǒng)教學(xué)中,能夠提供一個展示真實操作系統(tǒng)是如何工作的環(huán)境是很重要的。但目前普遍使用的教學(xué)平臺大多是非真實的、模擬的環(huán)境,這可能使同學(xué)對操作系統(tǒng)的理解出現(xiàn)偏差。同時教學(xué)平臺要求在學(xué)生的理解和修改的基礎(chǔ)上能夠真實的運行起來,所以我們采用WRK作為操作系統(tǒng)課程的教學(xué)實踐平臺。WRK平臺隸屬于Windows Academic Program項目,是微軟公司將Windows Kernel的核心技術(shù)融入到高校的教學(xué)和科研中的產(chǎn)物。該平臺是基于Windows操作系統(tǒng)的真實內(nèi)核代碼進(jìn)行提煉、修改形成的。它在操作系統(tǒng)教學(xué)方面具有以下幾個突出的優(yōu)點:

            • 可運行在真實的硬件平臺
              ??? WRK是建立在真實的NT內(nèi)核基礎(chǔ)上的,實現(xiàn)了線程調(diào)度、內(nèi)存管理、I/O管理、文件系統(tǒng)等操作系統(tǒng)所必須的組成部分。
              ??? 可以將編譯出的內(nèi)核放到裝有Windows 2003的機器上,通過增加啟動項,指定從WRK內(nèi)核啟動。通過修改編譯時的選項,可以支持X86和AMD64兩種架構(gòu)。
              當(dāng)然,我們也可以使用虛擬機運行WRK。可以防止修改過的代碼對真實的硬件和文件系統(tǒng)產(chǎn)生負(fù)面影響;也可以方便的通過串口進(jìn)行調(diào)試。
            • 包含操作系統(tǒng)中很多概念的具體實現(xiàn)
              ??? 現(xiàn)代操作系統(tǒng)原理中包含了很多的概念,如線程、虛擬內(nèi)存、硬件抽象等等。一些模擬的操作系統(tǒng)由于各種原因無法將這些概念付諸實際,這樣就導(dǎo)致學(xué)生在學(xué)習(xí)的過程中,獲得的只是一些空洞的知識。WRK中將Windows的各種實現(xiàn)都展示了出來。
            • 調(diào)試比較方便,隨機性使體驗更加真實
              ??? 一般來說,操作系統(tǒng)內(nèi)核的調(diào)試需要兩臺計算機。一臺作為宿主機,運行需要調(diào)試的內(nèi)核;另一臺作為調(diào)試機,運行調(diào)試程序。兩臺機器通過串口進(jìn)行連接,傳送調(diào)試指令和調(diào)試數(shù)據(jù)。因為WRK可以運行在虛擬機上,我們可以通過一個命名管道連接虛擬機和物理機。將虛擬機作為宿主機,而物理機器作為調(diào)試機來進(jìn)行調(diào)試。
              ??? 不確定性是操作系統(tǒng)所必須具有的特征。WRK運行在真實的硬件平臺上,各種硬件中斷的隨機性和不確定性賦予了WRK天生的不確定性。當(dāng)然,這個不確定性對于我們也是具有兩面性的,一方面展示的真實操作系統(tǒng)的特征;另一方面,對于我們內(nèi)核的調(diào)試也具有不確定性。
            • 結(jié)構(gòu)清晰,易于分模塊閱讀
              WRK具有非常清晰的目錄結(jié)構(gòu),將所有代碼分布在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的代碼量相當(dāng)大,源代碼有47M。所以,隨著操作系統(tǒng)課程的進(jìn)行,同學(xué)可以有針對性的閱讀某一個模塊的代碼,能夠更好的理論聯(lián)系實際。
            • 代碼質(zhì)量高
              ??? WRK是用C語言來實現(xiàn)的。這是考慮到了操作系統(tǒng)內(nèi)核效率的問題。WRK代碼質(zhì)量很高,規(guī)范很好,可以通過閱讀提高自己的水平。

              ??? 下面介紹如何編譯WRK。

              ??? 1.用VMware安裝一個windows server 2003系統(tǒng)(以下所指系統(tǒng)如未加說明均為該windows 2003虛擬機)
              ??? 2.將WRK源碼拷貝到系統(tǒng)下C盤,將文件夾取名wrk(可以任意命名)
              ??? 3.將系統(tǒng)中的環(huán)境變量Path設(shè)置為 C:\wrk\tools\x86;%path%
              ??? 4.(在命令提示符中輸入)cd wrk\base\ntos
              ??? 5.(在命令提示符中輸入)nmake -nologo x86=
              ????????????? (內(nèi)核正在編譯...編譯完后在wrk\base\ntos\BUILD\EXE下生成內(nèi)核文件)
              ??? 6.將wrk\base\ntos\BUILD\EXE下的內(nèi)核文件拷貝到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.進(jìn)入C:\wrk\WS03SP1HALS\x86目錄下,將相應(yīng)的hal文件夾下的文件(2個)拷貝到C:\windows\system32下
              ??? 9.進(jìn)入C盤,將隱藏的文件boot.ini打開,在最后一行加入:
              ??????? multi(0)disk(0)rdisk(0)partition()\WINDOWS="test" /kernel=wrkx86.exe /hal=halmacpi.dll
              ??? 10.重新啟動,進(jìn)入新編譯好的內(nèi)核.

              ??? PS: 1.注意第9步中,發(fā)光的數(shù)字"2",該數(shù)值應(yīng)與原來最后一句中的一致(否則進(jìn)入系統(tǒng)時會出現(xiàn)沒有找到引導(dǎo)盤)
              ?????? ?? 2.如果還是進(jìn)入不了系統(tǒng),則下載win2003sp1ch進(jìn)行系統(tǒng)升級.

            性做久久久久久久久久久| 久久精品国产亚洲av水果派| 午夜天堂精品久久久久| 亚洲va久久久噜噜噜久久男同| 国产69精品久久久久久人妻精品| 色欲综合久久躁天天躁蜜桃| 久久精品国产久精国产思思| 国产综合成人久久大片91| 欧美精品久久久久久久自慰| 9999国产精品欧美久久久久久| 热99RE久久精品这里都是精品免费| 国产成人久久精品激情| 久久综合久久综合亚洲| 精品欧美一区二区三区久久久 | 伊人久久大香线蕉综合热线| 99久久精品免费看国产一区二区三区 | 久久精品天天中文字幕人妻| 久久国产V一级毛多内射| 人妻无码αv中文字幕久久琪琪布| 成人国内精品久久久久影院VR| 亚洲AV无码一区东京热久久| 一本久久a久久精品综合夜夜| 伊人久久大香线蕉精品不卡| 精品久久久久久久久久久久久久久| 久久精品国产亚洲AV香蕉| 久久亚洲精品成人无码网站| 久久精品无码午夜福利理论片| 亚洲国产小视频精品久久久三级| 国产精品美女久久久m| 99久久无色码中文字幕人妻| 蜜桃麻豆www久久国产精品| 亚洲午夜精品久久久久久浪潮| 久久免费高清视频| 国产精品久久久久乳精品爆| 久久无码人妻一区二区三区| 久久妇女高潮几次MBA| 亚洲国产成人精品久久久国产成人一区二区三区综 | 97久久综合精品久久久综合| 久久国产乱子伦精品免费强| segui久久国产精品| 国产毛片久久久久久国产毛片|