AOS-IoT之Shell組件知多少?
作者|李坤明,單位:中國移動智慧家庭運營中心
?Labs 導讀
Shell就像是開發者和計算機之間的一座溝通橋梁,開發者能很方便地獲取系統的運行情況,并通過命令控制系統的運行。搭載了shell組件的操作系統,能夠使得目標用戶開發更簡單、更便捷。
在計算機發展的早期,圖形系統出現之前,沒有鼠標,甚至沒有鍵盤,那時候人們如何與計算機交互呢?最早期的計算機使用打孔的紙條向計算機輸入命令,編寫程序。后來隨著計算機的不斷發展,顯示器、鍵盤成為計算機的標準配置,但此時的操作系統還不支持圖形界面,計算機先驅們開發了一種軟件,它接受用戶輸入的命令,解釋之后,傳遞給操作系統,并將操作系統執行的結果返回給用戶。這個程序像一層外殼包裹在操作系統的外面,所以它被稱為“shell”。
Part 01 SHELL組件開發的意義
嵌入式設備通常需要將開發板與 PC 機連接起來通訊,常見連接方式包括:串口、USB、以太網、Wi-Fi 等。一個靈活的 shell 也應該支持在多種連接方式上工作。有了 shell,就像在開發者和計算機之間架起了一座溝通的橋梁,開發者能很方便地獲取系統的運行情況,并通過命令控制系統的運行。特別是在調試階段,有了 shell,開發者除了能更快定位到問題之外,也能利用shell調用測試函數,通過改變測試函數的參數,減少代碼的燒錄次數,縮短項目的開發時間。
Part 02 SHELL組件設計原理
shell 命令行組件,提供一套供用戶在命令行調用的操作接口,主要用于調試或查看系統信息。它可以使用串口/以太網/USB 等與 PC 機進行通信,硬件拓撲結構如下圖所示:通過 shell 調試系統的硬件拓撲用戶在控制終端輸入命令,控制終端通過串口、USB、網絡等方式將命令傳給設備里的 shell, shell 會讀取設備輸入命令,解析并自動掃描內部函數表,尋找對應函數名,執行函數后輸出回應,回應通過原路返回,將結果顯示在控制終端上。
Part 03 SHELL組件的使用
AOS-IoT上的shell組件一般通過串口的方式連接電腦和PC。通過開發板的串口輸出到PC上的調試軟件,就像使用linux的shell一樣方便快捷。只需要在PC上打開調試軟件,保證串口和PC能正常通信,通過向開發板發送help命令,即可知道操作系統內置的所有命令。這時,輸入你想要使用的命令,就能熟練地使用RTOS的shell功能。
Part 04 SHELL組件底層邏輯
用戶在控制終端輸入命令,控制終端通過串口方式將命令傳給設備里的 shell, shell 會讀取設備輸入命令,解析并自動掃描內部函數表,尋找對應函數名,執行函數后輸出回應,回應通過原路返回,將結果顯示在控制終端上。
通過shell組件,程序員敲入預置的命令,就可以知道操作系統的運行狀態和各種信息。它就像人體的嘴巴一樣,可以展示自身的狀態和感受。搭載了shell組件的操作系統,使得目標用戶開發更簡單、更便捷。?