http://www.kadhoai.com.cn 2026-04-08 14:21:45 來源: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,開發人員還必須認識到其調試/開發工具的能力和局限。
充分發揮嵌入式Linux免(mian)費(fei)發(fa)行(xing)版(ban)的(de)優(you)勢(shi),已(yi)經(jing)成(cheng)為(wei)消(xiao)費(fei)產(chan)品(pin)領(ling)域(yu)被(bei)廣(guang)泛(fan)接(jie)收(shou)的(de)現(xian)實(shi)。在(zai)這(zhe)些(xie)市(shi)場(chang)上(shang),產(chan)品(pin)運(yun)行(xing)率(lv)非(fei)常(chang)高(gao),對(dui)代(dai)碼(ma)的(de)改(gai)善(shan)更(geng)新(xin)非(fei)常(chang)頻(pin)繁(fan),而(er)且(qie)產(chan)品(pin)的(de)銷(xiao)售(shou)成(cheng)本(ben)至(zhi)關(guan)重(zhong)要(yao),所(suo)有(you)這(zhe)些(xie)都(dou)使(shi)得(de)開(kai)源(yuan)模(mo)式(shi)極(ji)具(ju)吸(xi)引(yin)力(li)。但(dan)是(shi),能(neng)集(ji)成(cheng)開(kai)源(yuan)/免費軟件,還可為處理器內核提供無縫調試環境的工具要求對內核和SoC元件互動有深刻的了解。
現在有若幹種“免費軟件”調試解決方案,設計人員需要全麵了解其局限性。比如,針對Linux內核最常用免費軟件調試器是KGDB。KGDBdezhuyaoquedianshiyaoqiuzhongxinbianyineihe。zheduinaxieyijingzaishichangshangtongyongdechanpinyingyonglaishuochanbingbuzongshikexingde。xiubuneihehaikenengyinruyingxiangxitongxingnengdedaimabianhua。
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內核多核支持和優化都必須能夠正確識別所使用的內核,並妥善初始化和無縫實現特定的多核功能。必須明白,執行基於34K器qi件jian的de任ren務wu共gong享xiang模mo型xing時shi,一yi個ge物wu理li內nei核he實shi際ji上shang是shi以yi多duo於yu一yi個ge虛xu擬ni內nei核he的de形xing式shi出chu現xian的de,這zhe些xie內nei核he並bing不bu會hui自zi動dong進jin行xing一yi致zhi性xing管guan理li。這zhe種zhong多duo核he環huan境jing在zai某mou些xie情qing況kuang下xia比bi較jiao適shi合heAMP環境,如每個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的deAC 供電係統中。目前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個geCPC塊的功能還必須擴展至Linux內核。我們現在正在構建這個電源管理結構的基礎,以實現針對 Linux內核本身及在標準Linux應用領域下運行的其他應用的全麵API。
Linux開發工具
當考慮處理器對OS的支持時,開發工具很重要。
備受稱讚的內核評測工具是Linux事件分析器,能夠剖析整個係統。通常這些工具可捕獲目標內發生的用戶選擇的 Linux 事件,然後根據時間通過圖形顯示這些事件。這些捕獲有時能夠收集高達20秒的 Linux係統活動。
不管應用如何,開發者都應該確保他們選擇的處理器架構包含一個無縫的開發環境,包括編譯器、調試器、性能和剖析工具。這種性質的工具必須滿足上市時間要求,並從一個嵌入式係統設計中獲取最大的性能。