第一章
1. 简述操作系统的定义,并指出操作系统的功能主要有哪些?
答:操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统的主要功能:(1)硬件控制;(2)资源管理;(3)提供用户接口;(4)提供输入输出处理;(5)系统监控;(6)实现计算机间的通信。 注:不局限于以上几点。
2. Linux操作系统何时出现?由谁开发出来?并列出Linux操作系统的主要特点。 答:1991年,由芬兰赫尔辛基大学学生Linus Torvalds开发出来。Linux操作系统主要特点有: (1)与UNIX兼容; (2)自由软件和源码公开; (3)性能高和安全性强; (4)便于定制和再开发; (5)互操作性高;
(6)全面的多任务和真正的32位操作系统。 注:不局限于以上6个。、
3. 解释Linux操作系统核心版本和发行版本的含义。Linux 2.4.1版和2.5.1版中,哪一个版本更稳定?为什么?
答:核心版本主要是Linux的内核。发型版本是各个公司推出的版本。2.4.1版本更稳定。2.5.1版本是在是测试版本,不一定稳定。(具体建p8核心版本的版本约定)
4. Linux操作系统的超级用户是什么?超级用户登陆shell默认的提示符是什么?红旗Linux默认的shell类型是哪一种?
答:Linux操作系统的超级用户是root,超级用户登录默认提示符是“#”,红旗Linux默认的shell类型是bash。
学习.参考
. . . .
第二章
1. 简述Linux命令的一般格式。
答:Linux命令的一般格式是:命令+[选项]+[参数],其中选项和参数是可选项,不同命令有区别。有些命令是不带参数,有些命令必须带参数。
2. 请说明以下命令的功能:date,cd,cp,pwd,rm,mkdir,echo,who,ls,cat,more,man 答:
date命令:显示当天日期; cd命令:切换目录; cp命令:复制文件;
pwd命令:显示当前用户工作目录; rm命令:删除文件; mkdir命令:建立目录;
echo命令:将参数表示的内容显示在屏幕上; who命令:显示哪些用户在使用系统; ls命令:列出某个目录下的文件; cat命令:显示参数表示文件的内容; more命令:显示文件内容;
man命令:帮助命令,可以查看所有Linux命令的帮助信息。
3. 什么是文件主?什么是文件?Linux下主要有哪些不同类型的文件?
答:Linux为每个文件都分配了一个文件所有者,称为文件主;Linux中文件是指文件系统中存储数据的一个命名对象;
Linux下主要的文件类型有:普通文件、目录文件、设备文件、符号链接文件。
4. cp,copy和mv命令有何异同?
答:cp是把一个文件复制到另外一个地方,原来文件保留,mv是把一个文件移动到另
学习.参考
. . . .
外一个地方,原来的位置不再保留原来的文件,相当于window的“剪切”。Linux下没有copy这个命令。
5. 如何对文件ABC分别按字典顺序、月份顺序、算术进行排序? 答:sort -d -M -n ABC
6. 执行命令#chmod 0775 file1的结果如何?
答:文件file1的文件主和group用户都均有可读、可写、可执行的权限,other用户具有可读和可执行的权限,没有写的权限。
第三章作业
1. vi编辑器的工作方式有哪些?相互之间如何转换?
答:Vi编辑器的工作方式有三种,即命令方式、编辑方式(或插入方式)、ex转义方式(冒号方式或末行方式)。
新建或打开一个文件的时候首先进入命令方式,输入插入命令如i,a,o等便可进入编辑模式,在编辑方式中按“Esc”键即可返回到命令方式,在命令方式直接输入冒号“:”即可进入ex转义方式。
2. 简述如何利用vi编辑器建立或打开一个文件,进行编辑后保存退出。说明所用到的命令。
答:以建立或打开文件file为例,建立或打开file的命令为“vi file”,回车后即可进入file的命令模式,输入插入命令(i,a,o等)即可进入编辑模式,编辑结束后按“Esc键”即可返回命令模式。在命令模式下输入冒号“:”,此时在末行出现一个冒号,在冒号后面输入“wq”即可保存退出。
3. 要将文件中所有的ABCD替换为abcd,该用什么命令? 答:g/ABCD/s//abcd/g
4.解释下列vi命令的功能。
学习.参考
. . . .
(1)x;(2)dd;(3)d$;(4)dH;(5)dM;(6)dL;(7)u;(8).。 答:(1)删除光标所在的字符;(2)删除光标所在的行;(3)将光标所在位置删除至行尾;(4)删除从当前行至所显示屏幕顶行的全部行;(5)删除从当前行至命令M所指定行之间的所有行;(6)删除从当前行到屏幕底行的所有行;(7)复原命令,即取消刚才插入或删除的内容,恢复到原来的情况;(8)重复命令。仅重复实现最近一次使用的插入或删除命令。
第四章作业1
1. 红旗Linux操作系统默认的Shell类型是什么?在Linux环境下如何建立和执行一个Shell脚本?
答:红旗Linux操作系统下默认的shell类型是bash,在Linux环境下建立脚本的命令“vi 文件名”,和建立普通文件一样。编写好之后保存退出。执行脚本的命令为“bash 脚本名 [参数]”,参数是可选项,由脚本的命令决定。
2. 在Linux下,想使用某个命令,但只记得该命令的开头若干字母怎么办? 答:输入记得开头部分的若干字母,按tab键,若输入的部分能唯一确定该命令,则自动填充完整,若不能唯一确定该命令,按两次tab键,则匹配的所有命令将在提示符下方显示。
3. 简述Linux下三种引号的用法。
答:(1)双引号括起来的内容,除了$、\\、`、外,其他符合均视为普通字符;
(2)单引号括起来的字符都作为普通字符;
(3)倒引号括起来的字符串被shell解释为命令行。执行时shell先将倒引号内的命令执行,将执行结果将其代替。
4. 简述输出重定向符“>”与输出附加定向符“>>”的区别。
答:“>”把相应命令执行结果保存到目标文件,覆盖文件原来的内容,而“>>”将相应命令执行结果保存到目标文件的末尾,不会删除文件原来的内容。
5. 简述Linux下管道线的概念。
学习.参考
. . . .
答:Linux下管道线是用竖杠将多条命令连接起来,其中前一个命令的输出结果作为后一个命令的输入。
第四章作业2
1.利用for循环将当前目录下的.c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。 解:
dir=/home/hzxyjsj for f in *.c do
mv $f $dir
done ls -S $dir
注:写法多样,这只是其中一种写法。
2.编写一个shell脚本,求斐波那契数列的前10项及总和,并输出各项及总和。 解: f1=1 f2=1
sum=$f1+$f2=2 echo $f1 $f2 for((i=1;i<9;i++)) do
let f3=$f1+$f2 let f1=$f2 let f2=$f3 let sum=$sum+$f3 echo $f3
学习.参考
. . . .
echo $sum
done
注:写法多样,这只是其中一种写法。
第五章作业-Linux内核简介
1.什么是进程?什么是线程?进程至少包含的基本状态有哪些?Linux进程包含哪些状态?
答:进程就是程序的一次执行过程;线程是进程的“执行上下文,即进程中指令的不同执行路径;进程至少包含三个状态:运行态、就绪态、封锁态(或阻塞态);Linux进程包含的状态有:运行态、就绪态、不可冲断等待态、可冲断等待态、停止态、僵死态。
2.Linux内核调度采用哪种方式?Linux系统提供的调度策略有哪些?
答:Linux内核采用“抢占式优先级”的调度方式;Linux系统提供的调度策略有三种:(1)SCHED_FIFO,即先来先服务,适合实时进程,对时间要求比较高;(2)SCHED_RR,时间片轮转法,适合每次运行需要较长时间的进程;
(3)SCHED_OTHER,适合交互式分时进程,进程的优先权取决于进程剩余时间配额和其优先级。
3.简述Shell的基本工作过程。
答:shell基本工作过程大致有以下几个过程: (1)中断读入命令行;
(2)分离命令名,按execve()的要求置放参数;
(3)创建子进程id=fork(),若id的值为0则创建的是子进程,若id的值不为0则创建的是父进程;
(4)若是子进程则调用子进程,执行结束后返回shell提示符,若是父进程则判断其是否是后台进程,若是后台进程则直接返回shell提示符,若不是后台进程这执行该进程后返回shell提示符。
学习.参考
. . . .
4.VFS是什么?为什么要建立VFS?
答:VFS即虚拟文件系统,将不同文件系统的细节隐藏起来,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面。
建立VFS使得用户进程在读取不同的文件系统的时候消除用户对不同文件系统的差异性,提高可操作性。
5.什么是中断?中断的一般处理过程是什么?
答:中断是指在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 中断处理过程:
(1)保存正在运行进行各寄存器的内容; (2)确定“中断源”,决定处理方式; (3)调用冲断处理程序,对冲断进行处理;
(4)中断处理完成后返回现场,恢复中断时保留的各寄存器的内容。
第六章作业
1. C语言编译过程有几个阶段?并简述每个阶段所做的工作。 答:4个阶段。
(1)预处理阶段,主要是对源程序中伪指令和特殊符号的处理;
(2)编译阶段,主要对预处理后的输出文件进行词法分析和语法分析,找出不符合语法规则的部分;
(3)汇编阶段,把汇编语言代码翻译成机器语言代码的过程; (4)连接阶段,将目标文件连接成为最终的可执行文件。
2.如何用GCC对C和C++源程序进行编译、执行?
答:GCC对C和C++源程序直接编译,默认都是生产a.out的可执行文件,编译命令为“#gcc file.c”、“#gcc file.cpp -lstdc++”;执行命令“#./a.out”即可。 若是自定义输出可执行文件则需要添加-o选项以及对应的输出可执行文件,即“#gcc file.c -o file”、“gcc file.cpp -lstdc++ -o file”
学习.参考
. . . .
执行命令“#./file”即可。
3.若有一个file.c的源文件,需用gdb调试工具对其进行调试,该如何进入gdb?进入gdb之后如何设置断点、单步执行、连续执行?
答:首先带-g选项进行编译,即“#gcc -g file.c -o file”,然后在提示符执行命令“#gdb file”即可可把file.c调入gdb。
第七章作业
1. 写出以下系统调用函数:(1)创建一个文件;(2)打开一个文件;(3)关闭一个文件;(4)读一个文件;(5)写一个文件。
答:(1)create();(2)open();(3)close();(4)read();(5)write()
2. 指出以下文件操作标志的意义:(1)O_CREAT;(2)O_RDONLY;(3)O_WRONLY。 答:(1)打开一个文件,若该文件不存在就创建它; (2)以只读方式打开文件; (3)以只写方式打开文件。
3. 指出以下进程控制有关系统调用函数的功能:(1)fork();(2)wait();(3)getpid();(4)getppid();(5)sleep();(6)nice()。 答:(1)创建一个进程; (2)等待一个进程的结束; (3)获取当前进程的进程号; (4)获取当前进程的父进程号; (5)休眠,时间单位为秒;
(6)表示进程的优先级,值越小优先级越大。
第八、九章作业
1. 在Linux系统中,与用户账户管理有关的主要有哪些文件?并说明用户的密码是保存在哪一个文件。
学习.参考
. . . .
答:在Linux系统中,与用户帐户管理有关的主要有三个文件: (1)passwd文件,为系统中的每一个合法用户记录一条相应信息; (2)shadow文件,用于存放用户账号的密码信息和密码的有效期等信息;
(3)group文件,用于保存系统中的用户及组的信息。很显然,用户的密码信息保存在shadow文件里面,而非passwd文件。
2. 在Linux系统中,通过命令方式对用户、组分别进行创建、删除的命令分别是什么? 答:添加用户命令为useradd,添加组的命令为groupadd,删除用户的命令为userdel,删除组的命令为groupdel,这些命令后面跟踪相应的用户或组,即可将相应的用户或组添加或删除。
3. Linux系统中常用的网络命令有哪些?并简述这些命令的功能。 答:Linux系统中常用的网络命令主要有4个: (1)ping,主要用于测试主机的连通性;
(2)ifconfig,网络接口配置命令,用于指定一个网络接口地址或设置网络接口参数; (3)netstat,用于对TCP/IP网络协议和连接进行统计; (4)route,用于配置静态路由信息,使不同网络可达。
补充说明:后面章节的作业输入虽然没有布置给大家做,但是希望大家要掌握。 第四章课本中讲过的脚本例子要看得懂,习题中讲过的题目以及作业布置的题目要举一反三,融会贯通。
Makefile文件的编写必须要会 p241表8.4要求理解
学习.参考
因篇幅问题不能全部显示,请点此查看更多更全内容