相關文章

Cover Windows 7的優點,除了穩、快、美觀之外, 最成功之處莫過於「Windows XP Mode」(也可簡稱為XP Mode)這個從Virtual PC演化而來、呼應火紅虛擬化議題的重點產物。毫無疑問的,它是為Windows XP產品線畫下休止符、卻又與新型作業系統達成完美橋接的重要功臣。

30秒看懂XP Mode

由於XP Mode「完全免費」,如此一來,便沒有人能再以相容性問題為理由而拒絕升級。Windows XP Mode是一套虛擬機器,可以讓你在Windows 7裡面「完美無縫」(seamless)地執行Windows XP程式,完全不必考慮到相容性問題。它不會內嵌在Windows 7系統裡出貨,但是你可以免費下載並無限期使用,不需要任何虛擬機器的操作技巧或經驗,而且你還可以不花錢獲得一套現成的XP作業系統。

▲ Windows 7裡有XP,兩個不同世代的作業系統一家親。

說穿了,Windows XP Mode就是用Windows原有的Virtual PC虛擬機、加上Windows XP映像檔的組合套件,但是它的安裝及操作過程已經被極度簡化,融合為Windows 7系統的一部份。虛擬機器讀者們應該都很熟悉,不過XP Mode與一般安裝了Windows XP的VMware、VirtualBox有何不同?自己裝Virtual PC再拿原版XP光碟來安裝難道不行嗎?這就是本篇文章要探討的主題。

首先,Windows XP Mode的精髓是「在Windows 7作業系統直接執行相容於Windows XP的程式」,而不是「在Windows 7上執行Windows XP作業系統」。

事實上,所有單機端、也就是模擬型態為type 2的虛擬機器,最終目標就是要達成母子作業系統間的無縫接合,讓你「感覺不出來是運行虛擬機,就像是執行原生的程式一樣」,Windows XP Mode即是最好寫照。

▲ 無縫模式是Windows XP Mode的主打效果,讓軟體視窗獨立跳脫XP系統,出現在Windows 7桌面上,前提是必須先關閉原有的桌面視窗。

▲ 要在Windows 7上執行IE 6,不再是夢想。

三大常見虛擬機器的無縫模式

虛擬機器 Windows XP Mode VMware
(Unity)
VirtualBox
拖拉檔案
(Drag & Drop)
桌面整合程度
(Seamless)
低( 一次只允許
一個程式)
剪貼簿共享
資料夾共享設置 易( 掛載成網路
磁碟)

「百分百」的程式相容性

以往在升級作業系統時,我們總是會透過相容性設置,讓只相容於舊版作業系統的程式能夠在新系統上正常執行,其原理主要是透過額外的函式庫來處理程序的呼叫以及函數的取用。這種方法看似方便,實則無法百分百解決衝突問題。主要原因是:能透過相容性設置而成功執行的程式,大部份通常只是設法躲過檢查作業系統的機制,作業系統未必能應付所有的功能呼叫,所以常會發生明明就執行成功了,操作到一半卻出現錯誤的情況。

當然了,在一個真正的作業系統上執行原生程式就不會有此問題。Windows XP Mode正是如此,它實際上的確是運行了一個完整的、甚至可以還原成磁碟區、不靠虛擬機就可以直接運作的Windows XP作業系統,只是因為嵌入Windows 7桌面環境的關係,變得比調整程式相容性還方便。

使用相容性設定的原罪

作業系統面臨改版或升級時,也會改變其系統函式庫的內容,尤其是Vista問世之後,不管是系統核心、音效、圖形或系統裝置,控制結構都有很大的不同。

軟體開發者很難未卜先知,微軟也沒有佛心到為新系統提供無限下綱的相容性(也沒必要),所以撰寫程式時可先加上一個執行環境的判斷機制,充當「守門員」來防止可能產生的錯誤或危險,也算是一種安全措施。

相容性設定的首要工作,就是矇騙軟體的詢問機制,並企圖以現有資源來滿足該軟體所需要的呼叫,以求「矇混過關」。這其實是不太踏實的作法,不過對於一般簡單的程式而言已經足夠。

