第一章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 ABC6、执行命令#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/g4.解释下列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)重复命令。
仅重复实现最近一次使用的插入或删除命令。
第四章作业11、红旗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下管道线就是用竖杠将多条命令连接起来,其中前一个命令的输出结果作为后一个命令的输入。
第四章作业21、利用for循环将当前目录下的、c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。
解:dir=/home/hzxyjsjfor f in *、cdomv $f $dirdonels -S $dir注:写法多样,这只就是其中一种写法。
2、编写一个shell脚本,求斐波那契数列的前10项及总与,并输出各项及总与。
解:f1=1f2=1sum=$f1+$f2=2echo $f1 $f2for((i=1;i<9;i++))dolet f3=$f1+$f2let f1=$f2let f2=$f3let sum=$sum+$f3echo $f3echo $sumdone注:写法多样,这只就是其中一种写法。
第五章作业-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 -lstdc++”;执行命令“#、/a、out”即可。
若就是自定义输出可执行文件则需要添加-o选项以及对应的输出可执行文件,即“#gcc file、c -o file”、“gcc -lstdc++ -o file”执行命令“#、/file”即可。
3、若有一个file、c的源文件,需用gdb调试工具对其进行调试,该如何进入gdb?进入gdb之后如何设置断点、单步执行、连续执行?答:首先带-g选项进行编译,即“#gcc -g file、c -o file”,然后在提示符执行命令“#gdb file”即可可把file、c调入gdb。