1. 概述
其实,终端的实现应该放到应用篇的一个示例里面。但是,我实现终端的最初目的是为动态加载APP功能服务的。为了实现动态加载APP的功能我移植了文件系统、实现了终端命令和添加了系统调用的功能。所以,我将终端的实现归入到内核模块中,如果有的应用不需要该功能可以将其裁剪掉。
终端是属于人机交互的部分,主要功能是实现用户操作计算机。bcos为了实现简单的人机交互需求也实现了简单的终端功能,用户可以实现自己的终端命令并添加到终端中,这样更方便测试。
2. 实现的主要思路及处理流程
终端的处理本质上是对用户输入的字符和字符串处理,至于输入的接口可以是串口也可以是网络等通信接口。正常的终端会对用户输入的每一个字符进行处理,处理流程大概如下: