Linux在移動設備中也獲得了青睞。In-Stat的報告顯示,移動Linux將牢牢抓住中國巨大的市場占有率。該機構認為,到2012年,中國基于移動Linux的智能手機總發(fā)貨量將達到中國智能手機總出貨量的25.4%。
不斷改進的Linux內核
Linux當面對特定的嵌入式應用時仍存在很多挑戰(zhàn),包括那些內存空間小或實時確定性以及安全性能要求高的應用。工具鏈的改進、新的調試工具和性能、不斷為標準化演變的努力等,都將繼續(xù)提升Linux對于所有嵌入式應用的價值。在這其中,Linux內核的不斷改進異常重要。
Linux內核是應用軟件采用的標準Linux API和處理器系統(tǒng)(應用軟件運行其上)底層硬件結構之間的接口。該內核是內部元件和外部可加載模塊的復雜組合。在開機啟動期間,內核必須及時發(fā)現(xiàn),并正確布置核心系統(tǒng)處理器、系統(tǒng)存儲器、硬盤、視頻卡、USB端口、網(wǎng)卡和音頻處理器,而且要在開機啟動期間提供足夠的顯示表明成功與否。
維持如此復雜的代碼收集很明顯是一個嚴峻的挑戰(zhàn)。內核源代碼被劃分為標準“樹”結構,這樣子系統(tǒng)就能夠更好地彼此隔離,有助于實現(xiàn)幾個關鍵內核維護工作的分布。這種分工可以最大限度地減少內核某一部分發(fā)生重大變化對其他部分產生的影響。每個后續(xù)子系統(tǒng)的改變傳達給主要管理員,最終到達Linux內核最上游的管理員。這些變化被稱為“修補(patch)”,在標準格式下創(chuàng)建和應用。
供應商和開發(fā)人員將他們的知識反饋到開源社群以改進內核。Linux開放、分散的本質,再加上背后強大的社群支持,使基于Linux的OS成為培養(yǎng)創(chuàng)新的良好選擇。
F1:為下一個項目計劃的Linux操作系統(tǒng)。資料來源:VDC,2007 年
“免費”使用,但并非“零”成本
除了決定使用商用還是免費發(fā)行版Linux,開發(fā)人員還必須認識到其調試/開發(fā)工具的能力和局限。
充分發(fā)揮嵌入式Linux免費發(fā)行版的優(yōu)勢,已經成為消費產品領域被廣泛接收的現(xiàn)實。在這些市場上,產品運行率非常高,對代碼的改善更新非常頻繁,而且產品的銷售成本至關重要,所有這些都使得開源模式極具吸引力。但是,能集成開源/免費軟件,還可為處理器內核提供無縫調試環(huán)境的工具要求對內核和SoC元件互動有深刻的了解。
現(xiàn)在有若干種“免費軟件”調試解決方案,設計人員需要全面了解其局限性。比如,針對Linux內核最常用免費軟件調試器是KGDB。KGDB的主要缺點是要求重新編譯內核。這對那些已經在市場上通用的產品應用來說產并不總是可行的。修補內核還可能引入影響系統(tǒng)性能的代碼變化。
GDBServer是另一個面向應用調試的頗受歡迎的免費軟件調試器,但它主要問題是缺乏對同時調試大量線程/進程的支持。隨著調試的線程/進程數(shù)不斷增加,GDBServer性能迅速惡化,導致反應時間太慢,進而使目標系統(tǒng)出現(xiàn)故障。其他問題還涉及到:不能在相同的目標連接上調試驅動程序和應用;調試設備驅動程序和調試共享庫。[!--empirenews.page--]
Linux內核的維護
開發(fā)人員在決定將選擇哪種OS時,重要的是選擇一個完全支持其特定處理器的操作系統(tǒng),并能夠降低總成本和縮短上市時間。
從處理器供應商的角度來看,積極參與與其內核相關的Linux內核的維護非常重要。
作為處理器 IP 公司,MIPS科技公司必須確保其新的處理器內核正確集成到Linux源代碼樹,而且所有的改變都通過對舊內核和平臺的回歸測試進行正確驗證。
由于MIPS IP內核是專有內核,對于MIPS和Linux社區(qū)來說最有益的,是確保MIPS內核的所有性能和電源管理特性能夠在Linux內核中完全實現(xiàn)。
對新內核設計的支持不能破壞現(xiàn)有內核支持結構或降低其性能,而且還必須允許現(xiàn)有客戶快速轉移到新內核技術。MIPS內核的可配置性使得對Linux內核代碼庫的維護更富挑戰(zhàn),因為許多內核配置組合必須經過測試,以確保新增加的功能在所有組合中操作正常。
內核優(yōu)化1:多核支持
現(xiàn)在,為了實現(xiàn)最佳單位面積計算能力(MIPS/每平方毫米)和最佳單位功耗計算能力(MIPS/mW),許多處理器都利用了多核技術,在幾個以較低時鐘頻率運行的內核間分配處理負載。這些應用能夠以對稱多處理(SMP)的方式進行分配,其中一項任務是內核間的基本平分;或者采用非對稱多處理(AMP),在這里特定任務被分配給一個特定內核。不論是哪種方式,Linux內核中必須有適當?shù)闹С衷试S實現(xiàn)這些編程模型,同時對應用開發(fā)者盡可能的透明。
MIPS科技的多線程34K內核和多線程/多處理1004K內核所要求的方式,與內核內的多核管理方法略微不同,因為34K內核能夠在單一內核的物理實例中提供多個虛擬內核或虛擬處理單元(VPE),而1004K內核則可提供多核器件的一致執(zhí)行。
對于每個內核,我們執(zhí)行的Linux內核多核支持和優(yōu)化都必須能夠正確識別所使用的內核,并妥善初始化和無縫實現(xiàn)特定的多核功能。必須明白,執(zhí)行基于34K器件的任務共享模型時,一個物理內核實際上是以多于一個虛擬內核的形式出現(xiàn)的,這些內核并不會自動進行一致性管理。這種多核環(huán)境在某些情況下比較適合AMP環(huán)境,如每個VPE 運行一個獨立操作系統(tǒng)。1004K 內核真正的一致性多核設計使傳統(tǒng)的SMP模式更具吸引力,在這里一個操作系統(tǒng)可以完全控制兩個內核。
內核優(yōu)化2:電源管理
在今天的綠色計算環(huán)境中,電源管理日漸重要,不僅體現(xiàn)在要求最大限度延長電池壽命的便攜式設備方面,而且體現(xiàn)在需要盡量減少能源浪費和熱量的AC 供電系統(tǒng)中。目前Linux內核電源管理支持主要集中在通過ACPI的標準 PC。但是ACPI 接口并不適合先進的多核SoC,因為后者必須將一致性電源管理方案擴展至多個內核、內部SoC外設以及最后的外部系統(tǒng)外設(如 RF 功率放大器)。
在MIPS,我們執(zhí)行了一個先進的電源管理IP塊,稱為組群電源控制器(CPC),在具體的1004K執(zhí)行中,它允許對每個內核的單獨控制,使內核可以進入或離開一致性操作,并在需要的情況下徹底關掉電源。這樣的電源管理模式能夠進一步擴展,使內核電壓和頻率調制處于操作系統(tǒng)本身的控制之下。這個CPC塊的功能還必須擴展至Linux內核。我們現(xiàn)在正在構建這個電源管理結構的基礎,以實現(xiàn)針對 Linux內核本身及在標準Linux應用領域下運行的其他應用的全面API。
F2: 組群電源控制器允許在特定的多核實現(xiàn)中對每個內核進行單獨控制
Linux 開發(fā)工具
當考慮處理器對OS的支持時,開發(fā)工具很重要。
備受稱贊的內核評測工具是Linux事件分析器,能夠剖析整個系統(tǒng)。通常這些工具可捕獲目標內發(fā)生的用戶選擇的 Linux 事件,然后根據(jù)時間通過圖形顯示這些事件。這些捕獲有時能夠收集高達20秒的 Linux系統(tǒng)活動。
不管應用如何,開發(fā)者都應該確保他們選擇的處理器架構包含一個無縫的開發(fā)環(huán)境,包括編譯器、調試器、性能和剖析工具。這種性質的工具必須滿足上市時間要求,并從一個嵌入式系統(tǒng)設計中獲取最大的性能。