欢迎来到天天文库
浏览记录
ID:14579906
大小:1.15 MB
页数:27页
时间:2018-07-29
《实验小组《os操作系统实验一》----shell解释程序实现文档》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、北航计算机学院《OS操作系统实验一》----Shell解释程序实现文档32060624OS实验小组《OS操作系统实验一》:Shell解释程序(YSH0)实现文档32060624OS实验小组2021年8月5日星期四32060624王克(组长)32060518杜可斌32060532徐瑞32060621张劲目录:1概述22YSH0功能与设计22.1程序形式22.2内部命令和外部命令22.3重定向和管道命令22.4特殊命令键32.5程序结构图33命令行分析器设计43.1功能43.2实现54命令解释执行的实现64.1使用到的
2、系统调用64.2程序结构65程序源代码相关说明75.1文件说明75.2主要函数说明75.3主要数据结构说明76简易测试86.1编译运行测试86.2内部命令测试96.3外部命令测试96.4重定向和管道命令测试106.5测试总结107总结及感想107.132060624王克107.232060518杜可斌117.332060621张劲117.432060532徐瑞118附录118.1参考资料118.2源代码11ITRunner@cse.buaa.edu.cn8/5/2021Page27of27北航计算机学院《OS操作系
3、统实验一》----Shell解释程序实现文档32060624OS实验小组1概述由于时间和能力的限制,这个的实验是参考实验教程上源代码及相关说明,但程序源代码的差异性在60%以上,从整体结构设计到具体的实现细节都有不同程度的改进和提高,但也可能带来一些BUG。通过对操作系统课程的学习,我们对Linux有了进一步更深入的认识,从它的使用到内核编译都有所了解。第一个实验是实现在Linux下实现一个Shell解释程序,所以我们将其命名为LinuxShell0(表示一个最简单的Shell程序)。它是用户与系统内核沟通的中介,
4、为用户使用操作系统的服务提供一个命令界面。用户在提示符下输入一个命令,Shell先解释后通过内核函数调用执行。2YSH0功能与设计2.1程序形式用户运行本程序,lsh0提供一个命令提示符[lsh0#]>,程序一直等待用户输入命令,直到exit命令结束。2.2内部命令和外部命令解释器首先支持一定的内部命令,实现特定的动作,它包括:Øexit:结束所有子程序并退出。Øjobs:打印当前正在后台运行的作业和挂起的作业信息。本SHELL采用十分便于用户理解的格式。Øfg%:把进程标识符为<int>的作业放到前台运
5、行。如果这个作业已经暂停,就让它继续开始运行。并开始等待此前台进程执行完毕。Øbg%:在后台执行进程标识符为<int>的已经挂起的进程。外部命令的形式是一系列分隔的字符串。第一个字符串为可执行程序的程序名,其余的参数。它必将位于环境变量所设置的某个路径中,如果不存在则表示命令错误。2.3重定向和管道命令SHELL的命令大部分都是从标准输入信息并将输出信息送到标准输出。分别缩写为stdin和stdout。默认情况下,stdin为键盘,stdout为屏幕。但可使用>和<将输入和输出重定向到文件中,>将信息存入
6、一文件以便保存,而不送到屏幕。使用<将信息从文件中输入。并且两者可以组合使用。ITRunner@cse.buaa.edu.cn8/5/2021Page27of27北航计算机学院《OS操作系统实验一》----Shell解释程序实现文档32060624OS实验小组SHELL也提供管道,利用管道可以将一个命令的输出作为另一个命令的输入来使用。这种方法比使用临时文件来连接两个命令要方便和高效的多。1.1特殊命令键ØCtrl+Z:产生SIGTSTP信号,这个信号是让SHELL挂起在前台运行的作业。如果没有任何前台作业,则无效
7、。ØCtrl+C:产生SIGNT信号,这个信号是让SHELL杀死前台运行的作业的进程。如果没有任何前台作业,则无效。1.2程序结构图ITRunner@cse.buaa.edu.cn8/5/2021Page27of27北航计算机学院《OS操作系统实验一》----Shell解释程序实现文档32060624OS实验小组1命令行分析器设计1.1功能为Shell程序提供命令行的分析,并对信息进行分析存储,为解释执行做好准备。当用户在提示符后面输入命令时,输入的整行内容为一个“命令行字符串”。lsh0分析器的先将保存起来,直到
8、它的作业执行结束。在执行一个命令行字符串时,lsh0也同时为其分配一个非负整数标识符,用来标识此作业的数据结构。当其作业执行完毕时,就删掉这个作业的整个数据结构。ITRunner@cse.buaa.edu.cn8/5/2021Page27of27北航计算机学院《OS操作系统实验一》----Shell解释程序实现文档32060624OS实验小组1.1实现ITR
此文档下载收益归作者所有