Windows XP Mode怎麼裝?

Windows XP Mode的安裝很簡單,不必浪費版面贅述,但要注意硬體規格是否符合需求。Windows XP、Vista、Windows 7都只有部份版本能運行Windows XP Mode,只要處理器支援Intel或AMD的虛擬化技術,並在BIOS中開啟即可。

▲ 圖為第三方的虛擬化檢定程式, 基本上如果Hardware Virtualization為「Yes」,安裝Windows XP Mode應該不成問題。

無縫模式不完美

文中不斷提到無縫模式,事實上Windows XP Mode的無縫模式並不完美,而且還限制重重,分享功能十分陽春。明顯的例子是:Windows XP環境中的應用程式,可以化身為獨立視窗拉到Windows 7桌面上,前提是必須先關閉Windows XP Mode本身的桌面環境,也就是只能擇一而為,並沒有實現「高興就把視窗從Windows XP Mode中拉出來」或是「直接在兩個系統間拖曳檔案」的壯舉。

遠端桌面成限制

為何會有如此限制?原因在於Windows XP Mode與主系統的無縫結合,是透過RDP(Remote Desktop Protocal,遠端桌面協定)來溝通。Windows XP預設一次只允許一組遠端桌面連線,所以會發生「一次只能執行一個程式」的窘況。這個限制雖然可以破解,但仍然彌補不了Windows XP Mode在無縫結合模式上的不足,而且RDP本來就沒有拖曳檔案的功能。

再來,儲存空間的共享也是一例,且待後面詳述。總之,如果要把Windows XP Mode的無縫模式拿來與 VirtualBox或VMware的Unity相比,其實仍有不少進步空間。

資源共享與安全機制

Virtual PC目前有兩個版本,一個是獨立的VPC 2007,另一個是專門用來執行Windows XP Mode的Virtual PC。說後者為前者的精簡版並不為過,但並不代表VPC 2007即為全能的「完整版」。

從官網上所下載的、合法的Windows XP映像檔,其實只能在Virtual PC上執行。再來,如果是VPC 2007加上XP原版光碟的組合,便無法享有無縫結合的快感與便利。(補充一點,XP Mode雖然也能安裝在Vista環境中,但只有在Windows 7環境下才有無縫效果)

▲ Windows XP Mode的設定值其實就是Virtual PC的介面。Virtual PC多了「整合」選項,可在此設置磁碟區共享,成功後會以網路磁碟的型態出現在「我的電腦」裡。不過XP Mode無法直接掛載實體磁碟,必須使用映像檔才行。

靠網路磁碟共享儲存空間

Windows XP Mode本身無法享有實體磁碟區,能掛載成Windows XP本機磁碟的空間必定會以VHD的映像檔形式存在於實體磁碟中。至於母子系統間的檔案共享,則要透過網路磁碟來達成。在預設值下,Windows XP Mode可以輕鬆指定、並直接存取Windows 7系統的實體磁碟區,如果要反其道而行,則需另外再手動設定共享資料夾。

對於有經驗的玩家來說,手動設定其實並不難,作法跟一般的資料夾共享大致相同。要注意的是,虛擬系統要與實體系統設定成同一個網域,並將網路型態調整為指定實體網路卡(也就是橋接模式)才能互通。

▲ Windows 7環境下是無法安裝VPC 2007的,所以也無須探究VPC 2007裝上Windows XP會與Virtual PC結合Windows XP Mode有何差異。

虛擬系統會比較安全嗎?

對於一般玩家所能進行的一般應用來說,其實只要權限經過設定,網路與實體磁碟在安全性的控管上並無太大差異,差別只在於傳輸的媒介而已。「網路磁碟就會比較安全」純粹是一種誤解。最好的防範方式,就是在虛擬機器與實體主機端都裝上防火牆及防毒軟體,雙重控管方能確保資料安全。

簡化過的網路設定

虛擬環境下的網路設定方式詳見附表,不過Windows XP Mode有自己不同的設定值名稱,如果要讓Windows 7直接存取虛擬系統裡的資料夾,就必須設定成橋接模式(bridged),如此一來兩個系統在區域網路上才是處於對等狀態。在此模式下,虛擬系統所使用的DHCP伺服器與Windows 7主機是相同的實體路由器,而不是經由軟體所模擬出來。

如果實體主機上有多張網路卡,亦可直接指定給XP Mode。要特別注意的是,在虛擬系統內的所有裝置仍然要透過實體主機的設定值來存取,如果該裝置在實體主機上是禁用的,自然也無法被Windows XP Mode使用。

虛擬網路模式 Bridged(橋接) Host only(單主機) NAT
Windows XP
Mode 對應名稱
直接指定網路卡 Internal Network NAT
示意圖


可否連外
可否與宿主互連
可否訪問區網

Bridged
橋接模式能夠讓虛擬環境享有最完整的網路功能。在此環境下,虛擬環境與實體主機在區網的地位是對等的,同樣享有實體分享器所配給的位址,也能順利連外,並可與實體主機共享一張網路卡、或指定使用額外的網路卡。

Host only
Host only主要是建立一個只有實體主機與虛擬環境共享的甜蜜小世界,跟外界的區網及互聯網隔絕,是一個封閉的網路環境。除非你只打算在兩台主機間互傳資料,不然此模式用處不大。

NAT
NAT等於是在虛擬機器內再設立一個虛擬的DHCP伺服器,也就是host only的可外連版本。雖然虛擬環境無法存取區網(因為它不是區網的一份子),但NAT確實是能讓虛擬環境可上網最簡單的方法。

XP Mode做不到的事

前面不斷提到,面對相容於Windows XP的應用程式,Windows XP Mode幾乎可達到100%的支援程度,卻未必能發揮實體硬體的所有效能及功能。經由虛擬機器的轉換,Windows XP Mode的運作效能當然比運作原生系統略低,原本硬體的功能性也可能因為驅動程式無法安裝而遭屏蔽。

硬體支援大哥罩小弟

Windows XP Mode的虛擬化型態為type 2,也就是說它的底層還有Windows 7作為中介,並非直接存取硬體資源。這代表兩件事:第一,你不必為虛擬系統安裝任何驅動程式,只要Windows 7有支援,它就可以使用;第二,反過來說,如果是不相容於Windows 7的裝置或驅動,那麼就算在虛擬系統裡裝了「對應Windows XP的驅動程式」也是於事無補,因為Windows XP Mode溝通的對象是Windows 7,而不是實體硬體。

Windows 7能用的,XP Mode才能用

虛擬系統有個明顯的優點,就是「即灌即用」,不必再安裝一堆驅動。這種做法有一個立竿見影的優點:只要Windows 7支援的裝置,虛擬系統就能受惠。然而,以目前來看,支援Windows 7的硬體絕對比支援Windows XP來得少,尤其是電視卡、影音擷取卡之類的視訊裝置。也就是說,在作業系統的底層處理架構上有大變動的應用,硬體的向下相容性會因此而被抵消。

舉個最簡單的例子,如果一張電視卡的驅動不相容於Windows 7,在Windows 7環境下無法正常使用,那麼就算它有相容於Windows XP的版本可安裝也是罔然,因為不能在Windows 7下啟用的硬體裝置,在虛擬環境中就不會出現。

唯一有可能例外的是USB裝置,XP Mode允許利用USB Passthrough技術來讓虛擬系統直接溝通存取,比如印表機、掃描器、數位相機等等的外接裝置,如果你確實只有「支援XP的驅動程式」,那麼倒可一試。

Windows 7能用的,XP Mode不一定能用

看到這裡,讀者可能會有個疑問:如果某裝置相容於Windows 7之後,是否就一定能在Windows XP Mode中使用呢?這點也不盡然。虛擬系統中的驅動程式多為簡化過的基礎版本,只能應付基本外連裝置,比如插上了一張NVIDIA顯示卡,在Windows XP Mode裡卻只是一張虛擬的S3 Trio 32/64,也無法安裝驅動程式,先進的硬體加速、影片解碼功能自然無法使用,要在上面運行需要高效能圖形運算的3D遊戲更是天方夜譚。

