運行在網絡處理器上的嵌入式Linux系統(tǒng)
摘要:網絡處理器已經可能的未來的多核處理器會將越來越多的應用在從家庭,企業(yè)到核心網絡設備中,LinuxOS正在替代傳統(tǒng)的RTOS運行在這些處理器的控制平面,定義和處理好數據平面和控制平面的接口,豐富的開源和商業(yè)應用軟件和電信級別的高可能性要求是目前需要解決的重要問題。
本文引用地址:http://butianyuan.cn/article/149219.htm引言:
在最近的24個月中,由于供應商組織面臨經濟狀況不景氣,加上IntelIXP和IBMPowerNP,Raza,Cavium,Xilinx等公司的網絡處理器(多核處理器)的出現,使得Linux在基于這些處理器設備的控制和管理層面上有了更多的用武之地。
控制層面包括邏輯和物理接口,它們本身并不傳輸網絡數據,而是啟動,監(jiān)視和控制芯片的傳輸數據活動。在現有的網絡處理器設計當中,像Linux這樣的嵌入式操作系統(tǒng)通常運行在控制層面的處理器上,代表包引擎進行控制操作和事務性處理,實際的網際協(xié)議包(IP包)由專門的芯片進行處理??刂茖用娴奶幚砥骱蛿祿?轉發(fā)層面的包處理引擎之間的連接,可以通過連接協(xié)處理器的本地總線方式,或者直接使用標準的PCI總線,也可以采用以太網或者特殊應用的網絡結構那樣的連接方式。
在本地總線或者PCI總線的情況下,主控處理器將可將轉發(fā)/數據層面的處理器視為專用外設,它具有簡單內存映射接口。在采用網絡方式來連接各層面的情況下,主控處理器必須使用分離的設備驅動設計。首先,結構接口需要一個通用的驅動(以太,異步傳輸等),通過它發(fā)送專門的命令包來控制包處理器。嵌入式Linux具有豐富的網絡功能(以太網和ATM在開源社區(qū)都很容易獲得),與非開源操作系統(tǒng)相比具有顯著的優(yōu)點:無須定制,有現成的內核。這些對于開發(fā)專門的網絡系統(tǒng),即使是以太網驅動都是重要的附加投資。
現成的網絡處理器一直努力地將高性能網絡緊密地與主控處理器捆綁,并與本地連接集成到一起。第一代設計在控制節(jié)點和數據層仍然遇到了帶寬限制的難題-數據包在進出控制層時遇到瓶頸,在網絡處理器內部的并行包引擎也有同樣的問題。此外,實踐證明在功能強大的網絡處理器和復雜的包引擎集上編程非常困難。網絡處理器開發(fā)商在他們的芯片開發(fā)計劃上標明了解決這些問題和推出新一代的庫和工具箱的時間表。
運行Linux的網絡處理器應用
主要的設備制造商將Linux和網絡處理器一起發(fā)布,同時不斷增加應用的數量,特別是網絡基礎件和客戶端設備。
Linux在網絡處理器平臺上的一個重要應用領域是小型辦公,家庭辦公(SOHO)設計,比如接入點,家庭網關和數字媒體服務。這些消費電子領域的設備通常要求高性能和低成本。
許多這樣的設計包括先前遺留下來的實時操作系統(tǒng)平臺。人們對嵌入式Linux能否滿足這些實時性能有些疑問。很多控制層面的應用,更多地關注吞吐量,而并沒有硬實時的需求(拋開先前的實時操作選擇)。較新的,基于網絡處理器的設計很少對控制處理器有及時響應的需求,網絡處理器包含專門的芯片來完成要求及時響應的操作。當控制層面必須滿足嚴格臨界時間要求時,比如在消費電子應用中所使用的路由和橋接到特定的同步接口的技術,在Linux中有多種途徑來達到實時響應的要求,其中包括現在Linux2。6內核里所使用的MontaVista軟件公司的可搶占技術。
在較大型系統(tǒng),比如更復雜的基于IP的系統(tǒng),包括辦公中心和涉及IP技術的基礎設備應用系統(tǒng),高速接入和交換,網絡處理器都采用了有兩層或者更多層控制來進行刀片式設計,并在其上來進行硬件和軟件的管理。大約60%的這種系統(tǒng)要求在數據和控制層面有高級別的冗余。在這種系統(tǒng)中,基于網絡處理器的刀片和基于Linux的控制器被當成低層的,幾乎是‘原子’性的接口,這些接口從屬于故障恢復(fail-over),它們堆疊在一起來獲得高可用性和容錯管理。
這些較高層次的管理層面處理器越來越多地在運行Linux,比如開放源碼開發(fā)實驗室公司(OSDL,Beaverton,Ore。)、MontaVista軟件公司、英特公司(SantaClara,Calif。)等定義和實現的電信級Linux。這些管理層面的CPU管理可用的資源(比如啟動刀片和給他們分配負載)、響應硬件和軟件異常,提供應用橋接到專門的系統(tǒng)(常常運行Linux)-比如帳單系統(tǒng)和客戶數據庫。
網絡處理器開發(fā)的技術挑戰(zhàn)和對策
對于多核微處理器來說,網絡處理器面臨著多種開發(fā)和調試的挑戰(zhàn)。這些挑戰(zhàn)包括以下三個層次:
·開發(fā)和部署運行在網絡處理器上的代碼和包處理算法;
·定義網絡處理器和控制處理器之間的接口;
·開發(fā)控制層面的應用
對于運行嵌入式Linux的控制層面處理器來說,網絡處理器初看起來就像一個巨大、復雜且未被支持的外設。在最簡單的情況下,內核啟動代碼或者驅動程序初始化代碼中會對共享內存和寄存器的組合進行映射,這些寄存器代表了網絡處理器在內核或用戶內存的接口。這樣驅動程序和應用程序就可以同網絡處理器進行交互操作。這種映射關系能夠通過調用用戶層的API、或者直接調用驅動有關的API來終止它,或者也可以終止包含一個分離協(xié)議棧的底部,或者中止建立套接字或者基于流的抽象。。
主要設備制造商指望Linux平臺提供商和構建不斷增長的生態(tài)鏈的獨立軟件提供商,能夠付出努力來建立網絡處理器為基礎的網絡應用。這些由獨立軟件提供商提供的應用模塊有以下幾類:
·包處理算法,橋接口和特定的網絡處理器針對運行在數據層面的網絡引擎開發(fā)工具(包引擎代碼匯編器,仿真器和性能分析器);
·控制和管理層應用單元-簡單網絡管理協(xié)議(SNMP)代理和管理信息(MIBs),Web控制接口等,協(xié)議棧,路由守護進程,控制和數據層接口庫;
·用于類似于家庭網關和安全應用這樣特定應用的大協(xié)議棧;
·用于Linux的其他系統(tǒng)和應用開發(fā)工具。
使用網絡處理器接口和為嵌入式Linux提供IP的公司包括:AshleyLaurent,Hughes,IPInfusion,LVL7Systems,NextHopTechnologies和Motorola的NetplaneSystems,他們提供棧和庫。像Intel和IBM這樣的芯片提供商,還有Teja技術公司這樣的獨立軟件提供商,他們所提供開發(fā)工具填補了用于特殊網絡處理器芯片、特定體系結構的開發(fā)工具的空白。
這些大棧支持和實現了多達90%的網絡處理器應用,它們可能是平臺供應商的附加產品,也可能是小型軟件供應商集成產品。這些棧引起了第二級和第三級設備制造商(OEM)和設計制造商(ODM)的興趣,ODM和OEM的唯一差異是他們的商標或者是價格的不同;這就使網絡設備制造商在可以預計未來的情況下,繼續(xù)進行投資并使得它們自己網絡處理器上的應用不斷升級。
因為許多網絡處理器也將JTAG接口集成到控制處理器和包引擎當中,在某些情況下,開發(fā)者可以使用像AbatronAG,EmbeddedPerformace、WindRiver以及其它公司提供的通用硬件調試器來調試控制層面的有關操作,也可以把程序下載到網絡處理器的包引擎,并和它直接進行交互。
網絡處理器和嵌入式Linux聯姻后,碩果最多的要數Intel的IXP425家族與基于Linux的接入和網絡存儲應用棧。比較好的例子是D-Link媒體存儲中心家用設備。D-Link和其他主要設備制造商(OEM)充分發(fā)揮了Xscale控制/應用處理器和高性能網絡處理器集成的功能。在D-Link的產品中,臺灣的OEM制造商以這種硬件為基礎進行了開發(fā),使用集成的包處理器能很容易地提供快速和安全的以太和無線連接。D-Link將這種硬件平臺,與Linux自帶的路由,多種協(xié)議、多種存儲格式能力結合起來,給消費者提供了即插即用的網絡存儲解決方案。其他最近發(fā)布的基于Linux的網絡處理器應用還包括ThingMagic的RFID系統(tǒng)。
結束語:
將來由于互連網絡的發(fā)展將會有很多針對家庭,SOHO,企業(yè)和基礎設施的應用和網絡處理器+LINUXOS密切相關,它們包括接入點,有線/無線存儲解決方案,虛擬網絡,安全應用,數字用戶線路接入多路復用器和xDSL線卡,網絡打印機,駐留網關,IP/PBXs,SOHO路由器,還有其他一些支持從OC-3到OC-192高速網絡的核心/邊緣應用。
本文參考了BillWeinberg的文章,他現是OSDL的開源架構專家,在OSDL之前是MontaVista市場策略總監(jiān),曾經在MicrotecReseach,Lynuxworks等嵌入式軟件公司任職,有近20年的嵌入式軟件的經驗。
評論