- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个简单shell软件设计方法
一个简单的shell的软件设计方法
姓名:黄崇 学号:131040061
摘 要
shell是操作系统提供给用户操作的必备窗口,用户通过这个窗口调用操作系统提供的服务。本文并不是在操作系统上实现一个简单的shell,而是在单片机上用C语言编写一个shell实现的框架,以阐述shell的工作原理。
关键词:shell 单片机 命令解析
概述
1、shell概念
Shell(命令解析器),它用于接收用户输入的命令,进行解析,然后调用相应的应用程序,为使用者提供了使用软件的界面。
shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,执行相应的应用程序,并且输出各种各样的处理结果。
2、shell分类
按照界面类型,可以分为图形界面shell和命令行式shell。
图形界面shell(Graphical User Interface shell 即 GUI shell),应用最为广泛的 Windows Explorer (微软的windows系列制作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manger (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。
命令行式shell(Command Line Interface shell ,即CLI shell),被广泛熟知的有bash / sh / ksh / csh(Unix/linux 系统)、cmd.exe(Windows XP 系统)、(DOS系统)。
3、shell的运行模式
Shell的运行模式可以分为:交互式和非交互式。
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件(shell script),并且执行其中的命令。当它读到文件的结尾,shell也就终止了。
二、shell软件功能需求分析
1、本文的开发环境
本文希望在单片机上运行这个shell程序,单片机可以是STM32、AVR等等,本文的测试是在S3C2440开发板上完成的。用户输入通常选用PC机的键盘,由于硬件运行平台是单片机,就选用串口进行交互数据的传输。软件开发环境选用linux系统下的arm-linux-gcc交叉编译工具链,该工具链功能强大,可配置性较集成开发环境尤其独到之处。
2、本文shell的基本功能要求
本文目的在于实现一个简单的shell,功能不要求很多,但是要求完全描绘出一个shell的工作原理和shell软件结构。有了这样的软件结构,再向shell里添加其他的功能,就好像做填空题一样。
简单的shell功能可支持的命令虽然很少,但是也要确定选择哪些命令比较合适。实现这样简单的命令最好不需要增添其他的外设,比如说硬盘、网卡,利用最小的单片机系统就能搞定。这样可以节省工作量,将主要精力集中到shell软件结构上,而不是具体命令的实现上。基于这样的考虑,本文选择echo(回显)、md(内存显示)和hello(打印“hello world”)三个命令作为测试。另外,还必须提供shell必备的命令help或者?(打印所有命令的帮助信息)。而且对于每一个命令,通过“help+命令”的输入打印单个命令的详细信息。
三、shell软件设计方案
在shell运行期间,无非涉及两个模块。一个模块是等待用户输入,并把用户输入的字符保存起来。另外一个模块,就是把之前保存的用户输入解析出来,并且根据解析到的命令找到对应的函数地址。再根据用户输入命令的参数,将参数传给这个函数地址,进行函数调用。
shell的核心是如何根据命令字符串,找到对应的函数地址,这是一个算法问题。因为命令字符串相对应着一个函数地址,需要将它们用一个数据结构包含在一起,所以也是一个数据结构的问题。
有什么样的数据结构,就有什么样的算法,设计数据结构成了关键。一个命令的结构体应该包含这样的内容:命令的名字、命令参数的最大个数、命令对应函数的地址、命令的简要帮助信息、命令的详细帮助信息。
有了命令数据结构,在设计一个命令的时候,就将这些命令的必要信息提供好,然后将这些信息填充到它对应的结构体变量中。最后,再将所有命名对应的结构体变量保存在一个数据段中。通过编译器产生的参数,我们可以掌握这个数据段的起始地址和结束地址,从而知道命令数据段的长度,进而知道命令的个数。只要我们知道这个数据段的起始地址,因为命令结构体的长度固定,我们就可
您可能关注的文档
- -弱电解质电离、溶液pH值.doc
- 第1部分第4节 正确使用词语(包括熟语)(下).ppt
- .卤素 复习.ppt
- 01 实验一 氨基酸与蛋白质性质.doc
- VFP第1-2章-11.ppt
- 莱芜一中2012届高三自主检测语文.doc
- VFP第3章 数据库和表创建与使用.ppt
- VFP第6章-11.ppt
- 02 化学反应速率与限度.ppt
- Activiti 5.16中文手册.docx
- 2024年消防设施操作员之消防设备中级技能通关题库(附带答案) .pdf
- 2024年消防设施操作员(中级监控)真题题库-单选(401-450) .pdf
- 2024年生猪屠宰工作总结(2篇) .pdf
- 2024年特种设备焊接作业证理论考试模拟试题(100题)含答案 .pdf
- 2024年河南省洛阳市涧西区中考模拟考试(一)语文试卷(含答案).pdf
- 2024年河南省开封市高职单招综合素质考试题库及完整答案解析.pdf
- 2024年焊工(初级)考试题库附答案 .pdf
- 2024年注册消防工程师考试复习题库及答案(消防验收与监督检查) .pdf
- 2024年法律职业资格之法律职业主观题练习题(一)及答案 .pdf
- 2024年河南省郑州经济技术开发区外国语学校九年级中考一模数学试题.pdf
最近下载
- 2024年新九年级语文暑假提升讲义-名著导读(统编版)(解析版).pdf VIP
- Unit3ReadingandThinking课件- 高中英语人教版(2019)必修第一册.pptx VIP
- 幼儿园大班语言教案《手捧空花盆的孩子》绘本故事PPT课件教学反思【幼儿教案】.doc
- 青春期学生正确恋爱观主题班会——关爱女生讲座 防早恋 防性侵 主题教育PPT.pptx VIP
- CCF 全国青少年信息学奥林匹克联赛 NOIP 2022.pdf
- 市场营销题库及答案.pdf VIP
- 初中班级管理《班级管理交流》课件.ppt VIP
- 《整式的加减》单元作业设计.pdf VIP
- 违章行为调查报告书.docx
- GB∕T 33106-2016 工业用磷酸三乙酯国家标准.pdf
文档评论(0)