Linux在嵌入式系統(tǒng)中的使用
Linux是在嵌入式系統(tǒng)中使用比較廣泛的操作系統(tǒng),它用于手機(jī)、電視、機(jī)頂盒、汽車控制臺(tái)和智能家居設(shè)備。僅僅因?yàn)樗猛緩V泛,并不意味著它適合您。 本文介紹了何時(shí)以及為何將Linux用作嵌入式系統(tǒng)的操作系統(tǒng)。
1. Linux免版稅
由于Linux免版稅,因此吸引很多人。要明確的是,還有與使用它有關(guān)的其他成本。Linux不是安裝后不用操心的操作系統(tǒng),它需要關(guān)注。其他專有的操作系統(tǒng)一樣,不過區(qū)別在于,如果是專有操作系相比,您掏錢請(qǐng)供應(yīng)商予以關(guān)注。
這就像汽車的“實(shí)際擁有成本”。有些人看了標(biāo)價(jià)后以為這就是汽車的成本。但是實(shí)際成本包括油費(fèi)、保險(xiǎn)費(fèi)、維護(hù)費(fèi)和維修費(fèi)。對(duì)于操作系統(tǒng)而言,成本包括每個(gè)席位的許可費(fèi)、創(chuàng)建驅(qū)動(dòng)程序的成本、修復(fù)錯(cuò)誤的成本以及請(qǐng)開發(fā)人員針對(duì)特定設(shè)備開發(fā)應(yīng)用程序的成本。使用供應(yīng)商可能會(huì)招致所有這些成本。除了許可費(fèi)外,Linux可以省下很多錢。
2. Linux開源
Linux是開源的,可讓您全權(quán)控制產(chǎn)品開發(fā)。換成專有操作系統(tǒng),如果有重要的錯(cuò)誤需要修復(fù),您與供應(yīng)商合作以修復(fù)錯(cuò)誤。然而,供應(yīng)商的優(yōu)先事項(xiàng)常常與您的優(yōu)先事項(xiàng)不完全一致。您臨近截止日期對(duì)供應(yīng)商而言可能不那么重要,您在對(duì)方何時(shí)解決問題方面的控制權(quán)也很小。另一方面,如果是Linux,要做的就是雇傭一些內(nèi)核開發(fā)人員來(lái)解決該問題。
除了對(duì)自己的日程安排有更大的控制權(quán)外,開源的Linux使你可以利用他人的工作成果。多年前,我供職于一家制造NAS設(shè)備的公司。我們有約15名開發(fā)人員,我們的團(tuán)隊(duì)開發(fā)了一款很出色的操作系統(tǒng),有大量出色的功能。但隨著時(shí)間的流逝,Linux在某些功能上趕上了我們,然后在一些方面超越了我們。我們的團(tuán)隊(duì)即使只關(guān)注公司關(guān)心的功能,也跟不上開源社區(qū)成千上萬(wàn)人的步伐。
3. Linux可滿足要求
Linux支持幾乎任何人都想要的所有編程語(yǔ)言、庫(kù)、服務(wù)和工具,即使對(duì)于嵌入式系統(tǒng)也是如此。如果您想使用Python、php、C、C++、.Net、Ada、Per、Go或Java,Linux可滿足要求。如果您需要Web服務(wù)器,Linux可滿足要求。如果您需要通過USB與設(shè)備通信或創(chuàng)建USB設(shè)備,Linux可滿足要求。如果您需要圖形化工具箱,Linux可滿足要求。
如果使用Linux,您并不僅限于某些工具和服務(wù)。
4. Linux支持硬件
Linux很有可能已經(jīng)支持您的硬件平臺(tái)。如果您針對(duì)SoC、SoM或另一種常見的嵌入式平臺(tái)進(jìn)行開發(fā),Linux很可能支持它。Linux支持ARM、PowerPC和MIPS,當(dāng)然還支持X86等。
當(dāng)然,如果您有定制硬件,Linux可能不支持該硬件,但是您可以隨意開發(fā)支持該硬件的Linux驅(qū)動(dòng)程序,而且與借助操作系統(tǒng)供應(yīng)商相比,您能夠以極快的速度創(chuàng)建驅(qū)動(dòng)程序。
5. 開發(fā)人員熟知
由于Linux問世已有多年,許多開發(fā)人員已經(jīng)熟悉它。如果您將Linux用于嵌入式系統(tǒng),很容易雇用或聯(lián)系已經(jīng)熟悉Linux的開發(fā)人員。您不需要花時(shí)間讓開發(fā)人員完成學(xué)習(xí)過程以熟悉該系統(tǒng)。
這些開發(fā)人員可能還擁有解決他們過去項(xiàng)目中類似問題方面的經(jīng)驗(yàn)。他們會(huì)說:“哦,我在某家公司工作時(shí),我們這樣解決了這個(gè)問題?!?
6. Linux備受關(guān)注
Linux被很多人使用,源代碼被很多開發(fā)人員查看。許多錯(cuò)誤已經(jīng)解決掉。發(fā)現(xiàn)錯(cuò)誤后,它們往往會(huì)在幾天內(nèi)迅速得到修復(fù)。如果您使用比較流行的硬件平臺(tái)——許多人關(guān)注和開發(fā)該代碼庫(kù),尤其如此。
7. Linux使用標(biāo)準(zhǔn)
Linux符合許多標(biāo)準(zhǔn):POSIX、BSD、SVr4和FHS等。這意味著您不會(huì)被Linux鎖定。如果由于某種原因您覺得另一種選擇更適合,遷移應(yīng)用程序會(huì)容易得多,因?yàn)樗鼈儠?huì)使用標(biāo)準(zhǔn)接口。
Linux對(duì)于許多嵌入式系統(tǒng)很有用。然而,對(duì)于使用低端硬件的嵌入式系統(tǒng)而言,Linux并非總是最佳選擇。如果硬件平臺(tái)性能低下,使用調(diào)度程序運(yùn)行多項(xiàng)任務(wù),可能無(wú)法很好地運(yùn)行Linux。