Windows x64:更穩定、快速的運算環境

發佈日期: 2007 年 6 月 14 日

作者: 賴榮樞
http://www.goodman-lai.idv.tw

PC 伺服器 (或工作站) 現在有更好的機會能提供更強大的運算能量,這個機會就是 x64 架構。PC 產業為資訊業界提供了非常高的產值,而物美價廉的 PC 伺服器更讓企業樂於採用,不過當企業需要電腦處理的資料量越來越大,32 位元架構的 x86 電腦負荷也越來越重。雖然硬體廠商不斷改善 32 位元架構的效能及穩定性,包括更快的處理器速度、更大的匯流排頻寬,但是改善所得的效能仍不及企業所需處理的資料量。

本頁內容

x64 架構的軟體執行模式
WOW64 子系統
Windows x64 的安裝差異
更穩定、更快速的 Windows x64 運算環境

x86 架構有許多先天的限制,32 位元是其中一項,為了解決這項限制,處理器廠商早就著手進行改善。x86 架構的創造者英特爾在 1994 年公佈了 IA-64 架構的計畫,希望讓此新的架構成為 x86 的接班人,不過這項計畫一再延宕,而且 IA-64 架構與 x86 的相容性不佳,軟體必須重新全面改寫。另一家 x86 處理器廠商超微則在 1999 年首度揭露了 x86-64 架構的計畫,後來更名為 AMD64 的這個架構,採用了有別於 IA-64 的革命性作法,是將 32 位元的 x86 架構延伸成 64 位元。

x64 架構的軟體執行模式

x64 架構提供了 Long Mode 和 Legacy Mode 兩種軟體執行模式 (如圖 1)。Long Mode 需要專屬的 x64 位元作業系統,但是可以執行專屬的 x64 位元應用程式和的 x86 32 位元應用程式;Long Mode 包含了兩種模式:

  • 64-bit Mode:提供專屬的 64 位元應用程式運作環境。只有專屬的 x64 位元作業系統才能啟用 64 位元的指標、暫存器,並且讓 AMD64 進入 Long Mode。

  • Compatibility Mode (相容模式):能讓專屬的 x64 作業系統執行原本的 32 位元應用程式。也就是說,如果在 x64 架構執行 Windows x64 作業系統,依然能於其中執行 Win32 應用程式(但可能有少部分 Win32 應用程式會有相容性問題)。

Dd125475.43Windowsx64_1(zh-tw,TechNet.10).jpg

圖 1:x64 架構的軟體執行模式 (資料來源:超微)

除了 Long Mode,AMD64 還包含了 Legacy Mode (傳統模式),這其實就是原本的 x86 架構,提供了包括 16 位元的真實模式以及 32 位元的虛擬 8086 模式和保護模式。也因為 x64 提供了 Legacy Mode,因此原本相容於 x86 的 32 位元 Windows 甚至 DOS 等作業系統,都可以繼續在 x64 處理器運作。

WOW64 子系統

Windows x64 的使用者模式 (user mode) 有一個 WOW64 子系統 (Windows On Windows64,WOW64.DLL,如圖 2),這個子系統將負責 32 位元應用程式與 Windows x64 作業系統之間的溝通:WOW64 子系統會將 32 位元應用程式的系統呼叫轉換成 Windows x64 作業系統的格式,然後再轉給 Windows x64;作業系統會以為這是由 WOW64 子系統所呼叫,而將結果傳給 WOW64,接著 WOW64 會再將 Windows x64 的傳回值轉換成 32 位元的格式,最後再送回當初發出呼叫的 32 位元應用程式。

此外,在 Windows x64 當中,32 位元的應用程式不僅有完全與 64 位元程式互相獨立的執行環境 (如圖 2),甚至連登錄機碼和軟體安裝的資料夾都各自獨立,以免兩種類型的軟體同時執行而發生衝突。因此程式裡不能混合 32 位元和 64 位元的程式碼;請牢記這點,因為許多軟體相容的問題都是因此而起。當然,個別的 32 位元和 64 位元行程可以透過行程之間的通訊結構 (interprocess communications structures) 相互傳送資料。而雖然 32 位元應用程式在 64 位元作業系統依然會有 4 GB 的記憶體上限,但是卻可以擁有獨享的記憶體空間,不需要與作業系統核心、分頁表或其他的應用程式共用記憶體空間。

