淺淡嵌入式系統中使用Linux
譯文【51CTO.com快譯】
Linux是嵌入式系統中廣泛使用的操作系統,它用于手機、電視機、機頂盒、汽車控制臺和智能家居設備等。不過就因為它用途廣泛并不意味著一定適合您。本文概述何時以及為何將Linux用作適合嵌入式系統的操作系統。
1. Linux免版稅
由于Linux免版稅,因此吸引很多人。要明確的是,還有與使用它有關的其他成本。Linux不是安裝后不用操心的操作系統,它需要關注。其他專有的操作系統一樣,不過區別在于,如果是專有操作系相比,您掏錢請供應商予以關注。
這就像汽車的“實際擁有成本”。有些人看了標價后以為這就是汽車的成本。但是實際成本包括油費、保險費、維護費和維修費。對于操作系統而言,成本包括每個席位的許可費、創建驅動程序的成本、修復錯誤的成本以及請開發人員針對特定設備開發應用程序的成本。使用供應商可能會招致所有這些成本。除了許可費外,Linux可以省下很多錢。
2. Linux開源
Linux是開源的,可讓您全權控制產品開發。換成專有操作系統,如果有重要的錯誤需要修復,您與供應商合作以修復錯誤。然而,供應商的優先事項常常與您的優先事項不完全一致。您臨近截止日期對供應商而言可能不那么重要,您在對方何時解決問題方面的控制權也很小。另一方面,如果是Linux,要做的就是雇用一些內核開發人員來解決該問題。
除了對自己的日程安排有更大的控制權外,開源的Linux使你可以利用他人的工作成果。多年前,我供職于一家制造NAS設備的公司。我們有約15名開發人員,我們的團隊開發了一款很出色的操作系統,有大量出色的功能。但隨著時間的流逝,Linux在某些功能上趕上了我們,然后在一些方面超越了我們。我們的團隊即使只關注公司關心的功能,也跟不上開源社區成千上萬人的步伐。
3. Linux可滿足要求
Linux支持幾乎任何人都想要的所有編程語言、庫、服務和工具,即使對于嵌入式系統也是如此。如果您想使用Python、php、C、C++、.Net、Ada、Per、Go或Java,Linux可滿足要求。如果您需要Web服務器,Linux可滿足要求。如果您需要通過USB與設備通信或創建USB設備,Linux可滿足要求。如果您需要圖形化工具箱,Linux可滿足要求。
如果使用Linux,您并不僅限于某些工具和服務。
4. Linux支持硬件
Linux很有可能已經支持您的硬件平臺。如果您針對SoC、SoM或另一種常見的嵌入式平臺進行開發,Linux很可能支持它。Linux支持ARM、PowerPC和MIPS,當然還支持X86等。
當然,如果您有定制硬件,Linux可能不支持該硬件,但是您可以隨意開發支持該硬件的Linux驅動程序,而且與借助操作系統供應商相比,您能夠以極快的速度創建驅動程序。
5. 開發人員熟知
由于Linux問世已有多年,許多開發人員已經熟悉它。如果您將Linux用于嵌入式系統,很容易雇用或聯系已經熟悉Linux的開發人員。您不需要花時間讓開發人員完成學習過程以熟悉該系統。
這些開發人員可能還擁有解決他們過去項目中類似問題方面的經驗。他們會說:“哦,我在某家公司工作時,我們這樣解決了這個問題。”
6. Linux備受關注
Linux被很多人使用,源代碼被很多開發人員查看。許多錯誤已經解決掉。發現錯誤后,它們往往會在幾天內迅速得到修復。如果您使用比較流行的硬件平臺——許多人關注和開發該代碼庫,尤其如此。
7. Linux使用標準
Linux符合許多標準:POSIX、BSD、SVr4和FHS等。這意味著您不會被Linux鎖定。如果由于某種原因您覺得另一種選擇更適合,遷移應用程序會容易得多,因為它們會使用標準接口。
Linux對于許多嵌入式系統很有用。然而,對于使用低端硬件的嵌入式系統而言,Linux并非總是最佳選擇。如果硬件平臺性能低下,使用調度程序運行多項任務,可能無法很好地運行Linux。
總而言之,雖然Linux并非對每個嵌入式平臺都盡善盡美,但對于眾多嵌入式系統來說是不錯的選擇,它的確已經用于許多嵌入式平臺中。
原文標題:An Introduction to Using Linux in Embedded Systems,作者:John Bonesio
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】