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