《UNIX程序设计》期末考试复习提纲
题型:
单选题 15分 填空题 15分 判断题 10分 简答题 36分 编程题 24分
复习要点:
(1)什么是操作系统?什么是UNIX操作系统?什么是Linux操作系统?它们之间的关系是怎样的?
操作系统:控制计算机硬件和软件资源,对作业进行合理的调度,以供用户方便使用的一组软件的集合。
UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
Linux,即GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux继承了Unix以网络为核心的设计思想,它能运行主要的UNIX工具软件、应用程序和网络协议。
(2)程序运行时,堆栈如何变化?什么是数据帧或活动记录?bp和sp指针在函数运行过程中是如何变化的?
新的栈中变量会在低地址的位置,新的堆中的变量会在高地址的位置
栈是向低地址延伸的,堆是向高地址延伸的
过程活动记录/栈帧,每个(用户)栈帧包括如下内容:
函数实参和局部变量:由于这些变量都是在调用函数时自动创建的,因此在C语言中称其为自动变量。函数返回时将自动销毁这些变量(因为栈帧会被释放),这也是自动变量和静态(以及全局)变量主要的语义区别:后者与函数执行无关,且长期存在。
函数调用的链接信息:每个函数都会用到一些CPU寄存器,比如程序计数器,其指向下一条将要执行的机器语言指令。每当一函数调用另一函数时,会在被调用函数的栈帧中保存这些寄存器的副本,以便函数返回时能为函数调用者将寄存器恢复原状。
SP:基址寄存器(stack pointer),一般在函数中用来保存进入函数时的sp的栈顶基址,出栈入栈操作时,
BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到,保持不变
(3)UNIX环境下编程共同遵循的规范有哪些?“Least Surprise”是什么意思?
KISS,keep it simple and stupid.
常见的标准共有三个:ISO C、POSIX、SUS。
ISO C:是C语言标准,是开发语言标准,与任何系统均无关。
POSIX:全写是Portable Operating System Interface。是操作系统的接口标准,在后期有包括ISO C这个C语言标准。
SUS:全写是Single Unix Specification。是POSIX.1的超集,定义了一些附加接口,扩展了POSIX.1这个标准。
POSIX.1中包含X/Open系统接口,是可选项。
X/Open系统接口可选项(X/Open System Interface),属于POSIX.1标准的一部分。描述了可选的接口,以及规定了遵循XSI(XSI Confirming)的实现,必须支持的POSIX.1的哪些可选部分。
只有遵循了XSI的实现才可以成为Unix。
Unix商标为Open Group所拥有。
Least Surprise是减少不必要的创新,减少用户学习成本
(4)常用的Shell命令,如ls、cd、dd、pwd、ps、cp、chown、chmod、mkdir、size等的具体用法。
ls(list)类似于dos下的dir命令,列出所有文件
ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。
ls –l 该参数显示更详细的文件信息。
ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。
cd(change directory) 用于切换用户当前工作目录
cd aaa 进入aaa目录
cd 命令后不指定目录,会切换到当前用户的home 目录
cd ~ 作用同cd后不指定目录,切换到当前用户的home 目录
cd - 命令后跟一个减号,则会退回到切换前的目录
cd .. 返回到当前目录下的上一级目录
dd(disk dump)指定大小拷贝文件
pwd(print working directory)用于显示用户当前工作目录
ps(processes status)显示终端下的所有进程
cp(copy)复制命令
复制一个文件到另一目录:cp 1.txt ../test2
复制一个文件到本目录并改名:cp 1.txt 2.txt
复制一个文件夹a并改名为b:cp -r a b
chown (change owner) 改变文件的所有者
chmod(change mode)改变文件的权限模式
mkdir(make diretory)创建目录