Windows XP Mode 的RDP 架構簡介

筆者最近安裝了Windows XP Mode,了解一下RDP(Remote Desktop Protocol)的運作模式,突然間恍然大悟,要談RDP得從Windows 虛擬化談起

 

筆者最近安裝了Windows XP Mode,了解一下RDP(Remote Desktop Protocol)的運作模式,突然間恍然大悟,要談RDP得從Windows 虛擬化談起,也就是說所謂的RDP其實可以說是虛擬桌面基礎結構VDI (Virtual Desktop Infrastructure)的展示層,更正確的說XP Mode其實就是Enterprise Desktop Virtualization (MED-V)的一部分應用,而(MED-V)就是Hyper-V的前身,Hyper-V目前內建在Windows 2008 Enterprise/Standard/Data Center中,所以可以說XP Mode只是Hyper-V裡一種運作的形式而已,Hyper-V有許多種虛擬化的方式。
 

什麼是VDI呢,其實所講的就是運作在實體機器上的虛擬層,使每個虛擬機器獨立執行,就像實體機器一般,RDP則提供遠端終端機操作,如下簡圖:

VDI中文稱做是虛擬桌面基礎結構,他的下一版就是Enterprise Desktop Virtualization (MED-V),現在則稱作Hyper-V,而所謂的RDP其實也是一種遠端桌面的技術,如同遠端桌面一樣看到的是遠端執行的畫面,記住!只是畫面而以,那為什麼RDP又與虛擬化扯上關係呢?因為重另一個角度來看,使用者其實只需要看到遠端執行的該程式的或應用軟體的畫面即可,其實並不需要看到整個桌面,同一個VM甚至可以同時服務多個RDP用戶端,只要保留部分的資源給遠端使用、基本的操作、如:滑鼠、鍵盤等,這就像是硬體虛擬化只需要在OS中占用一部份資源一般,因此稱做展示層虛擬化,有聽懂嗎~其實更簡單的說RDP就是遠端桌面(Terminal Services)的一種應用,只是他指傳回遠端執行的該應用程式的畫面回來而已!所以看起來好像在本機電腦執行一般。
 

如何證明Windows XP Mode將應用程式執行在遠端的VM中呢,很簡單,比如說故意在Windows XP Mode安裝抓圖程式,如下圖,筆者安裝的Windows Virtual PC中的HyperSnap-DX選單:

執行之後會先將處於休眠中的Windows XP叫起來起來,再將HyperSnap-DX執行起來後透過RDP協定傳回畫面,由於為了快速的執行程式,Virtual PC會使用休眠的方式,下面的畫面即是從休眠中啟動的畫面:

執行的畫面如下:

透過視窗的外觀,看起來是不是很像是直接在Windows 7當中執行一般,可是視窗的標題卻是Windows XP標題,有趣的是筆者剛剛有提到說為什麼要在Server端安裝抓圖程式?因為如果他不是運作在本機中,是運作在Server端,那抓到抓面應該是Windows XP藍藍的桌面才對,我們試試看就知道了,筆者執行HyperSnapCapture\Full Screen,果然!抓到的是藍藍的桌面,如下:

 

 

但是有讀者會問~怎麼沒有看見桌面的圖示呢,因為這時透過外部的捷徑啟動的XP Mode只服務該遠端的應用程式,這時HyperSnap執行在Win32服務中,抓圖這件事還是必須與Windows XP的殼層(Shell)互動才可以,所以抓到的是一個藍藍的畫面。不過讀者可以自行單獨啟動Virtual PC看看這個VM中的Windows XP的抓面是不是藍色的~ ^^
 

話又說回來,事實上這是Windows 7內建的RDP協定從遠端傳回來的畫面,所以也就是說RDPServer端的服務已經安裝在這個Virtual PCWindows XP中,Windows 7只是Client,如下筆者以一個簡圖描述遠端桌面存取服務的運作方式:

如圖、Virtual PC中的XP Mode也執行著遠端桌面存取服務 (Service端),外部的Windows 7則是Client透過RDP取回畫面資料,當然這也意味著Service端與Client不一定要在同一台機器上。
 
而且RDP其是早就內建於Windows Vista中,也就是說Windows XP Mode其實是可以運作在Windows Vista中的,只是微軟不讓你安裝在Vista中而已。
 
而安裝在Windows 7的遠端的捷徑其實是一個透過Rundll32.exe執行的一個假的捷徑,將該捷徑的目標抓出來內容如下:
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||c3aaffe3" "HyperSnap-DX"
 
顯然的這個function是” LaunchVMSal”進入點在VMCPropertyHandler.dll這個DLL中,這個擴充的DLL當然是安裝Windows6.1-KB958559-x86.msu更新的時候安裝進來的。
 

整個Windows XP Mode基礎的運作模式源自VDI,目前的Hyper-V當你在Console的畫面點兩下,開啟的也是遠端桌面的畫面。小小的心得分享~希望對各位有幫助^^


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^