1 LINUX 操作系统 大作业报告 姓名 XXX 学号 姓名 XXX 学号 姓名 XXX 学号 指导教师 XX 学期 2011 至 2012 学年 第二学期 完成时间 2012 年 01 月 03 日 2 Linux 操作系统设计性实验报告 学 生 姓 名 XXX XXX XXX 学 号 教 学 班 B01 实 验 项 目 模拟命令解释器Myshell的设计 实 验 地 点 H527 实 验 最 后 完 成 时 间 2012 年01 月05 日 必 修√选 修 指 导 教 师 XX 同 组 人 指导教师评语及成绩: 成绩: 指导教师签名: 日期: 打印稿记录 等级 迟交: 抄袭: 一、实验综述 ㈠实验目的及要求 1.实验目的: Linu x /UNIX 系统中,shell 是用户和系统内核沟通的中介,它为用户使用操作系统的服务提供了一个命令界面。用户在命令提示符($或是#)下输入的每一个命令都由 shell 解释,然后传给内核执行。本实验要求用 C 语言编写一个模拟shell 命令解释器,达到如下目的: 用 C 语言编写清晰易读、设计优良的程序; 在编写系统应用程序时熟练使用 man 手册或其他查询命令、系统调用和库函数的工具。 学习使用文件操作、进程控制、信号、管道相关程序设计方法和系统调用; 锻炼团队成员之间的交流和合作完成项目能力。 2.实验要求: 设计并实现一个 Linu x 下的的交互式 shell 命令解释器:My Shell;以模拟u nix /linu x 系统下的完善的bash shell 的功能。不需要具备非常完备的shell 功能。主要有如下功能: 初始化环境,主要是默认搜索路径、history 循环数组、作业列表 3 打印命令提示符; 接受、识别和分析命令提示符后输入的命令行,并创建子程序,在子程序中将其转换为相对的系统调用以调用内核功能实现任务; 能实现内部命令,包括:exit(退出 shell)、history、cd、jobs、bg、fg。 能够执行外部命令,并到搜索路径中去查找外部命令对应的执行文件;命令均可带参数; 支持&、|、<、>四个特殊字符及其所代表的功能; 支持前、后台作业控制,包括 fg/bg/jobs 以及 ctrl+c/ctrl+z(挂起、中止和继续运行)。 最后用 make 来建立工程; 不断测试 写报告,提供清晰、详细的解决方案和设计文档。 结束 实验过程中,要求学生2~3 人一组,要求各小组内部对该实验任务加以分工,各小组之间相互独立完成实验。教师根据各小组所编...