Linux操作系统(下)复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习题
一、填空题
1、Linux操作系统是Unix 操作系统的一个克隆版本。
2、Linux的命令运行环境昌Shell,它是一种命令解释器,在用户和操作系统之间提供了一个交互接口。
3、Linux系统中有三个基本的文件类型:普通文件、目录文件和设备文件。
4、Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。
5、在Linux系统中建立新目录的命令是mkdir 。
6、Linux编程可分为Shell 编程和高级语言编程。
7、Linux系统提供了许多文本编辑程序,比较常用的有vi 和emacs 等。
8、要使用make,必须编写一个叫Makefile 的文件。
9、autoconf 是一个用于生成可以自动配置软件源代码包以适应多种类Unix系统的shell 脚本的工具。
10、Automake 是一个从文件Makefile.am中自动生成Makefile.in文件的工具。
11、Linux的文件是个简单的字节序列。
12、对于Linux而言,所有对设备和文件的操作都使用文件描述符。
13、调用open 函数可以打开或创建一个文件。
14、设置文件的存取权限,分为属主、组用户和其他用户三类。
每类分为读、写和执行权限。
15、第一个进程都有一个目录与之相连,它称为当前工作目录,或简单地称为工作目录。
16、当打开一个流时,标准输入输出函数返回一个FILE结构的指针。
17、在三个流是在执行程序时自动打开的。
它们是标准输入、标准输出和标准错误输出。
18、有3种类型的无格式I/O 函数可用来读写流,它们是字符I/O函数、行I/O函数和块I/O函数。
19、每一个流对象内部都保持着两个指示器:一个是错误指示器,当读写文件出错时该指示器被设置;另一个为文件结束指示器,当遇到文件尾时该指示器被设置。
20、流有3种不同的缓冲类型,它们是全缓冲、行缓冲和无缓冲。
21、进程在其生存期内可能处于三种基本状态:运行态、就绪态、等待态。
22、为了让Linux来管理系统中的进程,每个进程用一个task_struct 数据结构来表示。
23、在Linux系统中,进程有两种运行模式:用户模式和系统模式。
24、创建一个新进程的唯一方法是由某个已存在的进程调用fork 或vfork 函数,被创建的新进程称为子进程,已存在的进程称为父进程。
25、系统中的每个进程都有唯一的非负整数作为标识,它被称为进程标识号。
26、进程间通信有如下一些目的:数据传输、共享数据、通知事件、资源共享、进程控制.
27、Linux支持Unix System v中的三种进程间通信机制,它们是:消息队列、信号量、共享内存。
28、在实际应用中,一个用户进程常常需要对多个信号作出处理。
为了方便对多信号进行处理,在Linux系统中引入了信号集的概念。
29、命名管道又叫先进先出队列。
30、每一个System V IPC资源有2个唯一的标志与之相连,即关键字、标识符。
31、消息队列是一条由消息连接而成的链表、它保存在内核中,通过消息队列的引用标识符来访问。
32、信号量实际上是个整数计数器、主要用来控制多个进程对共享资源的访问。
33、共享内存机制是最快的一种进程通信机制。
34、线程可分为用户和内核态线程。
35、如果线程可在进程执行期间的任意时刻被创建,并且线程的数量事先没有必要指定,这样的线程称为动态线程。
36、按照POSIX标准,POSIX提供了两种类型的同步机制,它们是互斥锁和条件变量。
37、互斥锁的特点是原子性、唯一性、非繁忙等待。
38、每个POSIX线程由一个相连的属性对象来表示特性。
39、TCP/IP协议参考模型共分为四层,它们分别是应用层、传输层、网际协议层、主机联网层。
40、利用套接字进行通信的进程采用客户机/服务器模式。
41、Linux支持伯克利(BSD)风格的套接字编程。
它同时支持面向连接和无连接类型的套接字。
42、数据流套接字定义了一种面向连接的服务,实现了无差错、无重复的顺序数据传输。
数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输。
43、在计算机内存中有2种存储整数的方式,低位字节存储在这个整数的开始地址位置,是little-endian 方式,高位字节存储在开始地址位置是big-endian 方式。
44.管道分无名管道和有名管道,用于父进程和子进程间的通信的管道是:无名管道。
45.常用的socket类型有两种:流式Socke 和数据报类型。
46.为了获得父进程的ID号,可是使用函数getppid() 。
47.在Linux下调试c程序时,在提示符(gdb)下输入b10表示在第10行设置断点。
48.用GCC编译过程可以被细分为四个阶段:预处理、编译、汇编和链接。
49.关闭防火墙命令是:service iptables stop 。
50.Linux中文件编程可以使用两类函数:Linux操作系统文件API 和C语言库函数。
51.使用alarm函数可以设置一个时间值(闹钟时间),当设置的时间到了时,产生SIGALRM 信号。
52.标准设备文件有:标准输入文件,标准输出文件和标准错误输出文件。
53.编译生成可调试可执行文件时,需加-g 参数。
二、选择题
1、在目录下存放的都是系统启动时要用到的程序。
在使用Lilo引导Linux的时候,会用到这里的一些信息。
A. /boot
B. /bin
C. /dev
D. /etc
2、Linux的工作目录用表示。
A. .
B. ,
C. *
D. #
3、利用命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件
或将几个文件组合成一个文件以便于网络传输是非常有用的。
A. gzip
B. tar
C. cd
D. ls
4、在Linuc下想获得一个命令的帮助,可以使用命令。
A. cd
B. ls
C. man
D. gzip
5、命令用来重新启动计算机。
A. shutdown
B. halt
C. reboot
D. quit
6、用gcc编译生成可执行文件的过程中,看起来像是一步就完成了,但实际上它要经历如下的四个步骤。
A. 预处理、编译、汇编、链接
B. 预处理、汇编、编译、链接
C. 链接、预处理、编译、汇编
D. 编译、预处理、汇编、链接
7、在Makefile文件中,使用变量的值方法是。
A. $变量名
B. $(变量名)
C. #变量名
D. #(变量名)
8、由autoconf生成的脚本通常被命名为。
A. Configure
B. gcc
C. makefile
D. make
9、automake首先读入文件,然后生成。
A. Makefile.am、Makefile.in
B. Makefile.in、Makefile.am
C. Makefile.am、Makefile
D. Makefile、Makefile.in
10、Linux包含了一个调试程序,是一个用来调试C和C++程序的强力调试器,它使用户能在程序运行时观察程序的内部结构和内存的使用情况。
A. gcc
B. make
C. gdb
D. autoconf
11、函数是从文件中读取指定长度的数据到内存中。
A. open
B. read
C. write
D. create
12、函数是将内存中数据写入文件。
A. open
B. read
C. write
D. create
13、假设用户user是file1文件的拥有,file1文件的存取权限被设为-r-xr--r--,这表明user 只有的权力。
A. 读和执行
B. 读和写
C. 写和执行
D. 只读
14、函数提供了进一步管理低级文件描述符的各种手段,用它可以对已打开的文件描述符执行各种控制操作。
A. Chmod
B. fcntl
C. chown
D. umask
15、当访问一个目录文件时,同普通文件一样,需要将其打开。
打开目录文件的函数是。
A. closedir
B. mkdir
C. opendir
D. readdir
16、下面的函数不能用于打开流的是。
A. fopen
B. freopen
C. fdopen
D. ffopen
17、下列函数不能一次读入一个字符的是。
A. fgetc
B. fgetchar
C. getchar
D. getc
18、块I/O有时也称为。
A. 字符I/O
B. 行I/O
C. 列I/O
D. 二进制I/O
19、函数能够对输入输出数据进行诸如数据类型、精度、位置等格式控制。
A. 格式化I/O
B. 字符I/O
C. 行I/O
D. 块I/O
20、下列函数不属于格式输出的是。
A. printf
B. fprintf
C. scanf
D. sprintf
21、可运行进程是一个只等待资源的进程。
进程可以忽略大部分信号,但下列信号中是不忽略的。
A. 内存B、CPU C、键盘D、终端
22、fork函数在父进程中的返回值是。
A、创建的子进程的进程标识号
B、0
C、-1
D、1
23、在Linux中,下列不属于正常结束进程的方法是。
A、在main函数中调用return
B、调用exit函数
C、调用_exit函数
D、调用abort函数
24、一个进程调用wait或waitpid函数,可能产生3种情况,下列不属于这3种情况的是。
A、如果所有子进程都还在运行、进程挂起
B、如果恰有子进程结束,它的终止状态正等待父进程提取,立即得到该终止状态字并返回,其返回值为该子进程的进程号
C、如果该进程没有子进程,立即返回,返回值为-1
D、如果该进程没有子进程,立即返回,返回值为0
25、返回调用进程的进程标识号的系统函数是。
A、getpid
B、getpgrp
C、getppid
D、setpid
26、进程可以忽略大部分信号,但下列信号中是不能忽略的。
A、SIGHUP
B、SIGINT
C、SIGSTOP
D、SIGQUIT
27、在kill(pid,signum)函数中,pid参数表示kill函数发送信号对象的进程号或进程组号。
Pid>0表示。
A、向进程号为pid值的进程发送信号
B、向与发送信号的进程有相同进程组号的进程发送信号
C、向进程组号为pid绝对值的进程组发送信号
D、未定义
28、可以使用命令得到IPC机制中所有对象的状态。
A、ls
B、cd
C、kill
D、ipcs
29、打开或创建消息队列的函数是。
A、msgget
B、msginit
C、msgcreate
D、msg
30、创建可打开信号量集的系统函数是。
A、seminit
B、sem
C、semget
D、semcreate
31、创建共享内存的函数是。
A、shminit
B、seminit D、semget D、shmget
32、在POSIX中,线程是用动态地创建的。
A、pthread_self
B、pthread_create
C、create_pthread
D、pthread_new
33、要结束一个线程,需要调用函数。
A、exit
B、pthread_quit
C、pthread_exit
D、return
34、可以使用下面的函数将一个线程挂起。
A、pthread_self
B、pthread_pause
C、pthread_join
D、pthread_exit
35、用来初始化一个互斥锁。
A、pthread_mutex_init
B、pthtead_mutex_creat
C、pthtead_mutex_begin
D、pthtead_mutex_lock
36、在使用一个线程属性对象之前,必须对其进行初始化,函数完成对线程属性对象初始化。
A、pthread_init
B、pthread_attr_create
C、pthread_attr_destroy
D、pthread_attr_init
37、下列不属于应用层协议的是。
A、FTP
B、HTTP
C、TCP
D、DNS
38、考虑一个整数1234,在little-endian方式下,在内存中存放方式是。
A、1234
B、3412
C、1243
D、4321
39、用于返回本地套接字地址的函数是。
A、socket
B、getsockname
C、getpeername
D、getsocket
40、要创建一个倾听套接字,必须首先调用函数 B 创建一个主动套接字,然后调用函数
A 将它与服务器套接字地址绑定在一起,最后调用函数 D 。
A、bind
B、socket
C、create
D、listen
41、在数据报套接字上发送和接收数据的正常方法是使用 B 和 D 函数。
A、send
B、sendto
C、recv
D、recvfrom
42、/root目录是: B
A. 系统的根目录
B. 超级用户的主目录
C. 动态连接库
D. 系统管理程序
43、下列不是可执行程序运行时内存结构的是 D 。
A. 代码区
B. 数据区
C. 栈堆区
D. 变量区
44、在Linux操作系统中,当要使用光驱时,首先需要使用(C )命令加载光驱
A mount /dev/fd0 /mnt/floppy
B mount /dev/floppy /mnt/floppy
C mount /dev/cdrom /mnt/cdrom
D mount /mnt/floppy /mnt/fd0
45、命令”rm –f /tmp/temp ”的功能是(B )。
A 删除/tmp/temp文件,但是需要键入”y”进行确认
B 直接删除/tmp/temp文件,不用确认,因为有-f选项
C 创建/tmp/temp文件,但是需要键入”y”进行确认
D 直接创建/tmp/temp文件,不用确认,因为有-f选项
46、任何时候用户需要回到上一级目录使用命令 D 。
A. cd ~ (回到当前用户的home目录,等同于cd无参数回车)
B. pwd (显示你现在所在的目录路径是哪里。
)
C.cd .
D. cd..
47、文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用户的写权限,下列命令中正确的是。
A. chmod u+x, g+w exer1
B. chmod 646 exer1
C. chmod a-x, g+w exer1
D. chmod g+w exer1
48、.在vi编辑器中执行存盘退出命令是。
A . q (退出不保存)
B . wq!
C . q! ( 强制退出不保存)
D . WQ(没有大写)
49、当打开vi编辑器编辑文件时,vi处于()模式。
A 命令模式
B 编辑模式
C 实模式
D 虚模式
50、为了将当前目录下的归档文件myftp.tgz解压缩,可以使用:
A. tar xvzf myftp.tgz
B. tar xvf myftp.tgz
C. tar vzf myftp.tgz
D. tar jvzf myftp.tgz
文件为.tgz的后缀名,所有解压的命令为tar xvzf
51、在Linux系统中,硬件设备大部分是安装在______目录下的。
A. /mnt
B. /dev
C. /proc
D. /swap
52、用vi编辑并保存文件后,要退出vi编辑器时,可以转换到命令模式输入()
A :q
B :a
C :b
D :c
53、下列说法错误的是。
A. 静态变量只初始化一次。
B. 全局变量和静态局部变量在运行时改变其值。
C. 堆区数据由编译器自动分配释放。
D. 函数中定义的局部变量内存分配由编译器自动分配释放。
54、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是。
A . -m
B . -d
C. -f D . –p
55、下列有关fork()函数返回值说法错误的是。
A. 函数成功返回时,一次返回两个值,错误返回时为-1。
B. 返回值等于0表示子进程。
C. 返回值大于0表示父进程。
D. 大于0的返回值为父进程PID 号。
fock函数调用一次却返回两次;向父进程返回子进程的ID,向子进程中返回0,父进程从fork()返回时的返回值是子进程的进程号,非零;
56、下列进程间通信方式中能实现不同计算机间进程通信的是。
A.管道B.消息队列
C.套接字D.共享内存
套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。
三、简答题
1、什么是Bootloader?简述Bootloader的功能。
答:Bootloader就是在操作系统内核运行之前运行的一段程序,类似于PC机中的BIOS 程序。
Bootloader的功能是完成硬件设备的初始化、建立内存空间的映射图的功能,将系统的软硬件环境带到一个合适的状态,为最终调用系统内核做好准备。
2、试说明Linux下C程序从编写到运行的一般步骤。
答:Linux下C编程的一般步骤如下:
(1)在linux的命令提示符下启动编辑器,如输入vi,启动vi编辑器。
(2)输入程序的内容,然后保存,退出。
(3)进行编译,GCC 源文件–o 目标文件。
(4)如果发现程序有语法错误或者逻辑错误,则需要继续调试程序,直至程序无任何语法错误或逻辑错误。
(5)运行程序./可执行文件名
3、一个嵌入式Linux系统从软件的角度看通常可以分为哪几个层次?
答:(1)引导加载程序(2)Linux内核
(3)文件系统(4)用户应用程序
4、什么是守护进程?如何创建守护进程?
答:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。
它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
创建守护进程的步骤如下:
(1)创建子进程,父进程退出
(2)在子进程中创建新会话
(3)改变当前目录为根目录
(4)重设文件权限掩码
(5)关闭文件描述符
5、进程可以通过哪3种方式来响应信号,发送信号、捕捉信号分别使用什么函数来实现?(7分)
答:(1)忽略信号(2)捕捉信号(3)执行缺省操作
(4)发送信号的函数:kill() raise()
(5)捕获信号的函数:alarm() pause()
6、什么是虚拟文件系统(VFS)?它所起作用是什么?
答:VFS 就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分,它位于用户程序和具体的文件系统之间。
它对用户程序提供了标准的文件系统调用接口。
VFS对用户屏蔽了底层文件系统的实现细节和差异。
7、简述U-Boot的作用。
答:U-Boot 是在ppcboot以及ARMboot的基础上发展而来的较为通用的bootlader。
U-Boot已经成为ARM平台事实上的标准Bootloader。
四、程序填空题
/*copy_file.c*/
五、编程题
/*waitpid.c*/。