在物聯(lián)網(wǎng)中有兩大類物理對(duì)象:標(biāo)記對(duì)象和連接對(duì)象。第一類包括附加到產(chǎn)品上的各種標(biāo)簽技術(shù),例如條形碼、QR碼、NFC或RFID標(biāo)簽、IR/AR等。在這種情況下,對(duì)象不是直接連接到web,而是被動(dòng)連接,因?yàn)樾枰硪粋€(gè)設(shè)備或應(yīng)用程序與產(chǎn)品交互。連接對(duì)象直接連接到物聯(lián)網(wǎng),是嵌入式開(kāi)發(fā)的世界,它們本質(zhì)上是小型、相對(duì)便宜、低功耗的計(jì)算機(jī),資源和能力有限。
有數(shù)百種嵌入式平臺(tái),這些平臺(tái)的一個(gè)區(qū)別是它們的操作系統(tǒng)。為了簡(jiǎn)化,我們可以考慮用于嵌入式設(shè)備的兩類操作系統(tǒng)(OS):實(shí)時(shí)操作系統(tǒng)(RTOS)和非實(shí)時(shí)操作系統(tǒng)!
說(shuō)到嵌入式設(shè)備,RTOS的世界由FreeRTOS主宰,F(xiàn)reeRTOS是一種開(kāi)源實(shí)時(shí)操作系統(tǒng),盡管存在一些可行的替代方案,如Contiki、TinyOS、mbed
OS或商用Intel
VxWorks。實(shí)時(shí)操作系統(tǒng)的缺點(diǎn)之一是它不太擅長(zhǎng)并行操作許多任務(wù),這使得很難構(gòu)建提供簡(jiǎn)單抽象的復(fù)雜層。這是非實(shí)時(shí)操作系統(tǒng)可以提供幫助的地方。它對(duì)于那些任務(wù)不那么關(guān)鍵的事情尤其有用,因?yàn)橛脩趔w驗(yàn)和功能比恒定、非??焖俚捻憫?yīng)時(shí)間更重要。

在嵌入式開(kāi)發(fā)中,一個(gè)操作系統(tǒng)比在RTOS世界中更能控制所有操作系統(tǒng):Linux。由于其龐大的社區(qū)、大量的工具、抽象和支持的體系結(jié)構(gòu),Linux是開(kāi)始修補(bǔ)和創(chuàng)新物聯(lián)網(wǎng)設(shè)備的理想環(huán)境。但不要弄錯(cuò)了;它也越來(lái)越成為現(xiàn)實(shí)世界和強(qiáng)大物聯(lián)網(wǎng)應(yīng)用(如家庭自動(dòng)化或構(gòu)建應(yīng)用網(wǎng)關(guān))的可靠候選。還值得注意的是,許多項(xiàng)目提供Linux內(nèi)核的修改版本,以將其轉(zhuǎn)換為實(shí)時(shí)操作系統(tǒng)。
在過(guò)去的幾年里,Linux已經(jīng)成為一種在嵌入式設(shè)備上使用的非常流行的操作系統(tǒng),來(lái)自Linux基金會(huì)(Yocto)的項(xiàng)目現(xiàn)在致力于為嵌入式設(shè)備創(chuàng)建定制的Linux發(fā)行版。類似地,谷歌已經(jīng)發(fā)布了Brillo,Android的一個(gè)擴(kuò)展(也構(gòu)建在Linux上)用于物聯(lián)網(wǎng),Ubuntu也為物聯(lián)網(wǎng)發(fā)布了Ubuntu內(nèi)核。Ubuntu
Core還展示了物聯(lián)網(wǎng)操作系統(tǒng)容器化的一個(gè)有趣的發(fā)展方向:允許在容器中部署應(yīng)用程序,為物聯(lián)網(wǎng)應(yīng)用程序商店鋪平道路(想象一下在現(xiàn)實(shí)世界中安裝電梯后為電梯添加功能)。值得注意的是,盡管Linux在很大程度上占據(jù)主導(dǎo)地位,但在這一領(lǐng)域,Linux還有一些替代品,如用于物聯(lián)網(wǎng)的Windows
10。
在構(gòu)建物聯(lián)網(wǎng)的過(guò)程中,您將了解更多關(guān)于嵌入式開(kāi)發(fā)的細(xì)節(jié),以及如何為Raspberry Pi、BeagleBone或Intel
Edison等平臺(tái)安裝和定制Linux。