顯卡再好,效果都很小

虛擬環境中的裝置多是「虛擬」的,驅動程式簡單而陽春,不同於VMware等老牌的商業軟體還可以支援Direct 3D,Windows XP Mode連3DMark 06都跑不起來。

基本上,實體主機插什麼顯示卡跟虛擬環境完全無關,坊間其他號稱支援Direct 3D的虛擬機,不管在模擬難度或效能佔用上都極為可觀。

跑跑一般應用程式就好

虛擬機器的效能耗損主要會出現在網路、處理器及記憶體、磁碟存取這幾個轉換工作上。網路速度的差異通常難以察覺,因此大部份效能落差主要會出現在後兩者上,不過我們無法自訂虛擬機器該如何與實體系統共享處理器資源。

至於磁碟共享因為是透過網路存取,在安全性設置上需多加留意,因為虛擬環境中的程式可以任意存取實體系統磁碟區的資料,如果你運行Windows XP Mode的目的是為了享有一個隔離的、不影響主系統安全性的執行環境,請務心將磁碟分享的功能關閉,要不然就是在虛擬環境裡也裝一個防毒軟體。

總歸一句,Windows XP Mode的價值仍在於延續商業應用軟體的生命週期,並不適合用來從事大量消耗硬體資源的運算或娛樂活動。不過話說回來,Windows XP獨佔的遊戲或影音編輯相關應用多已消聲匿跡,實在沒有必要因此而拒絕升級系統,也不必花費心思去探討在Windows XP Mode下進行這些應用的可能性。

使用 Facebook 留言

Ad28c1aa5ae2dbea6b1774052b70694c?size=48&default=wavatar
2.  ps2 (發表於 2010年11月01日 16:08)
微軟的問題在於,一直無法面對為何使用者光XP就夠用了?

那難道Win8..Win9...都要一直XP Mode下去?或者每一代都有上一代MODE?

作業系統,可以讓人好好的作業就好,為何一定非得要升級不可。真的有這麼多好功能,開發成其他AP來賣就好,老是綁規在OS這一層,永遠只能承受邪惡帝國的稱號。
F0df1dcc8faeefb9d9d18cc70ba2ce35?size=48&default=wavatar
3.  伯伯 (發表於 2010年11月01日 17:05)
因為很多好功能都要綁在新的os架構上才可以運行啊,開發os可不是像組積木這麼簡單啊…

再說如果微軟不開發新的os…那堆程式設計師怎麼活…白白浪費很多的技術(經費)
B41eacf42507a6a5e9a32f756da78bc5?size=48&default=wavatar
4.  CloudEX (發表於 2010年11月01日 17:22)
@ps2
為什麼光用XP就夠了?

早期OS的架構都是符合當年的硬體環境下去開發的,WinXP也有10年了,10年來硬體的差異有多大?(XP光是記憶體管理這方面...)

更何況對新技術的支援,可不是光靠幾套Service Pack就能搞定(尤其很多東西是要從底層改起的)。

另外您說的"真的有這麼多好功能,開發成其他AP來賣就好",如果OS沒支援,沒有提供API,很多事情也難以做到。

而且照您的說法,那為什麼Apple也要一直更新MAC OS;Linux各家版本也要一直更新呢?:p
54abb90a4015d0c00df4481d1049cf77?size=48&default=wavatar
6.  lookadd (發表於 2010年11月01日 18:51)
XP mode主要還是給企業主使用
有不少企業自行開發的軟體只能支援XP
多年下來那些軟體也還能用
砍掉重練又要花錢
這應該才是XP mode的原意

邪惡帝國也沒什麼不好
至少作業系統種類少
相容性等問題也比較不常見
軟體商也只要針對單一系統開發

