單Linux電信基站軟件解決方案
自從1991年Linux第一次面世以來,任何人也不會想到這個不起眼的操作系統(tǒng)現(xiàn)在會應用得如此廣泛。無論是從嵌入式領域的智能手機到大型計算服務器都可以找到它的身影,而且無論什么工作它都完成得非常出色,因為Linux的開放性決定了其自身可以根據(jù)使用領域而高度定制。作為一個開源軟件,當前業(yè)界的工業(yè)標準可以最快地支持任何剛發(fā)布的硬件產(chǎn)品。同時,被世界各地的商業(yè)公司和志愿者一起參與開發(fā)和測試,它也變成了十分穩(wěn)定的操作系統(tǒng)之一。
本文引用地址:http://cafeforensic.com/article/148489.htmLinux的設計原則決定了它的無所不能,但是對于特定領域它并不是最優(yōu)的解決方案。同樣對于嵌入式電信領域來說,為了追求滿足電信領域的高實時性和高吞吐量要求,大家一般都采用傳統(tǒng)的RTOS+Linux+運行環(huán)境。
在傳統(tǒng)架構中(參見圖1),數(shù)據(jù)面處理采用RTOS+CPU/DSP方式,主要處理底層協(xié)議數(shù)據(jù)業(yè)務,通過RTOS的高實時性及多核CPU/DSP來達到性能需求。Linux自身的實時性較差,但是比較適合于高負載的復雜協(xié)議處理,因此一般用于完成用戶控制平面協(xié)議的處理和IP轉(zhuǎn)發(fā)等功能。這個方案在性能上可以保證電信產(chǎn)品的使用需求,但系統(tǒng)中存在多個處理器和多個不同操作系統(tǒng)平臺,對于用戶的維護和后續(xù)升級管理帶來很大負擔,同時也無法滿足當前的低成本和低功耗要求。
圖1:典型的電信基站系統(tǒng)結構圖。
隨著近年來處理器硬件技術的飛速發(fā)展,處理器的能力越來越強,多核平臺已經(jīng)廣泛地應用在電信領域,尤其是在ARM公司將 Cortex A15引入電信基站領域后,整合單芯片解決方案將成為業(yè)界主流。但是軟件領域的發(fā)展相對滯后,尤其是如何在SoC單芯片硬件環(huán)境下保證用戶已有成熟業(yè)務軟件的繼承使用,是每一個電信設備制造商關心的問題。
最簡單的解決方案是如圖2將Linux和RTOS按照AMP方式獨立運行在多核CPU的不同核上。這種方案可以保證高實時能力,同時可以避免用戶應用軟件的修改。但是該方案最大的問題是兩個操作系統(tǒng)要求在硬件資源使用上獨占,需要在使用前靜態(tài)分配好,系統(tǒng)運行后則無法動態(tài)分配,沒有辦法做到資源共享。同一個硬件環(huán)境下同時運行兩個獨立的系統(tǒng)也帶來了運行安全方面的隱患。綜上所述,AMP方案前期設計簡單,方便于先前成熟軟件集成,但是后期維護成本較高,同時造成了硬件資源的浪費。
圖2:AMP解決方案架構圖。
Linux KVM是基于Linux內(nèi)核的虛擬機制,通過KVM可以在其上虛擬出原有RTOS所需要的運行環(huán)境(參見圖3)。例如我們可以將原有業(yè)務軟件以及原有的RTOS一同移植到KVM的虛擬環(huán)境中,這種方式對業(yè)務應用軟件不需要任何修改。同時,整個系統(tǒng)硬件資源也由Linux統(tǒng)一分配,相對AMP方案避免了硬件資源的浪費。KVM機制可以做到系統(tǒng)的安全隔離,保證了電信系統(tǒng)的運行安全。但是該方案存在實時性較差(尤其是運行在Linux內(nèi)核上RTOS的實時性),很難應用于電信協(xié)議等時隙要求較高的場合。
圖3:Linux KVM解決方案。
如何在Linux基礎上提供更加高效的實時處理能力,同時又簡化多操作系統(tǒng)并存帶來的軟件復雜性?為此,Enea(宜能)公司在用戶空間實現(xiàn)了LWRT(Light-weight Run-time Threading,輕量級運行環(huán)境)。LWRT是針對多核使用場景設計的,它基于Linux用戶空間的標準Pthread作為運行載體,并在此基礎上實現(xiàn)了可確定的調(diào)度方式、信號機制和內(nèi)存管理。通過這種方式,LWRT內(nèi)部的線程切換和信號處理不再依靠Linux內(nèi)核調(diào)度機制,而是完全在用戶態(tài)的LWRT內(nèi)部實現(xiàn)。這在減少系統(tǒng)開銷的同時,也實現(xiàn)了嚴格意義上的實時切換。圖4描述了基于LWRT電信基站軟件架構。
圖4:LWRT多核解決方案。
為了保證整個LWRT的實時性,我們需要將其承載的容器Linux Pthread綁定到一個物理內(nèi)核上,通過這種方式使LWRT像單獨運行在這個物理內(nèi)核的傳統(tǒng)RTOS一樣。同時,我們在LWRT上設計了用戶態(tài)中斷處理模型,將整個中斷處理過程放在用戶態(tài)進行。在Linux內(nèi)核只需要在上半部中向LWRT發(fā)出中斷信號,而所有的下半部處理完全實現(xiàn)在用戶態(tài)的LWRT中。整個中斷處理不再有內(nèi)核互斥鎖的影響,從而保證了高實時處理能力。
先進的設計保證了高效的性能,在一個實際測試環(huán)境中對于一個簡單的信號觸發(fā)-線程切換-信號接收的線程切換模型,LWRT可以在不超過200個周期內(nèi)完成,且該數(shù)據(jù)不會隨著CPU占用率增高而受到影響,而在同一硬件條件下,采用Linux標準線程完成同樣的切換動作需要大約3500個時鐘周期,測試解決見圖5.整個切換過程達到了高實時性要求。Linux上將不再只是運行控制面代碼,用戶完全可以將數(shù)據(jù)面處理遷移到Linux上?;谶@種方案我們將不再需要RTOS,而是將RTOS的功能基于LWRT來提供。
圖5:LWRT線程切換和Pthread線程切換對比。
目前整個電信領域向IP化發(fā)展,針對于IP數(shù)據(jù)處理,Enea實現(xiàn)了PAX(數(shù)據(jù)包加速基礎)解決方案。PAX同樣運行在Linux的用戶態(tài)。
它實現(xiàn)了基于圖形方式現(xiàn)實的IP報文分析處理流程,在PAX中可以完成IP轉(zhuǎn)發(fā)、IPSec、流量控制和ARP/WLAN網(wǎng)橋,以及數(shù)據(jù)包檢查DPI等IP通訊中最消耗資源的處理。針對于數(shù)據(jù)面的這些處理過程不再依賴于原有Linux內(nèi)核IP協(xié)議棧實現(xiàn),而是由PAX及其相關的硬件加速器一起完成。這樣便將原有Linux IP轉(zhuǎn)發(fā)能力提高數(shù)倍,而非常適合于可擴展、高吞吐量和低時延的IP協(xié)議處理,尤其適用于基于IP的無線基站、控制器、智能防火墻、入侵檢測系統(tǒng)和防病毒掃描網(wǎng)關等產(chǎn)品中。同時,PAX提供的圖像化追蹤(tracing)和分析(profiling)功能可以方面用戶找出系統(tǒng)瓶頸所在,進行針對性優(yōu)化。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論