http://kadhoai.com.cn 2026-04-26 22:00:06 來源:Rick Leatherman
編者語:Linux 正廣泛應用於各種嵌入式設備的開發中,如數字電視、機頂盒、DVR播放器、xDSL/有線/PON調製解調器、家用路由器和網關。它尤其適合具有先進網絡功能、大量設備驅動程序和免版稅運行時間的數字家庭和家庭網絡。除了嵌入式設備,Linux 還支持企業級設備,如服務器和路由器。
今天,Linux 正廣泛應用於各種嵌入式設備的開發中,如數字電視、機頂盒、DVR播放器、xDSL/有線/PON調製解調器、家用路由器和網關。它尤其適合具有先進網絡功能、大量設備驅動程序和免版稅運行時間的數字家庭和家庭網絡。除了嵌入式設備,Linux 還支持企業級設備,如服務器和路由器。
Linux在移動設備中也獲得了青睞。In-Stat的報告顯示,移動Linux將牢牢抓住中國巨大的市場占有率。該機構認為,到2012年,中國基於移動Linux的智能手機總發貨量將達到中國智能手機總出貨量的25.4%。
不斷改進的Linux內核
Linux當麵對特定的嵌入式應用時仍存在很多挑戰,包括那些內存空間小或實時確定性以及安全性能要求高的應用。工具鏈的改進、新的調試工具和性能、不斷為標準化演變的努力等,都將繼續提升Linux對於所有嵌入式應用的價值。在這其中,Linux內核的不斷改進異常重要。
Linux內核是應用軟件采用的標準Linux API和處理器係統(應用軟件運行其上)底di層ceng硬ying件jian結jie構gou之zhi間jian的de接jie口kou。該gai內nei核he是shi內nei部bu元yuan件jian和he外wai部bu可ke加jia載zai模mo塊kuai的de複fu雜za組zu合he。在zai開kai機ji啟qi動dong期qi間jian,內nei核he必bi須xu及ji時shi發fa現xian,並bing正zheng確que布bu置zhi核he心xin係xi統tong處chu理li器qi、係統存儲器、硬盤、視頻卡、USB端口、網卡和音頻處理器,而且要在開機啟動期間提供足夠的顯示表明成功與否。
維持如此複雜的代碼收集很明顯是一個嚴峻的挑戰。內核源代碼被劃分為標準“樹”jiegou,zheyangzixitongjiunenggougenghaodibicigeli,youzhuyushixianjigeguanjianneiheweihugongzuodefenbu。zhezhongfengongkeyizuidaxiandudijianshaoneihemouyibufenfashengzhongdabianhuaduiqitabufenchanshengdeyingxiang。meigehouxuzixitongdegaibianchuandageizhuyaoguanliyuan,zuizhongdaodaLinux內核最上遊的管理員。這些變化被稱為“修補(patch)”,在標準格式下創建和應用。
供應商和開發人員將他們的知識反饋到開源社群以改進內核。Linux開放、分散的本質,再加上背後強大的社群支持,使基於Linux的OS成為培養創新的良好選擇。

