摘 要:嵌入式系統(tǒng)設(shè)計(jì)的產(chǎn)品需要具備網(wǎng)絡(luò)功能需求日益增多,并且Linux系統(tǒng)內(nèi)核及其上執(zhí)行的各種網(wǎng)絡(luò)軟件,可以用來(lái)運(yùn)行高可靠、高可用網(wǎng)絡(luò)服務(wù)的軟件,這也正是Linux更適合網(wǎng)絡(luò)應(yīng)用程序的原因。本文將對(duì)如何在嵌入式Linux系統(tǒng)中設(shè)置及配置網(wǎng)絡(luò)服務(wù)進(jìn)行闡述。
關(guān)鍵詞:嵌入式Linux;網(wǎng)絡(luò)服務(wù)
1 引言
隨著信息化、網(wǎng)絡(luò)化、智能化的發(fā)展,嵌入式技術(shù)得到了極大的發(fā)展,Linux操作系統(tǒng)以其穩(wěn)定性好,可靠性高,源代碼公開(kāi),可剪裁,版權(quán)免費(fèi)等優(yōu)點(diǎn),已成為嵌入式領(lǐng)域的一股新興力量,具有巨大的市場(chǎng)潛力和商業(yè)價(jià)值。利用嵌入式Linux系統(tǒng)設(shè)計(jì)的各種產(chǎn)品需要具備網(wǎng)絡(luò)功能的支持,主流網(wǎng)絡(luò)服務(wù)主要有internet super-server、SNMP遠(yuǎn)程管理、使用Telnet進(jìn)行網(wǎng)絡(luò)登錄等。
2 Inter Super-Server服務(wù)
網(wǎng)絡(luò)服務(wù)程序會(huì)影響來(lái)自特定端口號(hào)的服務(wù)請(qǐng)求,為讓網(wǎng)絡(luò)服務(wù)正常運(yùn)行,必須有個(gè)運(yùn)行中的進(jìn)程在相應(yīng)的端口號(hào)上監(jiān)聽(tīng)服務(wù)請(qǐng)求。大多數(shù)程序都是利用Inter Super-Server程序,它負(fù)責(zé)堅(jiān)挺所有已經(jīng)啟用的網(wǎng)絡(luò)服務(wù)器的端口。在Linux系統(tǒng)中主要有兩個(gè)程序可用,即:inetd和xinetd。后者將逐漸取代前者,但是前者的體積小更適合嵌入式Linux系統(tǒng)。
Inetd是netkit套件的一部分其中netkit-base套件除了附帶inetd外,還包括了ping。我們要先下載netkit-base并取出放到${PRJROOT}/sysapps目錄,修改configure腳本。如果不修改該腳本,測(cè)試程序?qū)o(wú)法在主機(jī)上執(zhí)行。修改方法是將__conftest測(cè)試程序前都加#以注釋掉對(duì)應(yīng)測(cè)試程序。另外inetd的建立還需要glibc或uClibc。
Xinetd比inetd更優(yōu)秀,因?yàn)樗€允許某種安全許可。我們要先下載xinetd套件,并解壓縮放到${PRJROOT}/sysapps目錄中,其中uClibc必須支持RPC和C99才能保證xinetd順利編譯。接著進(jìn)行設(shè)定、編譯以及安裝xinetd,xinetd套件會(huì)把二進(jìn)制文件安裝到${TARGET_PREFIX}目錄。
兩者在安裝后都需要添加一行設(shè)定(::once:/usr/sbin/xinetd),但是區(qū)別在于xinetd只能被啟動(dòng)成監(jiān)控程序,所以,如果xinetd終止后,init無(wú)法再次啟動(dòng)xinetd。
3 SNMP遠(yuǎn)程管理
簡(jiǎn)易網(wǎng)絡(luò)管理協(xié)議讓我們能通過(guò)TCP/IP網(wǎng)絡(luò)進(jìn)行設(shè)備的遠(yuǎn)程管理。這對(duì)于我們嵌入式設(shè)備的網(wǎng)絡(luò)應(yīng)用和網(wǎng)絡(luò)維護(hù)提供方便。操作者不必在設(shè)備旁邊,通過(guò)遠(yuǎn)程監(jiān)控目標(biāo)板自動(dòng)監(jiān)控工作。若我們的設(shè)備中的目標(biāo)板是一個(gè)復(fù)雜網(wǎng)絡(luò)的一部分,亦或是你需要隨時(shí)從遠(yuǎn)程監(jiān)控它的狀態(tài)。Net-SNMP是個(gè)相當(dāng)大的套件,它包含很多軟件組件。我們首先下載套件并且將它解壓放到${PRJROOT}/sysapps目錄。將Net-SNMP設(shè)置成使用glibc進(jìn)行建立的工作。Net-SNMP也可鏈接uClibc,但是需要將uClibc設(shè)定成支持IPv6。如果不支持,可以在Net-SNMP的配置命令行上加入—disable-ipv6選項(xiàng),讓Net-SNMP停止對(duì)IPv6的支持即可。配置命令腳本執(zhí)行完畢后,接著進(jìn)行建立和安裝Net-SNMP組件。
代碼如下:
$make prefix=${TARGET_PREFIX} exec_prefix=${TARGET_PREFIX} install
其中,值得注意的是SNMP代理執(zhí)行時(shí)仍會(huì)讀取/usr/local/share/snmp配置文件,exec_prefix參數(shù)如果未加入整個(gè)安裝將會(huì)失敗。
4 Telnet進(jìn)行網(wǎng)絡(luò)登錄
Telnet登錄方式管理服務(wù)是最普遍的管理方法之一,一旦目標(biāo)板系統(tǒng)連接網(wǎng)絡(luò)后,Telnet協(xié)議是存取目標(biāo)板的最直接有效的方法。啟用遠(yuǎn)程登錄功能,必須執(zhí)行Telnet監(jiān)控程序。能夠在嵌入式Linux系統(tǒng)中運(yùn)行的Telnet有兩種:telnetd和utelnetd。系統(tǒng)資源的豐富與否將決定我們選擇哪個(gè)Telnet程序,如果我們資源非常有限,我們可以選擇utelnet。Telnet的登錄管理方法不是安全的管理方式,尤其在Internet上使用。
5 結(jié)束語(yǔ)
總之,嵌入Linux系統(tǒng)設(shè)計(jì)產(chǎn)品要想得到更快速和更廣泛的普及,它必須要有很好的網(wǎng)絡(luò)應(yīng)用和網(wǎng)絡(luò)服務(wù)。本文通過(guò)對(duì)Inter Super-Server、SNMP和Telnet三種服務(wù)的安裝過(guò)程進(jìn)行了闡述,為開(kāi)發(fā)人員提供了基礎(chǔ)服務(wù)安裝的指導(dǎo),同時(shí)也對(duì)嵌入式系統(tǒng)中網(wǎng)絡(luò)服務(wù)的發(fā)展提供了依據(jù)。
[參考文獻(xiàn)]
[1]馬坤,楊波.Telnet協(xié)議在網(wǎng)管系統(tǒng)中的應(yīng)用[J].信息技術(shù)與信息化, 2006(04).
[2]裴鵬真,孫運(yùn)強(qiáng).網(wǎng)絡(luò)管理中一種Telnet用戶帳戶截獲的穩(wěn)定方法[J]. 信息技術(shù),2008(05).
[3]張建軍,陳志雄,韓江洪,張利.Linux平臺(tái)下串行口全雙工通訊的實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2003(02).
[4]馬龍,張思東,張宏科.SNMP代理軟件在IPv6環(huán)境下的實(shí)現(xiàn)[J].中國(guó)數(shù)據(jù)通信,2003(08).
[5]許晨輝.嵌入式軟構(gòu)件技術(shù)的研究與應(yīng)用[D].西北工業(yè)大學(xué),2003.