很明顯,無論是對現(xiàn)有設(shè)備進行擴展還是從零開始設(shè)計新型設(shè)備或系統(tǒng),使用
嵌入式Linux
都能夠帶來最理想的物聯(lián)網(wǎng)生態(tài)系統(tǒng)構(gòu)建速度。嵌入式Linux
與桌面
Linux
共享同一套源代碼庫,但其同時匹配不同的用戶界面工具及其它高層組件。
下面,我們將共同探討幾類常見情況。
通常,極低功率應用(
例如傳感器
)
能夠憑借一次性電池甚至自身供能機制運行數(shù)個月之久。這意味著任何
Linux
在其上運行時都將帶來無法承載的負荷。其低功率特性意味著我們無法直接使用
IP
連接,必須配合互聯(lián)網(wǎng)網(wǎng)關(guān)。網(wǎng)關(guān)能夠通過低功率協(xié)議對接傳感器,再將其轉(zhuǎn)換為
IP
。根據(jù)具體協(xié)議需求,
Linux
完全有能力提供現(xiàn)有協(xié)議支持或者與之類似的方案。
下面來看配合CR2032
按鈕電池運行的無線聯(lián)網(wǎng)室外溫度計或者
“
智能燈泡
”
。這種智能燈泡看起來似乎并不屬于低功率應用,但具體情況仍取決于其并未亮起時的運作方式。如果使用純
Linux
方案,則意味著燈泡熄滅時系統(tǒng)無法或者需要很長時間來完成引導
(
至少用戶無法接受第一次點亮燈泡時等待
10
到
20
秒
)
。
如果在以上實例中直接運行IEEE 802.11(WiFi)
方案,則電池壽命將變得非常有限。因此,我們需要在燈泡中使用低功率聯(lián)網(wǎng)協(xié)議,例如使用簡單的
2.4 GHz
信號系統(tǒng)或者藍牙低功耗連接。嵌入式
Linux
網(wǎng)關(guān)能夠?qū)⒌凸臒o線鏈路轉(zhuǎn)換為
WiFI,
甚至以太網(wǎng)來實現(xiàn)互聯(lián)網(wǎng)接入。正因為如此,目前市面上的多數(shù)設(shè)備皆采用
Linux
網(wǎng)關(guān)及低功耗無線協(xié)議。
另外,嵌入式Linux
亦在眾多非物聯(lián)網(wǎng)設(shè)備當中有所作為。設(shè)計人員往往很難在裸機
/RTOS(
實時操作系統(tǒng)
)
方法與系統(tǒng)芯片配合
Linux
這兩類選項中作出選擇。裸機選項能夠有效降低材料成本,但卻不利于上市時間、開發(fā)成本與支持成本等因素。嵌入式
Linux
能夠更快完成調(diào)整并供更為廣泛的用戶群體以低成本方式利用多種工程技術(shù)及開發(fā)工具完成任務(wù)。另外,規(guī)模龐大的
Linux
用戶群亦有助于擴大測試覆蓋面并簡化技術(shù)支持。
物聯(lián)網(wǎng)設(shè)備的主要需求為連通性,且通常表現(xiàn)為IP
形式。這種聯(lián)網(wǎng)的能力往往通過
Web
服務(wù)器實現(xiàn)。裸機
/RTOS
雖然也能夠提供
IP
連接,但卻易于引發(fā)錯誤及合規(guī)違反問題。例如,很多
RTOS
并不會將
IP
堆棧用戶與
IP
堆棧本身進行隔離?;ヂ?lián)網(wǎng)連接可能需要處理低速或者擁塞鏈路。另外,當堆棧與其它代碼混合時,緩沖區(qū)處理問題也可能變得模糊且難以調(diào)試。相比之下,嵌入式
Linux
能夠?qū)崿F(xiàn)硬件分離并廣泛使用各類
IP
堆棧。即使單純從成本角度考慮,嵌入式
Linux
在加快上市時間、降低技術(shù)支持與開發(fā)成本方面亦能夠有效抵消裸機
/RTOS
的前期優(yōu)勢。
另一類常見用例為對現(xiàn)有物聯(lián)網(wǎng)設(shè)計進行功能添加。單純從討論角度出發(fā),這意味著我們需要向設(shè)備添加讀取設(shè)備狀態(tài)、配置與控制機制甚至是網(wǎng)絡(luò)瀏覽器。這意味著我們需要找到粘接機制對合并IP
堆棧、
Web
服務(wù)器與設(shè)備軟件。
對于已采用裸機設(shè)置的現(xiàn)有設(shè)備,以上討論則適用于改進其互聯(lián)網(wǎng)連接類情況。這時,調(diào)整設(shè)備以使用嵌入式Linux
往往是最簡單的實現(xiàn)方式。對于嵌入式
Linux
設(shè)備,向其中添加
IP
連接只需要通過內(nèi)核選項啟用
IP
堆棧。大家還需要添加一些軟件包以配置系統(tǒng),同時引入
Web
服務(wù)器。在這方面,大家需要編寫軟件粘接代碼以服務(wù)于
Web
請求。我們可以利用簡單的
shell
腳本、
Python
以及
JavaScript
等方式完成這項任務(wù)。添加物聯(lián)網(wǎng)功能對于產(chǎn)品的上市時間非常關(guān)鍵,因此大家可以將各個步驟并行推進,從而有效加快開發(fā)速度。
對于嵌入式Linux
設(shè)備與物聯(lián)網(wǎng)連接而言,安全性無疑是一大關(guān)注重點。物聯(lián)網(wǎng)服務(wù)通常會直接暴露在危險和未經(jīng)過濾的互聯(lián)網(wǎng)之上。雖然相關(guān)內(nèi)容完全可以另寫一篇文章,但這里我們可以給出一些總結(jié)性意見,即利用多項原生嵌入式
Linux
功能
——
包括多用戶、
SELinux
以及容器
——
控制并緩解這種風險。而
Linux
擁有的龐大社區(qū)亦將帶來安全可靠的修復能力。
總而言之,嵌入式Linux
能夠顯著加快物聯(lián)網(wǎng)方案的開發(fā)速度,簡化功能擴展并為物聯(lián)網(wǎng)生態(tài)系統(tǒng)提供
IP
網(wǎng)關(guān)服務(wù)。另外,
Linux
生態(tài)系統(tǒng)中的大量驅(qū)動程序與功能庫,乃至開源代碼也將成為構(gòu)建物聯(lián)網(wǎng)項目時,極為強大的儲備資源。
來源:
極客頭條