摘 要: 針對Linux系統應用中資源網絡共享的方法,研究采用NFS、Samba、FTP和其他軟件工具實現共享的途徑及其特殊性,實現安全、可靠、穩定和完善的Linux系統資源共享服務。
關鍵詞: 嵌入式;操作系統;Linux系統;網絡服務;資源共享
嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式系統的出現解決了嵌入式軟件開發標準化的難題。
嵌入式操作系統是嵌入式應用軟件的基礎和開發平臺。近兩年來,Linux在嵌入式領域異軍突起,它的獨特性使其作為開發嵌入式產品的操作系統具備巨大的潛力。Linux具有一些獨特的優勢:層次結構及內核完全開放;強大的網絡支持功能;具備一整套工具鏈;廣泛的硬件支持特性。目前,Linux主要應用于服務器、桌面和嵌入式系統。
Linux是一個網絡操作系統,在一般操作系統的功能上增加了網絡功能,具體包括如下功能。
(1)實現網絡中各計算機之間的通信和資源共享;
(2)提供多種網絡服務軟件;
(3)提供網絡用戶的應用程序接口。
而且Linux與其他商業化的網絡操作系統不同,它是由以Linus Torvalds為首的一批Internet上的志愿者開發的,完全免費,并與另一著名的網絡操作系統UNIX完全兼容,是一個具有很高性價比的網絡操作系統[1]。Linux系統核心結構圖如圖1所示。
1 Linux網絡服務類型
網絡是信息傳輸、接收、共享的虛擬平臺,通過它把各個點、面、體的信息聯系到一起,從而實現這些資源的共享。隨著技術的不斷發展,網絡已經成為了人們獲取、利用、處理和交換資源的重要方式,因此,無論是在工程項目實踐還是在日常學習生活中,如何建立信息高速流通通道,實現網絡資源共享都顯得十分重要[2]。
Linux具有強大的網絡功能,可以和多種網絡進行集成,實現不同系統平臺之間的資源共享管理。當Linux作為網絡中的資源共享服務器時,按照所服務系統的不同,一般有3種方式[3]。
(1)Linux客戶訪問Linux服務器;
(2)Windows客戶與Linux服務器之間的相互訪問;
(3)Windows客戶或者其他類型的客戶訪問Linux服務器。
其中每種訪問方式實現的工具是不同的,如圖2所示。
2 Linux網絡資源共享實現方法
以下討論基于Red Hat Enterprise Linux 5.0版本。
2.1 網絡文件系統NFS
網絡文件系統NFS(Network File System)實際上是一種Linux系統之間文件共享協議,它與HTTP和FTP協議不同,不需要把文件從服務器下載到本地來訪問。
NFS是通過將NFS服務器的文件系統安裝到客戶機的文件系統上而得以實現的。NFS客戶端通過掛載NFS文件系統的方式訪問NFS服務器中輸出的共享目錄,同一臺主機在系統訪問過程中既可以是NFS服務器也可以作為NFS客戶機。
在嵌入式Linux系統的開發調試階段,可以利用該技術在主機上建立基于NFS的根文件系統,掛載到嵌入式設備,可以很方便地修改根文件系統的內容。
2.1.1 配置NFS服務器
要配置NFS服務器,可以通過使用文本編輯器(如vi或gedit)修改配置文件/etc/exports的方法來完成。 /etc/exports文件的格式為:
directory_to_export NFS_client(permissions)[NFS_client(permissions)…]
在每次改變/etc/exports的時候,必須把改變通知給NFS守護進程,或使用以下命令來重新載入配置文件:
/sbin/service nfs reload
除了以手動方式配置NFS服務器外,還可以通過使用圖形界面下的NFS服務器配置工具進行配置。NFS服務器配置工具如圖3所示。
單擊“增加”,出現如圖4所示的界面,可以在這個界面中添加要導出的文件系統。
2.1.2 啟動和停止NFS服務
要啟動或停止NFS服務,必須以root登錄并使用以下命令來啟動NFS守護進程,其命令格式如下:
/sbin/service nfs[start|stop]
要啟動NFS,在“#”提示符下鍵入以下命令行:
/sbin/service nfs start
該命令在執行過程中會顯示啟動過程是否正確,如圖5所示。
要停止NFS,則在“#”提示符下鍵入以下命令行:
/sbin/service nfs stop
該命令會顯示如圖6所示窗口。
可以使用以下命令來查看NFS守護進程的狀態,從而確定命令操作是否成功。
/sbin/service nfs status
2.1.3 使用NFS文件系統
安裝遠程文件系統與安裝本地文件系統相同,都要使用mount命令,所不同的是,需要在文件系統路徑名之前加上遠程主機的名字。mount命令格式為:
mount [-Fnfs][-o option] hostname:pathname mountpoint
2.2 Samba服務器
Samba是在Linux系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。信息服務塊SMB(Server Messages Block)是一種在局域網上共享文件和打印機的通信協議。SMB協議是客戶機/服務器型協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。可以通過Samba服務程序的使用來實現Linux和Windows系統之間的資源共享[4]。
2.2.1 Samba的組成
組成Samba運行的有兩個服務,一個是SMB,另一個是NMB。SMB是Samba的核心啟動服務,只有SMB服務啟動,才能實現文件的共享;而NMB服務是負責解析的,類似于DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來。如果NMB服務沒有啟動,就只能通過IP來訪問共享文件。
2.2.2 Samba的配置
Samba服務器配置工具是用來管理Samba共享、用戶以及基本服務器設置的圖形化界面。配置Samba服務器的第一步是配置服務器的基本設置和幾個安全選項,如圖7和圖8所示。
配置Samba服務器的第二步是添加Samba用戶,如圖9所示。接下來是添加共享,其窗口如圖10所示。
2.2.3 啟動和停止Samba服務器
使用以下命令來啟動守護進程:/sbin/service smb start
使用以下命令來停止守護進程:/sbin/service smb stop
2.2.4 連接Samba共享
要從Microsoft Windows機器上連接Linux Samba共享,可以使用“網上鄰居”或圖形化文件管理器。也可用DOS命令通過IP地址進行登錄,例如:\\192.168.0.112。
2.3 FTP服務器
FTP是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基于不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:“下載”(Download)和“上傳”(Upload)。“下載”文件就是從遠程主機拷貝文件至自己的計算機上;“上傳”文件就是將文件從自己的計算機中拷貝至遠程主機上,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
一般在各種Linux的發行版中,默認帶有的FTP軟件是VSFTP,從各個Linux發行版對VSFTP的認可可以看出,VSFTP是一款不錯的FTP軟件。
2.3.1 安裝VSFTPD服務器
根據服務對象的不同,FTP服務可以分為兩類:一類是系統FTP服務器,它只允許系統上的合法用戶使用;另一類是匿名FTP服務器,它允許任何人登錄到FTP服務器,和服務器連接后,在登錄提示中輸入Anonymous(匿名),即可訪問服務器。
可以在終端命令窗口輸入以下命令對系統是否安裝vsftpd軟件進行驗證:
#rpm-qa grep vsftpd
如果結果顯示為“vsftpd-1.1.3-8”(軟件版本),則說明系統已經安裝vsftpd服務器。如果系統未安裝,那么在終端命令窗口運行以下命令即可開始安裝進程:
#rpm-ivh vsftpd-1.1.3-8.i386.rpm
2.3.2 啟動、停止和重新啟動vsftpd服務
FTP服務的啟動、停止和重新啟動的命令為:service vsftpd strat/stop/restart。
2.3.3 VSFTPD服務器的配置
配置VSFTPD服務器是使用FTP服務功能的重要步驟,配置服務器主要包括用戶登錄控制、用戶權限控制、用戶連接和超時選項以及服務器日志和歡迎信息4項內容。
3 其他跨平臺訪問Linux系統的工具
除上述Linux系統中常用的實現資源網絡共享的幾種方法外,在一些特殊的情況下,往往利用一些工具軟件來實現跨平臺訪問Linux系統。例如Vmware Tools可直接實現虛擬機與主機系統之間的資源共享,不需要其他服務程序[5]。
SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,是一種Windows下登錄UNIX或Linux服務器主機的軟件。
WinSCP是一個Windows環境下使用SSH的開源圖形化SFTP客戶端,同時支持SCP協議。它的主要功能就是在本地與遠程計算機間安全的復制文件。使用WinSCP可以連接到Linux系統并執行所有基本的文件操作,例如下載和上傳。同時允許為文件和目錄重命名、改變屬性、建立符號鏈接和快捷方式。
Putty是一個免費的、Windows 32平臺下的telnet、rlogin和ssh客戶端,但是功能絲毫不遜色于商業的telnet類工具。Putty具有體積很小、操作簡單等特點,且所有的操作都在一個控制面板中實現。在Putty的控制面板中配置好IP地址、協議端口和登錄協議等參數后,可以實現對Linux主機的遠程登錄。
本文介紹了Linux系統中幾種實現資源網絡共享的方法。對于只有Linux系統的網絡,推薦使用NFS。與Samba相比,NFS的數據傳輸能力更強而且快,但是安全漏洞比較多。對于Windows與Linux共存的局域網,推薦使用設置比較復雜但功能強大的Samba服務[6]。在廣域網中,推薦使用實現文件傳輸功能的FTP服務器。FTP功能強大且比較安全,但是其缺點是無法直接修改主機上的文件數據,文件首先要下載到客戶端,然后才能修改上傳回服務器。
此外,在一些特殊的情況下,用戶可根據自己的需要使用VMware Tools、SecureCRT、WinSCP、Putty等工具來實現Linux系統網絡資源的共享。本文簡單介紹了Linux系統實現資源網絡共享的幾種方法,用戶可根據需要選擇合適的方案,從而實現安全、可靠、穩定和完善的資源共享服務。
參考文獻
[1] 華清遠見嵌入式培訓中心.嵌入式Linux應用程序開發[M].北京:人民郵電出版社,2009.
[2] Song Wei, Zhuang Weihua. Multi-service load sharing for resource management in the cellular/WLAN integrated network[J]. IEEE Transactions on Wireless Communications,2009,8(2):725-735.
[3] 余立強.Linux系統的文件共享服務解決方案[J].電腦學習,2004(10):37-39.
[4] 吳閩泉,張志毅,劉俊平.Linux和Windows系統互操作方法[J].計算機工程與應用,2003(24):126-128.
[5] 胡蘭蘭.Linux實現文件共享方法分析[J].三門峽職業技術學院學報,2010,9(2):107-110.
[6] 胡建華.實現Linux和Windows之間資源共享——Samba技術的應用[J].企業科技與發展,2009(6):13-15.