背景介紹
Linux是一個類似於UNIX 的作業系統,它起源於芬蘭一個名為Linus Torvalds 的業餘愛好,但是現在已經是最為流行的一款免費作業系統。普通使用者在Linux 上辦公、瀏覽網站、發送郵件以及玩遊戲,許多大學和科研機構也Linux 來完成日常 的計算任務。在商業領域,由於Linux 系統價格低、安全效能高並且非常穩定,許 多公司均將自己的伺服器構建在Linux的基礎上。根據國際商用資料公司(IDC)的統計,世界上大約有三分之一的網站伺服器使用Linux作為作業系統。
Windows CE,根據微軟公司在Windows CE and Pocket PC: FAQ 中的定義,是作業系統開發商用以構建專有作業系統的一系列組件。原始裝置製造商(OEM) 可以 向微軟公司購買一個稱為"Windows CE平台開發系統"的整合式開發環境並利用該系 統組裝和編譯基於Windows CE的作業系統,該作業系統包括一系列基於Windows CE 的組件以及開發商自行開發的應用軟體或者是裝置驅動程式。由於基於Windows CE 的作業系統具有與微軟Windows 系列作業系統相類似的使用者介面,因此受到眾多最 終使用者以及開發商的青睞。目前Windows CE已經被廣泛應用在手機,掌上型電腦,個人數位助理,快譯通以及電子字典等攜帶型裝置上。
長期以來,Windows CE裝置的使用者還需要配備一台基於Windows 9x/2000/NT的 主機用於與Windows CE裝置交換資料。在該主機上運行微軟公司提供的Windows CE 服務軟體,該軟體通過一條RS-232資料線與Windows CE裝置建立起點對點連接,用 戶可以通過這個服務軟體訪問Windows CE裝置,但是區域網路裡面的其它電腦不能 夠訪問該Windows CE裝置。如果需要使得區域網路裡面的其它電腦也能夠訪問該裝置,則需要為該裝置安裝昂貴的專用網卡以及相關接入裝置,是一種非常不經濟的 解決方案。
本文利用Red Hat Linux 7.2作業系統內建的PPP伺服器與Windows CE裝置之間 建立起TCP/IP串連,然後在Windows CE裝置上運行一個FTP伺服器使得Linux主機能 夠訪問Windows CE裝置上的資源。由於本方法基於Windows CE裝置內建的RS-232資料線,不需要購買額外的任何裝置,因此是一種經濟實用的解決方案。此外,本文 所介紹的解決方案,對Windows 9x/2000/NT主機同樣適用。
串連Linux與Windows CE
點對點資料轉送協議(Point to Point Protocol, PPP)是一個通過串口線傳送 IP資料包的協議。使用PPP 協議,一台電腦能夠通過串口線、電話線等通訊裝置登陸到遠程主機並且利用該主機或者是主機所在網路的資源。在點對點通訊中包括伺服器和客戶機兩個部分,其中客戶機向伺服器請求網路連接,伺服器接收客戶機的請求建立網路連接並分配給客戶機相應的網路資源。當網路連接建立起來以後,伺服器和客戶機之間是嚴格對等的。由於Linux作業系統通常都帶有PPP伺服器和客 戶端程式,而Windows CE作業系統通常僅帶有PPP用戶端程式,因此我們使用Linux 主機作為PPP伺服器,Windows CE裝置作為PPP用戶端。
為了使用Linux主機作為PPP伺服器,我們首先必須確認該主機上是否已經安裝有PPP伺服器程式pppd。通常該程式被安裝在/usr/sbin目錄下,我們可以利用下面 的命令尋找該目錄下是否存在這個檔案:
ls /usr/sbin/pppd
最近正式發行的Linux作業系統(例如Red Hat Linux 6.x/7.x)通常都已經預先 安裝有PPP伺服器程式。如果Linux 主機尚未安裝PPP伺服器,那麼我們應該首先下 載並安裝一個PPP伺服器程式,例如pppd2.3.4。安裝該程式包可能還需要其它包的支援,由於應用程式的安裝已經超出了本文的討論範圍,請感興趣的讀者自行參考 其它相關資料。
確認PPP伺服器已經安裝在Linux主機上之後,我們需要對Linux 主機進行一些必要的配置,為了進行這些配置我們需要擁有root許可權。
建立檔案/etc/ppp/peers/wince,內容如下:
/dev/ttyS0 115200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'
noauth
local
90.0.0.1:90.0.0.2
建立檔案/etc/ppp/wince.chat,內容如下:
TIMEOUT 3600
"CLIENT" "CLIENT\c"
"" "SERVER\c"
在上面的兩個設定檔中,使用wince 作為檔案名稱僅僅是用來表示這個配置文 件是給一個Windows CE裝置使用的。讀者也可以自行選用其它的檔案名稱,例如palm 或者是handheld等等,但是必須保證兩個檔案名稱是一致的。
設定檔/etc/ppp/peers/wince指定使用串口ttyS0以115,200 bps的速率與客戶裝置建立串連,noauth參數說明在客戶機請求串連的時候不需要身份認證。在這 個對等串連中,伺服器(Linux 主機)的IP是90.0.0.1,客戶機(Windows Ce裝置)的 IP是90.0.0.2。設定檔/etc/ppp/wince.chat中的TIMEOUT參數指定伺服器的等待時間,如果超過這個時間仍然沒有接收到客戶機的串連請求則終止當前的伺服器程式。如果有讀者需要更進一步的瞭解相關的配置,請自行參考chat以及pppd的相關 文檔。
在Windows CE裝置端需要做的配置相對來說比較簡單。由於Windows CE預設的自動連接功能佔用了該裝置的串口,我們首先需要停止使用該功能。在開始菜單中選擇"設定->通訊->PC連線"並將其設定為不啟用與PC的串連即可停止該功能。然後我們重建立立一個串連,在開始菜單種選擇"程式->通訊->連線管理員",然後點擊 "建立串連"表徵圖,將新的串連命名為Linux 並指定連線類型為"直線串連",在下一 步中指定使用COM1進行串連並設定其通訊速率為115,200,在TCP/IP 設定中指定該裝置的IP為90.0.0.2。點擊OK存檔以後該串連會出現在"程式->通訊"菜單裡面。
利用如下命令在Linux主機上啟動PPP伺服器:
pppd call wince
在Windows CE 裝置上啟動建立的串連(程式->通訊->Linux)之後,網路連線圖 標會出現在Windows CE裝置的工作列上,Linux 主機則顯示如下資訊表明已經成功 與Windows CE裝置建立起串連:
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> ttyS0
found interface eth0 for proxy arp
local IP address 90.0.0.1
remote IP address 90.0.0.2
我們還可以使用Linux 主機提供的ping命令來驗證是否已經成功與Windows CE 裝置建立串連:
ping 90.0.0.2
如果Linux 主機已經成功的與Windows CE裝置建立串連,那麼我們應該能夠看 到類似於下面的資訊:
PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.
64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec
64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec
64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec
64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec
基於Windows CE的FTP軟體
當我們成功的在Linux主機與Windows CE裝置之間建立起PPP串連之後,下一步應該做些什麼呢?當然,我們需要一些合適的程式用來在Linux 主機與Windows CE 裝置之間進行檔案交換。我們現在已經能夠利用TCP/IP協議在Linux主機和Windows CE裝置之間傳輸資料,很顯然FTP程式是一個合適的選擇。
FTP(File Transport Protocol,檔案傳輸通訊協定)是一種被廣泛使用的在網路上進行檔案交換的協議。由於資料轉送可靠性的要求,FTP 是一種基於TCP/IP的傳輸 協議。在一個FTP 會話中包括一個伺服器端和一個用戶端,用戶端主動串連到伺服器端並向伺服器傳送檔案傳輸請求,伺服器端等待用戶端的接入並處理用戶端的文 件傳輸請求。
PE FTP Explorer是非常流行的基於Windows CE的FTP用戶端軟體,同時也是一 個功能齊全的檔案瀏覽器。與在PC機上常用的Cute FTP和WS FTP等FTP 用戶端相類 似,使用者能夠利用滑鼠(指標)放縮本地端和伺服器端的分類樹,上傳或者是下載檔案和目錄,也可以對檔案或者是目錄進行改名和刪除。這個軟體可以從CE Archive 網站(http://www.cearchives.com/ftp.html)獲得。在該網站讀者還可以找到另外 一個很流行的FTP用戶端vxFTP。
FTP 用戶端軟體的功能雖然已經非常的完備而且操作簡單,但是仍然不可避免的要收到攜帶型裝置窄小的顯示器的限制。如果能夠在攜帶型裝置上建立一個FTP 伺服器,那麼檔案傳輸操作就可以在Linux主機上利用常用FTP用戶端的進行。
ftpsrv.exe就是這樣一個基於Windows CE的FTP伺服器軟體。這個僅有28.5 KB 的小程式,除了不提供身份認證功能和Passive 傳輸模式以外,能夠處理大多數常 見的FTP 請求。利用微軟提供的Windows CE服務軟體將ftpsrv.exe上傳到攜帶型裝置的任意目錄下,啟動該程式以後在任務條上會出現一個類似於一台電腦串連兩個攜帶型裝置的小表徵圖。利用指標點擊該表徵圖以後會出現一個小小的控制視窗,在這裡我們可以改變FTP伺服器的連接埠號碼或者是終止該程式。
ftpsrv.exe可以從 http://pda.tucows.com/或者是 http://www.oohito.com/獲 得。在這兩個網站讀者還可以找到更多有用的小程式。
其它
如果有讀者使用的是Windows 9x/2000/NT主機,那麼也可以利用Windows 提供 的直線電纜連線功能與Windows CE裝置建立起PPP串連。
例如:在Windows 2000主機上,從開始菜單中選擇設定->網路和撥號連線->建立串連。在隨後出現的網路連接嚮導中選擇直接連接到另一台電腦並將該機器配置為主機。選擇合適的通訊連接埠並配置通訊速率以後,該主機作為PPP 伺服器等待 客戶機接入。同樣,在Windows CE裝置上建立一個串連,指定合適的通訊連接埠並配 置起通訊參數以後,即可與Windows主機建立起點對點連接。由於Windows主機已經配備了動態網路地址分配(DHCP)伺服器,因此Windows CE裝置既可以使用實現指定的靜態IP地址,也可以使用伺服器即時分配的動態IP地址。但是,由於直線電纜連 接所允許的最高傳輸速率為19,200 bps,使用Windows 9x/2000/NT主機作為PPP 服 務器似乎比不上Linux主機實用。
如果將PPP 伺服器設定為網關,則區域網路裡面所有的機器都可以通過改網關訪 問已經串連到網路上的Windows CE裝置。在Linux 主機上,可以通過ipchains將該 主機設定成透明網關;在Windows 9x/2000/NT 主機上,可以通過Win Proxy等Proxy 伺服器軟體將其設定為透明網關。如果有讀者需要更進一步瞭解如何將Linux 或者是Windows主機設定為透明網關的方法,請自行閱讀其它參考資料。
文章錄入:csh 責任編輯:csh