1、 操作系统原理操作系统原理课程设计报告课程设计报告 姓姓 名名: 学学 号号: 指导老师:指导老师: _ 起始起始时间时间: 2010 年年 3 月月 4 日日 起止起止时间时间: 2010 年年 6 月月 22 日日 - 1 - 第一章第一章 系统概述系统概述 1.1 设计设计背景背景 为了提高同学们的自学能力, 老师决定给予一项我们没有接触过的课程设计, 也是我们 很不熟悉,但是在 IT 界却是很重要的一门技艺,我觉得老师的目的就是为了锻炼我们的自 学力,而不是课程设计的能力,课程设计的能力是通过自学能力表现出来的。 1.2 设计设计目的目的 掌握 unix 操作系统常用 API 的调用;
2、了解目录操作、进程控制等相 关知识。 掌握创建子进程和信号; 初步学会使用管道进行进程间通讯; 掌握命令解释程序的设计方法。 理解并发程序中的同步问题。 培养 C/C+语言程序设计技能,提高程序设计和文档编写能力。 锻炼团队成员的交流与合作能力。 1.3 开发环境开发环境 操作系统:Windows XP 2000 、UNIX 系统 开发平台:Notepad+、 putty 编译器版本:GNU GCC 开发语言:C 语言 第二章第二章 总体总体要求与设计要求与设计 2.1 设计要求:设计要求: Unix Shell 是 unix 的命令解释程序,用于让用户以一种友好的方式运行程序和 执行命令。
3、本设计要求在利用 C 或 C+语言在 linux 环境下设计一个简单的命令解释程 序,实现 shell 的基本功能。即:用户在命令行输入命令(包括内部命令和外部命令) 及参数,执行该命令,以及实现输入、输出重定向等功能。 - 2 - 1 1)具体功能要求:)具体功能要求: 试验环境为 unix,编程语言为 C 或 C+; 整个程序必须经过测试,完整实现所有基本功能; 程序的运行必须稳定可靠,不得出现执行某命令时,系统无响应或退出现象; 程序编写应有良好的风格,源程序必须有比较详细的注释; 程序中不得使用 system()系统调用; 2 2)其它要求)其它要求 命令解释程序的提示符为: 命令解释
4、程序把命令解释为内部命令和外部命令(要执行的程序) 。内部命令直接在命 令解释程序中执行,外部命令则由解释程序通过 fork()创建一个子进程,然后在子进 程中调用 exec()执行该程序; 2.2 程序流程图:程序流程图: 图 2.1 程序流程图 2.3 主程序:主程序: int main(int argc, char *argv) - 3 - int i; init(); while (exit1 = 0) int ch = 0; ch = GetCommand(Command, switch (ch) case 1: dir1(NumberCommand, Command); break; case 2: cd(NumberCommand, Command); break; case 3: pwd(NumberCommand, Command); break; case 4: md(Num