实验目的Linux操作系统中shell是用户与系统内核沟通的中介,它为用户使用操作系统的服务提供了一个命令界面。
用户在shell提示符($或#)下输入的每一个命令都由shell先解释,然后传给内核执行。
本实验要求用C语言编写一个简单的shell程序,希望达到以下目的:用C语言编写清晰易读、设计优良的程序,并附有详细的文档。
熟悉使用Linux下的软件开发工具,例如gcc、gdb和make。
在编写系统应用程序时熟练使用man协助手册。
学习使用POSIX/UNIX系统调用、对进程进行管理和完成进程之间的通信,例如使用信号和管道进行进程间通信。
理解并发程序中的同步问题。
锻炼在团队成员之间的交流与合作能力。
2.实验要求1.ysh解释程序的重要特征本实验要实现一个简单的命令解释器,也就是Linux中的shell程序。
实验程序起名为ysh,要求其设计类似于目前流行的shell解释程序,如bash、csh、tcsh,但不需要具备那么复杂的功能。
ysh程序应当具有如下一些重要的特征:能够执行外部程序命令,命令可以带参数。
.。
能够执行fg、bg、cd、history、exit等内部命令。
使用管道和输入输出重定向。
支持前后台作业,提供作业控制功能,包括打印作业的清单,改变当前运行作业的前台/后台状态,以及控制作业的挂起、中止和继续运行。
除此之外,在这个实验中还须做到:使用make工具建立工程。
使用调试器gdb来调试程序。
提供清晰、详细的设计文档和解决方案。
1