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下進行這些應用的可能性。
那難道Win8..Win9...都要一直XP Mode下去?或者每一代都有上一代MODE?
作業系統,可以讓人好好的作業就好,為何一定非得要升級不可。真的有這麼多好功能,開發成其他AP來賣就好,老是綁規在OS這一層,永遠只能承受邪惡帝國的稱號。
再說如果微軟不開發新的os…那堆程式設計師怎麼活…白白浪費很多的技術(經費)
為什麼光用XP就夠了?
早期OS的架構都是符合當年的硬體環境下去開發的,WinXP也有10年了,10年來硬體的差異有多大?(XP光是記憶體管理這方面...)
更何況對新技術的支援,可不是光靠幾套Service Pack就能搞定(尤其很多東西是要從底層改起的)。
另外您說的"真的有這麼多好功能,開發成其他AP來賣就好",如果OS沒支援,沒有提供API,很多事情也難以做到。
而且照您的說法,那為什麼Apple也要一直更新MAC OS;Linux各家版本也要一直更新呢?:p
有不少企業自行開發的軟體只能支援XP
多年下來那些軟體也還能用
砍掉重練又要花錢
這應該才是XP mode的原意
邪惡帝國也沒什麼不好
至少作業系統種類少
相容性等問題也比較不常見
軟體商也只要針對單一系統開發
你能想像市面上有10多種作業系統
各種佔有率都差不多
有些軟體支援A不支援B
A的檔案還不能去B用
這才是噩夢
不過cpu有支援的話大概會比較好..
(默默從零件盒挖出一張S3 TRIO 64V+
檔案系統還要掛載成網路分享模式?
感覺上這個「無縫模式」的縫很大...
我可以理解 XP mode 是以 VM 方式執行所以會有這樣的限制,
但是還有沒有與系統整合得更好其他的方式呢?
話說回來,Apple 當年從 System 9 -> OS X 以及 PowerPC -> Intel 轉換時,
同樣也是弄了「Classic mode」以及「Rosetta」來做過渡。
Rosetta 應該比較接近「指令轉換器」,和新系統整合難度應該比較低;
不過 Classic mode 應該也是 VM:它需要先啟動 System 9。
但是 Classic mode 對於桌面、檔案系統等整合,
感覺上比 XP mode 更接近「無縫」。
XP mode令使用者(即在下)最痛苦的是在不支援D3D與多核心。
其實在下也曾經用Vmware Converter把這XP row出,並放在實體主機下跑過.....
唯一的差別在不支援多核心,算是有閹過的版本。
而且那東西感覺也是微軟開發工具的產物......
現在是軟體追不上硬體
希望下一代的作業系統
能把平行處理做得更好
不然處理器核心再多也派不上用場
在下看了你的意見後順手拿了個放在Xen Server底下的Win7 VM安裝XP mode看看,果然不可以在虛擬的Win7底下再跑虛擬的XP MODE。
至於其他平台,礙於時間與Server調度的問題我就沒多測試了。