|

從OS支援度看Maker開發板的四個層次

   

作者:陸向陽

對於初入門創客、自造者領域的人,面對目前琳琅滿目的名詞(多數是指系統開發板),有可能無所適從,不知道學什麼好?學的到底是哪個層次?自己發創的應用點子,到底適合用哪個層次的系統板實現,都可能沒有頭緒。對此筆者自身觀察,認為有四個系統層次可供選擇,以下逐一說明。

1. 沒有作業系統

沒有作業系統的最典型開發板為Arduino,只有一顆簡單的8位元微控制器晶片在運作(特殊衍生版本例外),沒有應用程式可以使用,Maker必須自己寫控制程式,頂多呼叫、呼用(Call,大陸稱調用)函式庫來加速、簡化開發,且系統只一直循環執行一個控制程式。

初階Arduino開發板採8位元MCU核心,無法支援作業系統,以週邊感測和控制為主。

除了Arduino外,相容Arduino開發環境的系統板,大致也以這個層次來看待,例如Intel Galileo、Edison、Curie,或MediaTek LinkIt ONE、Realtek Ameba、ESP8266等,雖然這些晶片已是較高階的32位元微處理器晶片,理論與實務上也都執行嵌入式作業系統,但因為相容於Arduino開發環境(抽象與簡化系統),因此相關軟體發展與執行也有些限縮,因此筆者仍將此類開發板歸列於此層次。

2. 簡單作業系統

簡單作業系統即開發板有執行作業系統,且理論上允許同時執行多個應用程式,應用程式可以新增(安裝)、刪除(移除反安裝)、修改(更新修正),不過應用程式的新增刪除仍是在開發階段進行,較難也較少在執行階段進行。

關於此,其實ESP8266與Realtek Ameba均使用FreeRTOS,只要不是使用Arduino開發環境(主要在簡單好入門上手),使用其他較進階、專業的開發環境,確實可以讓開發板同時執行多個應用程式、新增修改刪除應用程式。

一些Maker開發板支援FreeRTOS,如ESP8266和Ameba。

一些Maker開發板支援FreeRTOS,如ESP8266和Ameba。

3. 嵌入式Linux

沒有作業系統的典型是使用Arduino開發環境,簡單作業系統的典型是FreeRTOS搭配各種開發工具(C語言、eLua語言、Micro Python語言等),而嵌入式Linux則更進階,典型為OpenWRT。

目前支援OpenWRT的代表性開發板,自然是MTK去年底推出的LinkIt Smart 7688/Duo,該開發板的核心晶片本來就用於Router開發,為了更接近社群,這塊板子的主打賣點之一即是與OpenWRT社群的發展完全同步,此舉也確實擄獲了許多精通此道的PRO Maker的心。

7688/Duo支援OpenWRT

OpneWRT的整體系統又比FreeRTOS更高階,有許多現成的應用程式、驅動程式可以使用,只要在文字命令列下指令即可安裝、移除、更新,不像FreeRTOS多數時候必須用開發工具才能達到同樣目的。

此外因硬體系統資源、規格的增加,OpenWRT也可以連接乙太網路、USB等,但前述的兩者難以具備這些連接能力,多半只具備簡單的GPIO、PWM、ADC,至多是SPI、I2C、UART等晶片間傳輸介面。

4. 桌上型Linux

桌上型Linux是嵌入式Linux的超集合(Super-Set),所有嵌入式Linux具備的桌上型Linux也都具備,並再追加提供如一般Windows的圖形化使用者介面(GUI),可以執行與操作圖形化應用程式,例如Office、Web Browser、PDF Reader,幾乎與一般個人電腦無異。

這類Maker開發板無疑以Raspberry Pi為代表,但現在有愈來愈多的水果派出現,如Banana Pi、Orange Pi等,功能都很強大,運作桌上型Linux完全沒有問題。此外,TI的Beagleboard也屬於這一類型開發板。

高性能的Maker開發板愈來愈多(Source:YouTube)

高性能的Maker開發板愈來愈多(Source:YouTube)

相對於桌上型Linux,OpenWRT比較缺乏圖形化介面,較適合一些背景運作的應用、運作於無形的應用,例如物聯網閘道器、視訊監視器、寬頻分享器、防火牆、檔案分享器、列印分享器等。

除了當個人電腦運用外,以桌上型Linux為主的開發板也有多種應用,例如用來充當電視盒(媒體播放器),充當科學加速運算的電腦(運用叢集技術)等,或無人機等。

小結

以上主要為軟體執行的說明,若是在開發層面,「沒有作業系統」大體只能用C/C++/Processing程式語言,或Blockly程式語言(Google提出),但「簡單作業系統」以上就有較多種開發選擇,除前述的eLua、Python外,OpenWRT上也可用Node.js(JavaScript)開發。

說來說去,好像「沒有作業系統」相當無用,其實要看應用的複雜性,簡單的應用只要使用「沒有作業系統」即可。另外,「沒有作業系統」因使用微控制器,通常有較好的I/O驅動力(source)、承受力(sink),且有硬體的脈寬調變(PWM),這些多是高階的微處理器比較缺乏,需要時得額外裝配。

所以層次與應用能對應匹配最重要,並無絕對高低之別。

陸向陽
陸向陽

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

2 Comments

  1. Intel/Wind River+Linux foundation 已經公佈了 Zephyr. 應該是 IoT 的最佳選擇.

    Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *