CSAPP:shell lab README实验指导书

本文档详细介绍了CSAPP的shell实验室任务,旨在帮助学生熟悉进程控制和信号处理。实验要求学生实现一个名为tsh的微型Unix Shell,支持作业控制,包括内置命令如quit, fg, bg和jobs。学生需要完成eval、内置命令、信号处理等功能的实现。此外,文档还提供了测试和评估shell程序的方法,包括使用参考解决方案和跟踪文件进行测试。" 128521240,16942543,Python+UniApp互联网教育系统设计与实现,"['Python', 'uni-app', '课程设计', '教育系统', '小程序开发']
摘要由CSDN通过智能技术生成

介绍

分配的目的是使您更加熟悉过程控制和信号通知的概念。为此,您需要编写一个简单的Unix Shell程序来支持作业控制。

后勤

您最多可以由两个人组成的小组来解决此分配问题。唯一的“ handin”将是电子的。对作业的任何澄清和修订都将发布在课程网页上。

发放指示

现场说明:在此处插入一段,说明教师如何将shlab-handout.tar文件分发给学生。这是我们在CMU使用的说明。
首先将文件shlab-handout.tar复制到计划在其中进行工作的受保护目录(实验室目录)。然后执行以下操作:
•键入命令tar xvf shlab-handout.tar展开tarfile。
•键入命令make来编译和链接一些测试例程。
•在tsh.c顶部的标题注释中输入团队成员的姓名和Andrew ID。
查看tsh.c(微型shell)文件,您将看到它包含一个简单的Unix shell的功能框架。
为了帮助您入门,我们已经实现了一些不太有趣的功能。
您的作业1是要完成下面列出的其余空功能。为方便起见,我们在参考解决方案中列出了每个功能的大概代码行数(其中包含大量注释)。
•eval:解析和解释命令行的主例程。 [70行]
•内置cmd:识别并解释内置命令:quit,fg,bg和jobs。 [25行]
•do bgfg:实现bg和fg内置命令。 [50行]
•waitfg:等待前台作业完成。 [20行]
•sigchld处理程序:捕获SIGCHILD信号。 80行]
•sigint处理程序:捕获SIGINT(ctrl-c)信号。 [15行]
•sigtstp处理程序:捕获SIGTSTP(ctrl-z)信号。 [15行]
每次修改tsh.c文件时,键入make即可重新编译它。要运行您的shell,请在命令行中输入tsh:
UNIX> ./tsh
tsh> [在此处键入命令到您的shell]

Unix Shell概述

Shell是一个交互式的命令行解释器,它代表用户运行程序。
Shell反复打印提示,在stdin上等待命令行,然后按照命令行内容的指示执行一些操作。
命令行是由空格分隔的ASCII文本单词序列。命令行中的第一个单词是内置命令的名称或可执行文件的路径名。
其余的单词是命令行参数。如果第一个单词是内置命令,则外壳程序将在当前进程中立即执行该命令。
否则,假定该单词为可执行程序的路径名。在这种情况下,shell将派生一个子进程,
然后在该子进程的上下文中加载并运行该程序。由于解释单个命令行而创建的子进程统称为作业。
通常,一个作业可以包含多个通过Uni

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值