Dd125475.43Windowsx64_2(zh-tw,TechNet.10).jpg

圖 1:32 位元應用程式與 64 位元應用程式在 64 位元作業系統的運作模式 (資料來源:超微)

WOW64 不支援 32 位元核心模式的程式

請注意,因為 WOW64 子系統位於 Windows x64 的使用者模式,因此 WOW64 只能維繫 32 位元使用者模式程式與 Windows x64 的相容性,必須在核心模式 (kernel mode) 執行的 32 位元應用程式或驅動程式,與 Windows x64 會有相容性的問題。

WOW64 不支援 16 位元程式

WOW64 也不支援 16 位元程式,甚至如果 Win32 程式內含 16 位元程式元件,WOW64 也無法支援。還有一種情況,是 Win32 程式的安裝程式是 16 位元程式,會讓使用者連安裝都無法完成。

Windows x64 的安裝差異

基本上,Windows x64 與 Win32 作業系統的安裝過程差異並不大,甚至可以說都相同;以下列出了兩者安裝過程的差異,這些差異容易造成無法從 Win32 升級到 Windows x64,因此您應該以 Windows x64 的光碟片來開機,並且以全新安裝的方式安裝 Windows x64。

  • 無法使用 Windows 開機磁片安裝 Windows Server 2003 x64 與 Windows XP Professional x64,因為這些 Windows x64 作業系統的核心現已超過 2MB,無法放入磁片。

  • 無法使用 Winnt.exe 安裝 Windows x64,Winnt.exe 並未附於 Windows x64 安裝光碟。

  • 無法從 Win32 環境安裝 Windows x64,亦無法從 Win32 環境升級到 Windows x64 作業系統。

  • Windows x64 的安裝不支援 MS-DOS 機制,也就是無法從命令提示字元安裝 Windows x64。

  • Windows Server 2003 x64 與 Windows XP x64 安裝光碟的目錄配置已有變更,Windows x64 Edition 的主要安裝資料夾是 AMD64 資料夾。但是,i386 資料夾依然存在,並包含安裝 Windows x64 作業系統所需的檔案。因此,開始從本機或網路共用安裝 Windows x64 Edition 作業系統之前,必須先確定 Windows x64 安裝光碟包含的 AMD64 資料夾與其他資料夾已複製到本機或網路共用。

  • 如果要安裝 Windows x64 作業系統,必須使用 Windows x64 Edition 安裝光碟來開機。

更穩定、更快速的 Windows x64 運算環境

Windows x64 平台能提供更穩定的軟體執行環境,包括 Windows Server 2003 x64 和 Windows XP Professional x64 都是以 Windows Server 2003 Service Pack 1 的程式碼為基礎而改製,根據客戶的經驗,Windows Server 2003 Service Pack 1 的開機時間 (uptime) 已經達到 99.999%,這表示這幾個 Windows 作業系統都相當穩定。

除了穩定,Windows x64 也提供了更快速的運算環境:不論是資料庫、檔案處理、AD、終端機服務,Windows Server 2003 x64 皆能提供優於 Win32 甚高的執行效能;此外,也因為作業系統核心效能的增進,執行多數現有的 32 位元應用程式,也能大幅增進運作效能。

x64 架構已經是目前市場上的主流硬體架構,但 PC 產業若要完全跨進 64 位元,還需要更多的 x64 軟體支援,不只需要 Windows x64,還需要原生的 Windows x64 驅動程式和應用程式。目前硬體廠商已經帶給我們更多的 Windows x64 驅動程式,大致上,Windows x64 已經能運作無礙。更多的應用程式是提高 x64 應用範圍的重要指標,遊戲玩家、多媒體影音編製都在期待等多的 Windows x64 原生程式,而微軟本身也提供了更多的伺服器軟體給商業環境:Microsoft Exchange Server 2007、Microsoft SQL Server 2005、Microsoft BizTalk Server 2006、Microsoft Commerce Server 2007、Microsoft Virtual Server 2005 R2、Microsoft Operations Manager 2005 都將提供 64 位元的版本。

參考資料

延伸閱讀