2010-11-19 60 views
1

這是我的場景:我工作的公司將應用程序部署到32位Windows 2003服務器,並且他們希望移到64位的Windows 2008 Server。已經注意到,這些32位定製開發的應用程序不能在64位機器上運行。我沒有意識到這一點。win32位應用程序是否會在64位服務器上運行?

我一直認爲32位軟件可以在64位操作系統上運行,只需使用32位地址。另一個64位軟件無法在32位操作系統上運行。在64位上,必須創建64位軟件,但是仍然可以創建專爲32位機器設計的軟件。

有人可以詳細說明嗎?

回答

3

通常,32位應用程序將在64位Windows(這在技術上稱爲WOW64-Windows Windows)下運行。這適用於迄今爲止所有64位Windows版本,包括服務器。

WOW64進程在* 32的任務管理器中標記,例如:chrome.exe * 32。 Sysinternals的Process Explorer有一個單獨的列:Image Type(64 vs 32位)。

如果應用程式託管的其他進程內的組件,然後這些組件必須適應他們的託管過程的例子:

  • 外殼擴展在Explorer.exe的託管,其位數的OS」位數匹配。因此,您應該編譯32位和64位的擴展名,並在安裝過程中註冊與操作系統比特位相匹配的擴展名。
  • 內核模式驅動程序駐留在內核中,其位數也與操作系統的位數相匹配。所以,上述適用。
  • Winsock LSP(分層服務提供程序)託管在所有進程中,包括64位(本機)和32位(WOW64)。因此,您應該編譯32位和64位的LSP,並在安裝期間在其各自的目錄中註冊。

還有一些關於文件重定向(System32/SysWOW64/SysNative)和註冊表重定向(Wow6432Node)的注意事項,我不會介紹。

+0

非常感謝! – user118190 2012-04-09 23:22:11

3

通常,32位應用程序將在64位操作系統下運行。如果您的應用程序依賴於32位內核驅動程序(例如,VPN客戶端),那麼您將不得不移植到64位。

+0

這應該與警告(儘管它們可能在2012年比2010年更相關!)。一般來說,*大多數* 64位操作系統都具有兼容性功能,可以讓它們運行32位應用程序。這並非總是如此,特別是在Linux安裝中,這些兼容性部分是默認情況下未安裝的可選軟件包正變得越來越普遍。 – 2012-12-23 05:40:51

相關問題