全球最大的嵌入Linux套件發行商美國MontaVista軟體公司,日前成功開發出了通過加入具有優先權繼承功能的互斥程式(mutex)而提高應答效能的嵌入Linux核心。普通Linux核心的最長應答時間約為100ms,而此次開發的Linux核心則實現了數十μs。普通即時OS的最長應答時間為數μs,也就是說已經將應答效能提高到了可與即時OS抗衡的水平。該公司技術副總裁Kevin Morgan充滿自信地表示:“這樣就有望取代即時OS。在嵌入領域已經不存在Linux不能滿足使用需求的領域。”
現在的嵌入Linux絕大多數採用可在核心執行路徑的中途進行任務切換的搶先式核心。採用搶先式核心以後,與不採用此核心的普通Linux核心相比,可將應答效能的平均值縮短到1/10以下。但是,對於縮短最長應答時間則沒有任何作用。因此,在應答效能要求較短的通訊控制用途等方面無法採用 Linux。
用互斥程式取代自旋鎖
此次開發的Linux核心,通過利用具有優先權繼承功能的互斥程式,取代過去的搶先式核心中用於保護臨界區的自旋鎖,縮短了最長應答時間。互斥程式是一種μITRON等普通即時OS普遍具有的功能,是一種要想提高Linux應答效能就會考慮採用的技術。MontaVista公司的Morgan 表示:“加入具有優先權繼承功能的互斥程式後,有一個缺點是線程鎖定時判斷優先權的程式會產生開銷。因此,過去一直都不採用互斥程式。”如果是自旋鎖,則只需單純地等待任務即可,因此與互斥程式相比應用起來更為簡潔。
取消手機即時OS,支援多核心
MontaVista公司的目標是將此次開發的Linux核心主要應用於手機。現有的手機絕大多數由基帶處理晶片和應用處理器單獨運行不同的 OS。因為通過與基站通訊進行呼叫控制的基帶處理晶片要求具有較短的應答時間,過去的Linux不能滿足要求。比如,安裝Linux的NEC手機, Linux目前是在應用處理器上運行,而基帶處理晶片則運行μITRON。
如果能在應用處理器上運行此次開發的具有優先權繼承功能的Linux核心,就有可能可將過去由基帶處理晶片所做的呼叫控制處理移交給應用處理器。這樣,就可以取消現有的即時OS。由於OS只有Linux一種,因此不僅開發效率有望提高,通過省去基帶處理晶片,“還有助於降低手機的生產成本。” (Morgan)另外,由於此次開發的Linux核心還支援對稱式多處理器架構(SMP),因此假如使用多核心應用處理器,就能在保持整個處理效能的情況下,省去基帶處理晶片。
MontaVista公司對於此次開發的Linux核心,準備通過公開原始碼,吸引開發商加入開發團體,以便今後仍能繼續加以改進。此計劃的網站請點擊此處。另外,美國Timesys公司也在自主開發應答效能與該Linux核心相同的Linux核心,不過“不是開放源碼,希望以此突出自身的特點。”( MontaVista公司Morgan)