目录

source AT alumni.cis:~/source/

Windows 掛點的主要來源是 driver 爛掉,或是記憶體 CRC 錯誤,這是由錯誤回報所得到的資訊。在 x86 上,效能並非問題,主要著重在系統穩定和安全性,所以 Windows 大量依賴 Managed code。引述自 Daniel Reed

設置環境

  1. 符合要求之後,即可從 Suggested Resources for Operating Systems using Windows 下載 Windows Research Kernel v1.2。解壓後,執行 WRKCopy 會將目錄拷貝到 C:\WRK-v1.2。請先閱讀 Getting Started with WRK。開啟命令行輸入,
    cd C:\WRK-v1.2
    Build.bat
    # C:\WRK-v1.2\base\ntos\BUILD\EXE\wrkx86.exe 即為內核
  2. 點選 Suggested Resources for Operating Systems using Windows 中的 Operating Systems Resource Kit,下載 Win2k3SP1 映像檔 (WRK)。
  3. 安裝 Virtual PC 或是 VMWare。載入 Win2k3SP1 映像檔 (WRK)。

注意! Windows Virtual PC 是後來透過更新內建在 Win 7 的虛擬機,它和 Virtual PC 2007 互斥。建議用 Virtual PC 2007。

偵錯

  1. 下載 WinDbg
  2. 虛擬機將 COM1 設為 \\.\pipe\debug,WinDbg 也是同樣設定。

請參考 Windows內核原理與實現 - 附錄 A一點通 - 如何在 Windows 7 的 Virtual PC 中啟用整合功能

概觀

Windows 將系統中各項資源視為對象 (object),這較 Linux 將裝置視為文件的概念更為廣泛。漫谈兼容内核之二: 关于kernel-win32的对象管理 一文中提及若是要將 Windows 嫁接至 Linux 內核上,需要替每一個 Windows 進程維護一個打開對象表,此表中除了包含該進程打開的文件以外,還包含其它資源。此外,由於 Windows 進程和線程與其底下 Linux 對應物有所不同,必須在 Linux struct task_struct 附加一些資料結構。

Windows 內核由上至下分別為: 執行體、微內核和 HAL。

系統呼叫

創建進程

漫谈兼容内核之十: Windows的进程创建和映像装入

分層

Registry

WOW

MS-DOS

術語

外部連結