你能想像市面上有10多種作業系統
各種佔有率都差不多
有些軟體支援A不支援B
A的檔案還不能去B用
這才是噩夢
854a1a3d45aa74dc7e454fc2a0a73605?size=48&default=wavatar
7.  kutips (發表於 2010年11月01日 18:58)
那麼,我們就可以安裝「Unfriend Finder for Facebook」這個腳本
9a93efa79aa9f5d35e14bc55a3e16dc4?size=48&default=wavatar
8.  test (發表於 2010年11月01日 19:14)
最新版本的xp mode已經取消"Intel或AMD的虛擬化技術"的限制了..
不過cpu有支援的話大概會比較好..
Ed6adbd809263027776c7ce261c7587d?size=48&default=wavatar
9.  RB (發表於 2010年11月01日 22:24)
在Windows XP Mode裡卻只是一張虛擬的S3 Trio 32/64

(默默從零件盒挖出一張S3 TRIO 64V+
Antony Wu
10.  Antony Wu (發表於 2010年11月02日 11:02)
其實在下測試過XP MODE並非「一次只能執行一個程式」的,小編可以再測試看看。
C3f237ecef8241ddf71a0e2ab358fbbc?size=48&default=wavatar
11.  Ric (發表於 2010年11月02日 11:46)
不曉得是不是我會錯意...
檔案系統還要掛載成網路分享模式?
感覺上這個「無縫模式」的縫很大...

我可以理解 XP mode 是以 VM 方式執行所以會有這樣的限制,
但是還有沒有與系統整合得更好其他的方式呢?

話說回來,Apple 當年從 System 9 -> OS X 以及 PowerPC -> Intel 轉換時,
同樣也是弄了「Classic mode」以及「Rosetta」來做過渡。
Rosetta 應該比較接近「指令轉換器」,和新系統整合難度應該比較低;
不過 Classic mode 應該也是 VM:它需要先啟動 System 9。
但是 Classic mode 對於桌面、檔案系統等整合,
感覺上比 XP mode 更接近「無縫」。
186e29d22edfb5d94854e87196ca5b16?size=48&default=wavatar
12.  與妻訣別書 (發表於 2010年11月02日 13:14)
把 XP 當作表情符號的話(比如吃了苦藥吐出舌頭的表情),就不難理解 XP mode。
Antony Wu
13.  Antony Wu (發表於 2010年11月02日 13:55)
其實在Windows RDP base底下做到所謂的"無縫"與檔案搬移,已經很令使用者出乎意外了。(先說我不是M$飯

XP mode令使用者(即在下)最痛苦的是在不支援D3D與多核心。

其實在下也曾經用Vmware Converter把這XP row出,並放在實體主機下跑過.....

唯一的差別在不支援多核心,算是有閹過的版本。
無痕
14.  無痕 (發表於 2010年11月02日 16:42)
Windows 7 XP Mode 早就想玩了,不過在虛擬機下是不能跑 XP Mode 的吧 x x (因為我的 win7 是在虛擬系統下,應當是不能用虛擬機跑虛擬機)
167238146d39e0f251a0d6d3ffbf9795?size=48&default=wavatar
15.  ZeiWeng (發表於 2010年11月02日 17:04)
我還是認為應用軟體的開發越不黏環境就越沒事情,越黏環境問題越多,全看開發者了;老媽那邊用的監視系統廠商給的 Clinet 端就只吃 XP ,開發也一團亂,也不打算有升級,監視系統商居然要求我們降級......

而且那東西感覺也是微軟開發工具的產物......
kk
16.  kk (發表於 2010年11月02日 17:39)
過去是硬體追不上軟體
現在是軟體追不上硬體

希望下一代的作業系統
能把平行處理做得更好
不然處理器核心再多也派不上用場
Antony Wu
18.  Antony Wu (發表於 2010年11月03日 13:54)
@無痕

在下看了你的意見後順手拿了個放在Xen Server底下的Win7 VM安裝XP mode看看,果然不可以在虛擬的Win7底下再跑虛擬的XP MODE。
至於其他平台,礙於時間與Server調度的問題我就沒多測試了。

發表回應

謹慎發言,尊重彼此。按此展開留言規則