(资料图片仅供参考)

作者|李坤明,单位:中国移动智慧家庭运营中心

​Labs 导读

Shell就像是开发者和计算机之间的一座沟通桥梁,开发者能很方便地获取系统的运行情况,并通过命令控制系统的运行。搭载了shell组件的操作系统,能够使得目标用户开发更简单、更便捷。

在计算机发展的早期,图形系统出现之前,没有鼠标,甚至没有键盘,那时候人们如何与计算机交互呢?最早期的计算机使用打孔的纸条向计算机输入命令,编写程序。后来随着计算机的不断发展,显示器、键盘成为计算机的标准配置,但此时的操作系统还不支持图形界面,计算机先驱们开发了一种软件,它接受用户输入的命令,解释之后,传递给操作系统,并将操作系统执行的结果返回给用户。这个程序像一层外壳包裹在操作系统的外面,所以它被称为“shell”。

Part 01SHELL组件开发的意义

嵌入式设备通常需要将开发板与 PC 机连接起来通讯,常见连接方式包括:串口、USB、以太网、Wi-Fi 等。一个灵活的 shell 也应该支持在多种连接方式上工作。有了 shell,就像在开发者和计算机之间架起了一座沟通的桥梁,开发者能很方便地获取系统的运行情况,并通过命令控制系统的运行。特别是在调试阶段,有了 shell,开发者除了能更快定位到问题之外,也能利用shell调用测试函数,通过改变测试函数的参数,减少代码的烧录次数,缩短项目的开发时间。

Part 02SHELL组件设计原理

shell 命令行组件,提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。它可以使用串口/以太网/USB 等与 PC 机进行通信,硬件拓扑结构如下图所示:通过 shell 调试系统的硬件拓扑用户在控制终端输入命令,控制终端通过串口、USB、网络等方式将命令传给设备里的 shell, shell 会读取设备输入命令,解析并自动扫描内部函数表,寻找对应函数名,执行函数后输出回应,回应通过原路返回,将结果显示在控制终端上。

Part 03SHELL组件的使用

AOS-IoT上的shell组件一般通过串口的方式连接电脑和PC。通过开发板的串口输出到PC上的调试软件,就像使用linux的shell一样方便快捷。只需要在PC上打开调试软件,保证串口和PC能正常通信,通过向开发板发送help命令,即可知道操作系统内置的所有命令。这时,输入你想要使用的命令,就能熟练地使用RTOS的shell功能。

Part 04SHELL组件底层逻辑

用户在控制终端输入命令,控制终端通过串口方式将命令传给设备里的 shell, shell 会读取设备输入命令,解析并自动扫描内部函数表,寻找对应函数名,执行函数后输出回应,回应通过原路返回,将结果显示在控制终端上。

通过shell组件,程序员敲入预置的命令,就可以知道操作系统的运行状态和各种信息。它就像人体的嘴巴一样,可以展示自身的状态和感受。搭载了shell组件的操作系统,使得目标用户开发更简单、更便捷。​

推荐内容