一直以来认为shell就是一些函数的接口。接触rtems以后,要系统的学习一下shell
shell是一种交互方式,用来操作,诊断,配置等目的。rtems的shell是一种命令行的交互方式。一些命令和标准posix一致。其他是rtems具体的。用户debug和分析嵌入式系统。
shell就是一个循环,读取输入,把输入作为命令的参数,他可以通过标准的串口或者是rtems的telnetd server(通过网络)
每一个命令都以单独的处理函数实现。在cpukit/libmisc/shell目录下有很多main-命令名字的文件。命令解析参数基于stdin,stdout,stderr,这也允许每个命令可以独立于shell使用。
将shell从通信机制中分离出来的方法是重要的设计目标。在一个层面上,RTEMS Shell是一个完整的Shell环境,提供访问多个POSIX兼容的文件系统和TCP/IP栈的能力。这使得它很容易配置,并且标准Shell可以从串口登录或者通过telnet端口登陆。但在另一个层面上,Shell是一组很大的组件,可以集成到用户的已开发的命令解释器中。在这两种情况下,向命令集中添加自定义命令都很简单。