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