在物聯(lián)網(wǎng)中有兩大類物理對象:標(biāo)記對象和連接對象。第一類包括附加到產(chǎn)品上的各種標(biāo)簽技術(shù),例如條形碼、QR碼、NFC或RFID標(biāo)簽、IR/AR等。在這種情況下,對象不是直接連接到web,而是被動連接,因為需要另一個設(shè)備或應(yīng)用程序與產(chǎn)品交互。連接對象直接連接到物聯(lián)網(wǎng),是嵌入式開發(fā)的世界,它們本質(zhì)上是小型、相對便宜、低功耗的計算機,資源和能力有限。
有數(shù)百種嵌入式平臺,這些平臺的一個區(qū)別是它們的操作系統(tǒng)。為了簡化,我們可以考慮用于嵌入式設(shè)備的兩類操作系統(tǒng)(OS):實時操作系統(tǒng)(RTOS)和非實時操作系統(tǒng)!
說到嵌入式設(shè)備,RTOS的世界由FreeRTOS主宰,F(xiàn)reeRTOS是一種開源實時操作系統(tǒng),盡管存在一些可行的替代方案,如Contiki、TinyOS、mbed
OS或商用Intel
VxWorks。實時操作系統(tǒng)的缺點之一是它不太擅長并行操作許多任務(wù),這使得很難構(gòu)建提供簡單抽象的復(fù)雜層。這是非實時操作系統(tǒng)可以提供幫助的地方。它對于那些任務(wù)不那么關(guān)鍵的事情尤其有用,因為用戶體驗和功能比恒定、非??焖俚捻憫?yīng)時間更重要。
在嵌入式開發(fā)中,一個操作系統(tǒng)比在RTOS世界中更能控制所有操作系統(tǒng):Linux。由于其龐大的社區(qū)、大量的工具、抽象和支持的體系結(jié)構(gòu),Linux是開始修補和創(chuàng)新物聯(lián)網(wǎng)設(shè)備的理想環(huán)境。但不要弄錯了;它也越來越成為現(xiàn)實世界和強大物聯(lián)網(wǎng)應(yīng)用(如家庭自動化或構(gòu)建應(yīng)用網(wǎng)關(guān))的可靠候選。還值得注意的是,許多項目提供Linux內(nèi)核的修改版本,以將其轉(zhuǎn)換為實時操作系統(tǒng)。
在過去的幾年里,Linux已經(jīng)成為一種在嵌入式設(shè)備上使用的非常流行的操作系統(tǒng),來自Linux基金會(Yocto)的項目現(xiàn)在致力于為嵌入式設(shè)備創(chuàng)建定制的Linux發(fā)行版。類似地,谷歌已經(jīng)發(fā)布了Brillo,Android的一個擴展(也構(gòu)建在Linux上)用于物聯(lián)網(wǎng),Ubuntu也為物聯(lián)網(wǎng)發(fā)布了Ubuntu內(nèi)核。Ubuntu
Core還展示了物聯(lián)網(wǎng)操作系統(tǒng)容器化的一個有趣的發(fā)展方向:允許在容器中部署應(yīng)用程序,為物聯(lián)網(wǎng)應(yīng)用程序商店鋪平道路(想象一下在現(xiàn)實世界中安裝電梯后為電梯添加功能)。值得注意的是,盡管Linux在很大程度上占據(jù)主導(dǎo)地位,但在這一領(lǐng)域,Linux還有一些替代品,如用于物聯(lián)網(wǎng)的Windows
10。
在構(gòu)建物聯(lián)網(wǎng)的過程中,您將了解更多關(guān)于嵌入式開發(fā)的細節(jié),以及如何為Raspberry Pi、BeagleBone或Intel
Edison等平臺安裝和定制Linux。