為下一個項目計劃的Linux操作係統
“免費”使用,但並非“零”成本
除了決定使用商用還是免費發行版Linux,開發人員還必須認識到其調試/開發工具的能力和局限。
充分發揮嵌入式Linuxmianfeifaxingbandeyoushi,yijingchengweixiaofeichanpinlingyubeiguangfanjieshoudexianshi。zaizhexieshichangshang,chanpinyunxinglvfeichanggao,duidaimadegaishangengxinfeichangpinfan,erqiechanpindexiaoshouchengbenzhiguanzhongyao,suoyouzhexiedoushidekaiyuanmoshijijuxiyinli。danshi,nengjichengkaiyuan/免費軟件,還可為處理器內核提供無縫調試環境的工具要求對內核和SoC元件互動有深刻的了解。
現在有若幹種“免費軟件”調試解決方案,設計人員需要全麵了解其局限性。比如,針對Linux內核最常用免費軟件調試器是KGDB。KGDB的(de)主(zhu)要(yao)缺(que)點(dian)是(shi)要(yao)求(qiu)重(zhong)新(xin)編(bian)譯(yi)內(nei)核(he)。這(zhe)對(dui)那(na)些(xie)已(yi)經(jing)在(zai)市(shi)場(chang)上(shang)通(tong)用(yong)的(de)產(chan)品(pin)應(ying)用(yong)來(lai)說(shuo)產(chan)並(bing)不(bu)總(zong)是(shi)可(ke)行(xing)的(de)。修(xiu)補(bu)內(nei)核(he)還(hai)可(ke)能(neng)引(yin)入(ru)影(ying)響(xiang)係(xi)統(tong)性(xing)能(neng)的(de)代(dai)碼(ma)變(bian)化(hua)。
GDBServer是另一個麵向應用調試的頗受歡迎的免費軟件調試器,但它主要問題是缺乏對同時調試大量線程/進程的支持。隨著調試的線程/進程數不斷增加,GDBServer性能迅速惡化,導致反應時間太慢,進而使目標係統出現故障。其他問題還涉及到:不能在相同的目標連接上調試驅動程序和應用;調試設備驅動程序和調試共享庫。
Linux內核的維護
開發人員在決定將選擇哪種OS時,重要的是選擇一個完全支持其特定處理器的操作係統,並能夠降低總成本和縮短上市時間。
從處理器供應商的角度來看,積極參與與其內核相關的Linux內核的維護非常重要。
作為處理器IP公司,MIPS科技公司必須確保其新的處理器內核正確集成到Linux源代碼樹,而且所有的改變都通過對舊內核和平台的回歸測試進行正確驗證。
由於MIPS IP內核是專有內核,對於MIPS和Linux社區來說最有益的,是確保MIPS內核的所有性能和電源管理特性能夠在Linux內核中完全實現。
對新內核設計的支持不能破壞現有內核支持結構或降低其性能,而且還必須允許現有客戶快速轉移到新內核技術。MIPS內核的可配置性使得對Linux內核代碼庫的維護更富挑戰,因為許多內核配置組合必須經過測試,以確保新增加的功能在所有組合中操作正常。
內核優化1:多核支持
現在,為了實現最佳單位麵積計算能力(MIPS/每平方毫米)和最佳單位功耗計算能力(MIPS/mW),許多處理器都利用了多核技術,在幾個以較低時鍾頻率運行的內核間分配處理負載。這些應用能夠以對稱多處理(SMP)的方式進行分配,其中一項任務是內核間的基本平分;或者采用非對稱多處理(AMP),在這裏特定任務被分配給一個特定內核。不論是哪種方式,Linux內核中必須有適當的支持允許實現這些編程模型,同時對應用開發者盡可能的透明。
MIPS科技的多線程34K內核和多線程/多處理1004K內核所要求的方式,與內核內的多核管理方法略微不同,因為34K內核能夠在單一內核的物理實例中提供多個虛擬內核或虛擬處理單元(VPE),而1004K內核則可提供多核器件的一致執行。
對於每個內核,我們執行的Linux內核多核支持和優化都必須能夠正確識別所使用的內核,並妥善初始化和無縫實現特定的多核功能。必須明白,執行基於34Kqijianderenwugongxiangmoxingshi,yigewulineiheshijishangshiyiduoyuyigexunineihedexingshichuxiande,zhexieneihebingbuhuizidongjinxingyizhixingguanli。zhezhongduohehuanjingzaimouxieqingkuangxiabijiaoshiheAMP環境,如每個VPE 運行一個獨立操作係統。1004K 內核真正的一致性多核設計使傳統的SMP模式更具吸引力,在這裏一個操作係統可以完全控製兩個內核。
內核優化2:電源管理
在(zai)今(jin)天(tian)的(de)綠(lv)色(se)計(ji)算(suan)環(huan)境(jing)中(zhong),電(dian)源(yuan)管(guan)理(li)日(ri)漸(jian)重(zhong)要(yao),不(bu)僅(jin)體(ti)現(xian)在(zai)要(yao)求(qiu)最(zui)大(da)限(xian)度(du)延(yan)長(chang)電(dian)池(chi)壽(shou)命(ming)的(de)便(bian)攜(xie)式(shi)設(she)備(bei)方(fang)麵(mian),而(er)且(qie)體(ti)現(xian)在(zai)需(xu)要(yao)盡(jin)量(liang)減(jian)少(shao)能(neng)源(yuan)浪(lang)費(fei)和(he)熱(re)量(liang)的(de)AC 供電係統中。目前Linux內核電源管理支持主要集中在通過ACPI的標準 PC。但是ACPI 接口並不適合先進的多核SoC,因為後者必須將一致性電源管理方案擴展至多個內核、內部SoC外設以及最後的外部係統外設(如 RF 功率放大器)。
在MIPS,我們執行了一個先進的電源管理IP塊,稱為組群電源控製器(CPC),在具體的1004K執(zhi)行(xing)中(zhong),它(ta)允(yun)許(xu)對(dui)每(mei)個(ge)內(nei)核(he)的(de)單(dan)獨(du)控(kong)製(zhi),使(shi)內(nei)核(he)可(ke)以(yi)進(jin)入(ru)或(huo)離(li)開(kai)一(yi)致(zhi)性(xing)操(cao)作(zuo),並(bing)在(zai)需(xu)要(yao)的(de)情(qing)況(kuang)下(xia)徹(che)底(di)關(guan)掉(diao)電(dian)源(yuan)。這(zhe)樣(yang)的(de)電(dian)源(yuan)管(guan)理(li)模(mo)式(shi)能(neng)夠(gou)進(jin)一(yi)步(bu)擴(kuo)展(zhan),使(shi)內(nei)核(he)電(dian)壓(ya)和(he)頻(pin)率(lv)調(tiao)製(zhi)處(chu)於(yu)操(cao)作(zuo)係(xi)統(tong)本(ben)身(shen)的(de)控(kong)製(zhi)之(zhi)下(xia)。這(zhe)個(ge)CPC塊的功能還必須擴展至Linux內核。我們現在正在構建這個電源管理結構的基礎,以實現針對 Linux內核本身及在標準Linux應用領域下運行的其他應用的全麵API。
Linux開發工具
當考慮處理器對OS的支持時,開發工具很重要。
備受稱讚的內核評測工具是Linux事件分析器,能夠剖析整個係統。通常這些工具可捕獲目標內發生的用戶選擇的 Linux 事件,然後根據時間通過圖形顯示這些事件。這些捕獲有時能夠收集高達20秒的 Linux係統活動。
不管應用如何,開發者都應該確保他們選擇的處理器架構包含一個無縫的開發環境,包括編譯器、調試器、性能和剖析工具。這種性質的工具必須滿足上市時間要求,並從一個嵌入式係統設計中獲取最大的性能。