当前位置:首页 >> 英语 >> 11级测控《嵌入式linux开发基础》复习大纲

11级测控《嵌入式linux开发基础》复习大纲


《嵌入式 linux 开发基础》复习大纲 一、 期末考试题型 1、 2、 3、 4、 5、 选择题,每个 2 分,共计 40 分 判断题或者填空题,每个 1 分,共计 10 分 问答题,每个 5 分,共计 20 分 阅读程序填空或者根据功能写命令,每空 2 分,共计 10 分 编程题目,每个 10 分,共计 20 分(编写 makefile 和 shell 编

/>程各一个;注意课堂和实验相关内容)。

成绩比例 20%+20%+60%=100% 复习提纲 第一章 嵌入式系统概述

1、掌握嵌入式系统的定义及其嵌入式系统的特点。 2、掌握嵌入式系统的构成,软件构成和硬件构成;以及 RTOS,EMPU,EDSP,SOC 的概念。 3、理解嵌入式实时操作系统具备的特点 4、了解常见的嵌入式操作系统 第二章 ARM 处理器概述 1、了解 ARM 体系结构的分类和扩展技术 2、掌握 ARM 处理器的工作状态(选择题) 3、掌握 ARM 处理器的存储格式(选择题) 4、掌握 ARM 处理器的工作模式(问答题)

5、了解 S3C2410 的处理器的特点 第三章 linux 系统概述 1、掌握 linux 的分区 2、掌握 linux 文件及文件系统 3、了解 linux 的启动过程 第四章 linux 命令 1、熟悉掌握常见的 linux 命令,包括实验中使用的命令。 第五章 linux 编程基础 1、熟悉使用 vi 命令,并能使用 vi 中自带的命令。 2、熟悉理解 gcc 的编译过程 3、掌握 GDB 调试器的使用方法和调试步骤。 4、熟悉掌握编写 makefile,要求根据要求编写简单的 makefile 文 件,类似实验中的 makefile 文件的编写 5、能编写简单的 shell 程序,比如实验要求的 shell 程序的编写。 第六章 构建嵌入式 linux 平台开发 1、熟悉掌握交叉编译环境的建立。 2、掌握 bootloader 的作用和移植步骤 3、掌握内核剪切和编译的步骤 4、理解根文件系统建立的步骤 第七章 驱动程序设计 1、理解驱动程序的特点 2、理解设备的分类

第八章 文件 I/O 编程 1、掌握不带缓存的文件 I/O 操作; 2、掌握嵌入式 linux 设备文件 IO 操作实例 A、掌握串口设备的使用;

常见题型
一,选择题 1. 下列文件中,包含了主机名到 IP 地址的映射关系的文件是: B 。 A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks 2. 不需要编译内核的情况是 D 。 A 删除系统不用的设备驱动程序时 B 升级内核时 C 添加新硬件时 D 将网卡激活 3. 在 shell 中变量的赋值有四种方法,其中,采用 name=12 的方法称 A 。 A 直接赋值 B 使用 read 命令 C 使用命令行参数 D 使用命令的输出 4. D 命令可以从文本文件的每一行中截取指定内容的数据。 A cp B dd C fmt D cut 51. 内核不包括的子系统是 D 。 A 进程 管理 系统 B 内存管理系统 C I/O 管理系统 D 硬件管理系统 6、下列不属于常见的嵌入式 GUI 的有( A ) A. Windows B. QT C. GNOME D. MiniGUI 7、 存储一个 32 位数 0x876165 到 2000H~2003H 四个字节单元中, 若以小端模式存储, 则 2000H 单元的内容为( C) A、0x00 B、0x87 C、0x65 D、0x61 8、关于 Linux2.4 内核,说法错误的是( A ) A. Linux 为单内核,效率高,紧凑 B. 按进程优先级调度 C. 具有虚拟文件系统,可以支持多种文件系统 D. 设备驱动模块化 9、关于交叉编译描述正确的是:( D ) A. 编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行 10、Linux 文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件, 一般应将其放在( C )目录中。 A、/bin B、/etc C、/dev D、/lib 11、若要把动态加载模块的驱动加载进内核,可以使用以下命令实现(B )

A、make modules C、 rmmod modules

B、insmod modules D、lsmod modules

12、关于make工具的使用,下面错误的是:( B ) A. 不指定目标时,make 缺省处理 makefile 文件的第一个目标。 B. makefile 文件中对宏名的引用为#(宏名) 。 C. makefile 文件中$@参数表示一条规则中目标的名字。 D. make CC=arm-linux-gcc 命令表示使用 arm-linux-gcc 代替 makefile 文件中 CC 的宏定 义执行 make 命令。 13、嵌入式 Linux 开发中使用 GDB 调试,说法错误的是:( A ) A.GDB 程序在宿主机上运行 B. 需要使用远程调试模式 C.需要交叉编译 GDBServer D. 被调试程序在宿主机上运行 14、下列提法中,不属于 ifconfig 命令的作用范围的是( D ) A、配置本地回环地址 B、配置网卡的 IP 地址 C、激活网卡适配器 D、加载网卡到内核中 15、init 启动进程需要读取(A )配置文件: A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh 16、QT/Embedded 的底层图形引擎基于下列哪种接口技术( A ) A、framebuffer B、GAL D、IAL D、GFX 17、在用 ls –l 命令查看文件属性时,字符设备文件类型的标志是( A ) A、c B、b C、— D、l 18、 ( B )命令可以从文本文件的每一行中截取指定内容的数据。 A、cp B、dd C、fmt D、cut 191、为了得到所有的命令行输入的参数,我们可以使用变量( B ) A、$# B、$@ C、 $0 D、$! 20、Linux 将设备分成三类,不是这三类的是:( D ) A.网络设备 B. 字符设备 C. 块设备 D. 杂项设备 21、关于二阶段 BootLoader 说法错误的是:( B ) A. BootLoader 的第一阶段代码全部由汇编语言构成; B. BootLoader 的第一阶段代码在 Flash 中运行; C. BootLoader 中可以使用 glib 库中的函数; D. BootLoader 第二阶段代码大部分由 C 语言写成,所以需要使用栈。 22.下列不是嵌入式系统特点的是( D ) A. 系统内核小 B. 专用性强 C. 系统精简 D. 实时性要求不高 23、嵌入式系统一般由嵌入式微处理器,系统外部电路,( A )和特定应用程序 4 个部 分组成。 A.嵌入式操作系统 B. 硬件驱动程序 C. BootLoader D. 文件系统 24、关于 ARM7 系列微处理器的操作模式,不对的是:( D ) A.一共有 7 种操作模式 B. 除了用户模式,其他都为特权模式 C.不同模式下使用的寄存器可能会不相同 D. 通过改变 SPSR 中的低 5 位来切换模式 25. 若一台计算机的内存为 128MB,则交换分区的大小通常是 C 。 A 64MB B 128MB C 256MB D 512MB

26. Linux 有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来 查看文件内容,应使用 C 命令。 A cat B more C less D menu 27. 下列信息是某系统用 ps –ef 命令列出的正在运行的进程, D 进程是运行 Internet 超级服务器,它负责监听 Internet sockets 上的连接,并调用合适的服务器来处理接收的 信息。 A root 1 4.0 0.0 344 204? S 17:09 0:00 init B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd 28、用 ls –al 命令列出下面的文件列表, D 文件是符号连接文件。 A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang<FONT< BR> D lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng 29.NFS 是( C )系统。 A 文件 B 磁盘 C 网络文件 D 操作 30.Linux 文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件, 一般应将其放在( C )目录中。 A /bin B /etc C /dev D /lib 311.关闭 linux 系统(不重新启动)可使用命令( B ) 。 A Ctrl+Alt+Del B halt C shutdown -r now D reboot 32.在 vi 编辑器中的命令模式下,键入( B )可在光标当前所在行下添加一新行。 A ; B ; C ; D A 33.在 vi 编辑器中的命令模式下,删除当前光标处的字符使用( A )命令。 A ; B ;; C ; D ;; 34.在 vi 编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 (C )命 令。 A 上箭头 B 下箭头 C <.>; D <*>; 35、从安全角度考虑不适合作为嵌入式系统文件的文件格式是( D ) A、jffs2 B、cramfs C、yaffs D、ext2 36.用命令 ls -al 显示出文件 ff 的描述如下所示,由此可知文件 ff 的类型为( A ) 。 -rwxr-xr-- 1 root root 599 Cec 10 17:12 ff A 普通文件 B 硬链接 C 目录 D 符号链接 37、文件系统的主要功能是(A ) A、实现对文件的按名存取 B、实现虚拟存储 D、提高外存的读写速度 D、用于保存系统文档 38、init 启动进程需要读取(A )配置文件: A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh 39.删除文件命令为: ( D) 。 A mkdir B rmdir C mv D rm 40.对文件进行归档的命令为( D )。 A dd B cpio C gzip D tar 41.改变文件所有者的命令为( C )。

A chmod B touch C chown D cat 43.在给定文件中查找与设定条件相符字符串的命令为:( A )。 A grep B gzip C find D sort 44.建立一个新文件可以使用的命令为 D 。 A chmod B more C cp D touch 45、在下列命令中,不能显示文本文件内容的命令是: D 。 A more B less C tail D join 46.文件权限读、写、执行的三种标志符号依次是 A 。 A rwx B xrw C rdx D srw 47、从后台启动进程,应在命令的结尾加上符号 A 。 A & B @ C # D $ 48、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件 的权限为 D 。 A 467 B 674 C 476 D 764 49.退出交互模式的 shell,应键入( C) 。 A ; B ^q C exit D quit 50、设超级用户 root 当前所在目录为:/usr/local,键入 cd 命令后,用户当前所在目录为 B 。 A /home B /root C /home/root D /usr/local 52、如果 bootloader,内核,启动参数以及其他的系统映像四部分在固态存储设备上分别 独立存放,则其存储结构分配顺序应当是( D ) A、文件系统、内核、启动参数、bootloader B、启动参数、bootloader、内核、文件系统 C、bootloader、内核、启动参数、文件系统 D、bootloader、启动参数、内核、文件系统 53、init 启动进程需要读取( A )配置文件: A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh 54.字符设备文件类型的标志是( B )。 A p B c C s D l 55.将光盘 CD-ROM(hdc)安装到文件系统的/mnt/cdrom 目录下的命令是 C 。 A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc C mount /dev/hdc /mnt/cdrom D mount /dev/hdc 56.将光盘/dev/hdc 卸载的命令是 A 。 A umount /dev/hdc B unmount /dev/hdc 57、在进行嵌入式系统调试时,一下叙述中正确的是( ) A、宿主机和目标机之间需奥建立逻辑连接即可 B、在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C、在嵌入式系统开发中,通常采用的是交叉编译器 D、宿主机和目标机之间的通信方式只有串口和并口两种 58.在/home/stud1/wang 目录下有一文件 file,使用 D 可实现在后台执行命令,此命令将 file 文件中的内容输出到 file.copy 文件中。 A cat file >;file.copy B cat >;file.copy C cat file file.copy & D cat file >;file.copy & 59.下列变量名中有效的 shell 变量名是: C 。

A -2-time B _2$3 C trust_no_1 D 2004file 60 .已知某用户 stud1 ,其用户目录为 /home/stud1 。如果当前目录为 /home ,进入目录 /home/stud1/test 的命令是 C 。 A cd test B cd /stud1/test C cd stud1/test D cd home 61.已知某用户 stud1,其用户目录为/home/stud1。分页显示当前目录下的所有文件的文 件或目录名、 用户组、 用户、 文件大小、 文件或目录权限、 文件创建时间等信息的命令是 D 。 A more ls –al B more –al ls C more < ls –al D ls –al | more 62.以下命令对中,正确的是: B 。 A ls 和 sl B cat 和 tac C more 和 erom D exit 和 tixe 63. B 命令是在 vi 编辑器中执行存盘退出。 A :q B ZZ C :q! D :WQ 64、bootloader 的 stage2 通常使用 C 语言实现,以完成复杂的功能,并增加可读行和移植 性,以下哪一步属于 stage2 的内容(D ) A、为加载 bootloader 的 stage2 准备 RAM 空间 B、设置好堆栈 C、硬件设备初始化 D、将 kernel 映像和跟文件系统映像从 flash 上读到 RAM 空间中 65.下列关于/etc/fstab 文件描述,正确的是 D 。 A fstab 文件只能描述属于 linux 的文件系统 B CD_ROM 和软盘必须是自动加载的 C fstab 文件中描述的文件系统不能被卸载 D 启动时按 fstab 文件描述内容加载文件系统 66. D 设备是字符设备。 A hdc B fd0 C hda1 D tty1 67. B 目录存放着 Linux 的源代码。 A /etc B /usr/src C /usr D /home 68、关于 BusyBox,下列说法错误的是(C ) A、它常用来构建嵌入式 Linux 的根文件系统 B、支持的 shell 命令可以进行配置 C、 支持的命令完全和 Linux 命令相同 D、 作为嵌入式 Linux 根文件系统时需要交叉编译 69.关于文件系统的安装和卸载,下面描述正确的是 A 。 A 如果光盘未经卸载,光驱是打不开的 B 安装文件系统的安装点只能是/mnt 下 C 不管光驱中是否有光盘,系统都可以安装 CD-ROM 设备 D mount /dev/fd0 /floppy 此命令中目录/floppy 是自动生成的 70.文件 exer1 的访问权限为 rw-r--r--,现要增加所有用户的执行权限和同组用户的写权 限,下列命令正确的是 A 。 A chmod a+x g+w exer1 B chmod 765 exer1 C chmod o+x exer1 D chmod g+w exer1 71、向无任何程序的目标机中写入 BootLoader 程序,一般使用下面那种接口( B) A.串口 B. JTAG C. Ethernet D. USB 72.有关归档和压缩命令,下面描述正确的是 C 。 A 用 uncompress 命令解压缩由 compress 命令生成的后缀为.zip 的压缩文件 B unzip 命令和 gzip 命令可以解压缩相同类型的文件 C tar 归档且压缩的文件可以由 gzip 命令解压缩 D tar 命令归档后的文件也是一种压缩文件

73.不是 shell 具有的功能和特点的是 C 。 A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令 74、有关 Linux 内核裁剪下列说法错误的是( B ) A.可以使用 make menuconfig 命令进行内核的配置 B. 所有的配置项都可以按以编译入内核,编译成模块,不编译三种方式配置 C.使用 make zImage 命令会编译生成内核镜像文件 zImage D. 嵌入式 Linux 内核编译时应该采用交叉编译器 75、关于 Linux2.4 内核,说法错误的是(A ) A. Linux 为单内核,效率高,紧凑 B. 按进程优先级调度 C. 具有虚拟文件系统,可以支持多种文件系统 D. 设备驱动模块化 76、QT/Embedded 的底层图形引擎基于下列哪种接口技术( A ) A、framebuffer B、GAL D、IAL D、GFX 77、为了得到所有的命令行输入的参数,我们可以使用变量( ) A、$# B、$@ C、 $0 D、$! 78、如果 bootloader,内核,启动参数以及其他的系统映像四部分在固态存储设备上分别 独立存放,则其存储结构分配顺序应当是( ) A、文件系统、内核、启动参数、bootloader B、启动参数、bootloader、内核、文件系统 C、bootloader、内核、启动参数、文件系统 D、bootloader、启动参数、内核、文件系统 79、下面不属于嵌入式操作系统的是( C ) A.VxWorks B. QNX C. MacOS D. WinCE 80. Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是 C 。 A 文件类型 B 文件所有者的权限 C 文件所有者所在组的权限 D 其他用户的权限 81. 终止一个前台进程可能用到的命令和操作 B 。 A kill B ;+C C shut down D halt 81.在使用 mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D 。 A -m B -d C -f D -p 83. 一个文件名字为 rr.Z,可以用来解压缩的命令是: D 。 A tar B gzip C compress D uncompress 84、下列关于链接描述,错误的是 B 。 A 硬链接就是让链接文件的 i 节点号指向被链接文件的 i 节点 B 硬链接和符号连接都是产生一个新的 i 节点 C 链接分为硬链接和符号链接 D 硬连接不能链接目录文件

85、如下哪一个命令可以帮助你知道 shell 命令的用法( A )
A. man B. pwd C. help D. more 86、Linux 分区类型默认的是: ( B ) A. vfat B. ext2/ext3 C. swap D. dos 87、在大多数 Linux 发行版本中,以下哪个属于块设备 ( B ) A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 88、下面哪个命令行可用来马上重新启动正在运行的 Linux 系统?( D ) A. restart --delay=0 B. reboot -w

C. halt -p D. shutdown -r now 89、在 Linux 系统,默认的 shell 是什么( A ) A.bash B.ash C.csh D.gnush 90、下面哪条命令可用来确保文件“myfile”存在( B ) A. cp myfile /dev/null B. touch myfile C. create myfile D. mkfile myfile 91、 LILO 的配置文件是: ( B ) A. /etc/conf B. /etc/lilo.conf C. /proc/kcore D. /usr/local/ 92、用“useradd jerry” 命令添加一个用户,这个用户的主目录是什么( A ) A./home/jerry B./bin/jerry C./var/jerry D./etc/jerry 93、Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是( C ) A.文件类型 B.文件所有者的权限 C.文件所有者所在组的权限 D.其他用户的权限 94、 某文件的组外成员的权限为只读; 所有者有全部权限; 组内的权限为读与写, 则该 文件的权限为( D ) A.467 B.674 C.476 D.764 95、不是 shell 具有的功能和特点的是 ( A ) A. 管道 B. 输入输出重定向 C.执行后台进程 D. 处理程序命令 96、如何从当前系统中卸载一个已装载的文件系统( A ) A. umount B. dismount C. mount –u D. 从 /etc/fstab 中删除这个文件系统项 97、 你用 vi 编辑器编写了一个脚本文件 shell.sh, 你想将改文件名称修改为 shell2.sh, 下列命令( B ) 可以实现。 A. cp shell.sh shell2.sh B. mv shell.sh shell2.sh C. ls shell.sh >shell2.sh D. ll shell.sh >shell2.sh 98、在/home/stud1/wang 目录下有一文件 file, 使用 ( D ) 可实现在后台执行命令, 此命令将 file 文件中的内容输出到 file.copy 文件中。 A. cat file >file.copy B. cat file file.copy C. &cat file file.copy D. &cat file >file.copy 99、字符设备文件类型的标志是 ( B ) A. p B. c C. s D. l 100、删除文件命令为(D ) A. mkdir B. rmdir C. mv D. rm 101、( B ) 命令可更改一个文件的权限设置? A. attrib B. chmod C. change D. file 102、 用命令 ls -al 显示出文件 ff 的描述如下所示, 由此可知文件 ff 的类型为 ( A )。 -rwxr-xr-- 1 root root 599 Cec 10 17:12 ff A. 普通文件 B. 硬链接 C. 目录 D. 符号链接 103、 系统中有用户 user1 和 user2, 同属于 users 组。 在 user1 用户目录下有一文 件 file1,它拥有 644 的权限, 如果 user2 用户想修改 user1 用户目录下的 file1 文

件, 应拥有( B ) 权限。 A. 744 B. 664 C. 646 D. 746 104、 在指令系统的各种寻址方式中, 获取操作数最快的方式是( B ) ; 若操作数的 地址包含在指令中,则属于( A ) 方式。 (1) A、直接寻址 B、立即寻址 C、寄存器寻址 D、间接寻址 (2) A、直接寻址 B、立即寻址 C、寄存器寻址 D、间接寻址 105、在 CPU 和物理内存之间进行地址转换时, ( B ) 将地址从虚拟(逻辑)地址空间 映射到物理地址空间。 A、 TCB B、MMU C、 CACHE D、DMA 106、 Linux 将存储设备和输入/输出设备均看做文件来操作, (C)不是以文件的形式出 现。 A. 目录 B. 软链接 C. i 节点表 D. 网络适配器 107、关于文件系统的安装和卸载,下面描述正确的是(A)。 A. 如果光盘未经卸载,光驱是打不开的 B. 安装文件系统的安装点只能是/mnt 下 C. 不管光驱中是否有光盘,系统都可以安装 CD-ROM 设备 D. mount /dev/fd0 /floppy 此命令中目录/floppy 是自动生成的 108、为了查看 Linux 启动信息,可以用(B)命令 A. cat /etc/lilo.conf B.dmesg C. cat/proc/cpuinfo D.lilo 109、用下列(A)命令查看 Linux 使用了多少内存 A.cat /proc/meminfo B. cat /bin/meminfo C.vi /proc/meminfo D.vi /user/local/meminfo 110、下列(D)设备是字符设备。 A. hdc B. fd0 C. hda1 D. tty1 111、下列说法正确的是(D) A. ln -s a.txt b.txt,作用是制作文件 b.txt 的符号链接,其名称为 a.txt B. df 命令可以查看当前目录占用磁盘空间的大小 C. comm 命令打印两个文本文件中的相同的内容 D. rm 命令可以用来删除目录 112、有如下的命令:$dd if=f1 of=f2。其中 if=f1 表示(A) A. 以 f1 作为源文件,代替标准输入 B. 以 f1 作为目标文件,代替标准输出 C. 当条件满足 f1 的时候,执行真正的拷贝 D. 拷贝的过程中,不转化文件 113、为了查找出当前用户运行的所有进程的信息,我们可以使用(B) 命令: A. ps -a B. ps -u C. ls -a D. ls –l 114、为保证在启动服务器时自动启动 DHCP 进程,应对(B ) 文件进行编辑。 A、 /etc/rc.d/rc.inet2 B、 /etc/rc.d/rc.inet1 C、 /etc/dhcpd.conf D、 /etc/rc.d/rc.S 115、( D ) 设备是字符设备。 A、 hdc B、fd0 C、hda1 D、 tty1

116、 文件 exer1 的访问权限为 rw-r--r--, 现要增加所有用户的执行权限和同组用户的 写权限,下列命令正确的是(A ) 。 A 、 chmod a+x g+w exer1 B 、 chmod 765 exer1 C 、 chmod o+x exer1 D 、 chmod g+w exer1 117、 删除当前目录 abc 以及下面的所有子目录和文件, 并不要求提示任何确认信息的命 令是(B) A. del abc\*.* B. rm –rf abc C. rmdir abc D. rm –r abc\ *.* 118、如果忘记了 ls 命令的用法,可以采用( C ) 命令获得帮助 a. ? ls b.help ls c.man ls d.get ls 119、在安装开始前,用光盘启动系统,想要进入字符界面安装,需要输入的命令( C ) a.linux doc b.linux c.linux text d.linux note 120、要给文件 file1 加上其他人可执行属性的命令是( C ) a.chmod a+x b.chown a+x c.chmod o+x d.chown o+x 121、怎样新建一个新文件: ( A ) a.touch hello.c b.mk hello.c c.rm hello.c d.new hello.c 122、在 bash 命令中,当用( B ) 参数时,表示 bash 是交互的。 A、-c B、 -i C、 -s D、 -d 123、重定向的符号“>"表示: ( C ) A、输出追加 B、输入追加 C、 输出重定向,原来的文件会被改写 D、管道 124、 linux 系统能够直接读取的分区类型是( D ) a.ntfs b.fat16 c.fat32 d.ext3 125、下列提法中,属于 ifconfig 命令作用范围的是( B ) 。 A、编译源程序 B、配置网卡的 IP 地址 C、配置系统内核 D、加载网卡到内核中 126、下列对 shell 变量 FRUIT 操作,正确的是( C ) A、为变量赋值:$FRUIT=apple B、显示变量的值:fruit=apple C、显示变量的值:echo $FRUIT D、判断变量是否有值:[ -f “$FRUIT” ] 127、一般可以用( C ) 实现自动编译。 A、 gcc B、 gdb * C、make D、 vi 128、处理机主要由处理器、存储器和总线组成,总线包括( D ) 。 A、数据总线、串行总线、逻辑总线、物理总线 B、并行总线、地址总线、逻辑总线、物理总线 C、并行总线、串行总线、全双工总线 D、数据总线、地址总线、控制总线 129、假设当前目录下有文件 Makefile,下面是其内容: pr1: prog.o subr.o gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h gcc –c –l prog.o prog.c subr.o: subr.c

gcc –c –o subr.o subr.c clear: rm –f pr1*.o 现在执行命令 make clear,实际执行的命令是( A ) : A. rm –f pr1*.o B. gcc –c –l prog.o prog.c C. gcc –c –o subr.o subr.c D. 都执行 130、 Linux 将存储设备和输入/输出设备均看做文件来操作, 下列选项(C) 不是以文件 的形式出现。 A. 目录 B. 软链接 C. i 节点表 D. 网络适配器 131、有如下的命令:$dd if=f1 of=f2。其中 if=f1 表示( A ) A. 以 f1 作为源文件,代替标准输入 B. 以 f1 作为目标文件,代替标准输出 C. 当条件满足 f1 的时候,执行真正的拷贝 D. 拷贝的过程中,不转化文件 132. 文件之间可以建立两种链接关系:软链接和硬链接,硬链接的特点是(C) A. 等同于文件复制操作 B. 类似于文件复制,但新的链接文件并不占用文件磁盘存储空间 C. 删除源文件,将使其他链接文件失效 D. 可以对目录文件名建立硬链接 133. 下面哪一个选项不是 linux 系统的进程类型(D) A. 交互进程 B. 批处理进程 C. 守护进程 D. 就绪进程 134、下面( B ) 特性不符合嵌入式操作系统特点。 A、实时性 B、不可定制 C、微型化 D、 易移植 135、下面关于 C 语言程序的描述,正确的是( C ) 。 A、总是从第一个定义的函数开始执行 B、要调用的函数必须在 main()函数中定义 C、总是从 main()函数开始执行 D、main()函数必须放在程序的开始 136、在 FTP 协议中,控制连接是由( B ) 主动建立的。 A、服务器端 B、客户端 C、操作系统 D、服务提供商 137、以下叙述中,不符合 RISC 指令系统特点的( B ) 。 A、指令长度固定,指令种类少 B、寻址方式种类丰富,指令功能尽量增强 C、设置大量通用寄存器,访问存储器指令简单

D、选取使用频率较高的一些简单指令 138、 当我们与某远程网络连接不上时, 就需要跟踪路由查看, 以便了解在网络的什么位 置出现了问题,满足该目的的命令是( C ) 。 A、 ping B、 ifconfig C、 traceroute D、 netstat 139. 下列哪种文件系统的写入是 LINUX 所不能完全支持的:D A. FAT B. UFS C. JFS D. NTFS 140. LINUX 支持网络文件系统 NFS, 下列哪个命令实现了将位于 192.168.1.4 机器上的 /opt/sirnfs 目录挂载到本机/mnt/sirnfs 下: A A. mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs B. mount -t nfs /mnt/sirnfs 192.168.1.4:/opt/sirnfs C. mount nfs –t 192.168.1.4:/opt/sirnfs /mnt/sirnfs D. mount nfs –t /mnt/sirnfs 192.168.1.4:/opt/sirnfs 141、同 CISC 相比,下面哪一项不属于 RISC 处理器的特征_ D A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 2~3 种。 B、减少指令数和寻址方式,使控制部件简化,加快执行速度。 C、 数据处理指令只对寄存器进行操作, 只有加载/存储指令可以访问存储器, 以提高指 令的执行效率,同时简化处理器的设计。 D、RISC 处理器都采用哈佛结构 142、在下列 ARM 处理器的各种模式中,__D___模式有自己独立的 R8-R14 寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ) 143、按照 ARM 过程调用标准(APCS), 栈指针使用_B___寄存器, A、R0 B、R13 C、R14 D、R15 144、在 ARM 体系结构中,_C___寄存器作为连接寄存器,当进入子程序时或者处理器响应 异 常的时候,用来保存 PC 的返回值;_C___寄存器作为处理器的程序计数器指针。 A、R0,R14 B、R13, R15 C、 R14, R15 D、 R14, R0 145、在 ARM 体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor), 应采用何种方法?C A、直接修改 CPU 状态寄存器(CPSR) 对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新 CPU 状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 146、下面关于 MMU 和 Linux 描述错误的是:C A、MMU 是内存管理单元 Memory Management Unit 的缩写 B、uClinux 可以运行在有 MMU 的处理器上 C、Linux 内核功能强大,内存管理功能丰富,即使在没有 MMU 的处理器上,也可以通过软 件实现地址映射。 D、Linux 系统正是利用 MMU,才能使得各个进程有独立的寻址空间 147、 DNS 域名系统主要负责主机名和( A ) 之间的解析。

A、 IP 地址 B、 MAC 地址 C、网络地址 D、主机别名 148、 在 vi 编辑器中的命令模式下, 重复上一次对编辑的文本进行的操作, 可使用 ( C ) 命令。 A、上箭头 B、下箭头 C<.>、 D、 149、进程有三种状态: ( C ) 。 A 、准备态、执行态和退出态 B 、精确态、模糊态和随机态 C 、运行态、就绪态和等待态 D 、手工态、自动态和自由态 150、下列变量名中有效的 shell 变量名是( C ) 。 A、 -1-time B、_2$3 C、 bo_chuang_1 D、2009file 151、文件系统的主要功能是( A ) 。 A、实现对文件的按名存取 B、实现虚拟存储 C、 提高外存的读写速度 D、用于保存系统文档 152、在 ARM Linux 体系中,用来处理外设中断的异常模式是__C____ A、软件中断(SWI) B、未定义的指令异常 C、中断请求(IRQ) D、快速中断请求(FIQ) 153、在 Linux 系统中,驱动程序注册中断处理程序的函数是_B____ A、 trap_init B、 request_irq C、 enable_irq D、 register_irq 154、在 ARM Linux 系统中,中断处理程序进入 C 代码以后,ARM 的处于__A__工作模式 A、超级用户(SVC) B、中断(IRQ) C、快速中断(IRQ) D、和进入中断之前的状态有关系 155、 在 ARM 体系构建的嵌入式系统中, 由电平模式触发的中断, 其对应的中断标准应 该在何时被清除?A A、当中断处理程序结束以后,才可以清除 B、进入相应的中断处理程序,即可以清除 C、产生 IRQ 中断的时候,处理器自动清除 D、任何时候都可以清除 156、在操作系统中,Spooling 技术是用一类物理设备模拟另一类物理设备的技术,实现这 种技术的功能模块称做( B ) 。 A、可林斯系统 B、 斯普林系统 C、图灵机系统 D、 虚拟存储系统 157、通过修改下面文件哪个文件 , 可以设定开机时候自动安装的文件系统(C ) A. /etc/mta B. /etc/fastboot C. /etc/fstab D. /etc/inetd.conf 158 、下面关于 Shell 的说法,不正确的是: ( D ) A. 操作系统的外壳 B. 用户与 Linux 内核之间的接口程序 C. 一个命令语言解释器 D. 一种和 C 类似的程序语言 159、 init 可执行文件通常存放在( C ) 目录中。 A. /etc B. /boot

C. /sbin D. /root 160、假设 root 用户执行“init 0”命令,系统将会(B ) 。 A. 暂停 B. 关机 C.重新启动 D.初始化 161、 嵌入式系统应用软件一般在宿主机上开发, 在目标机上运行, 因此需要一个 ( B ) 环境。 A、交互操作系统 B、 交叉编译 C、交互平台 D、分布式计算 162、已知有变量 data1 定义如下:C union data { int i; char ch; float f; } data1; 则变量 data1 所占的内存存储空间可表示为。 A、 sizeof(int) B、sizeof(char) C、 sizeof(float) D、sizeof(int)+sizeof(char)+sizeof(float) 163、 软件开发模型给出了软件开发活动各阶段之间的关系, ( D ) 不是软件开发模型。 A、瀑布模型 B、螺旋模型 C、原型模型 D、程序模型 164、实时操作系统(RTOS)内核与应用程序之间的接口称为( C ) 。 A、输入/输出接口 B、文件系统 C、API D、图形用户接口 165、在操作系统中,除赋初值外,对信号量仅能操作的两种原语是( C ) 。 A、存操作、 取操作 B、读操作、写操作 C、P 操作、 V 操作 D、输入操作、输出操作 166、在下列 ARM 处理器的各种模式中, 只有__A___模式不可以自由地改变处理器的工作 模式。 A、用户模式(User) B、系统模式(System) C、终止模式(Abort) D、中断模式(IRQ) 167、 32 位体系结构的 ARM 处理器有_B___种不同的处理器工作模式,和__B__个主要用 来标识 CPU 的工作状态和程序的运行状态的状态寄存器。 A、7、 7 B、7、 6 C、 6、 6 D、 6、 7 168、已知 Linux 系统中的唯一一块硬盘是第一个 IDE 接口的 master 设备, 该硬盘按 顺序有 3 个主分区和一个扩展分区,这个扩展分区又划分了 3 个逻辑分区,则该硬盘上的 第二个逻辑分区在 Linux 中的设备名称是( D ) A. /dev/hda2 B. /dev/hda3 C. /dev/hda5 D. /dev/hda6 169、为了查看 Linux 启动信息,可以用: ( B ) A、 cat /etc/lilo.conf B、dmesg C、 cat/proc/cpuinfo D、 lilo 170、 某文件的组外成员的权限为只写; 所有者有读写权限; 组内的权限为只读, 则该 文件的权限为( D ) A 467 B 642 C 476 D 764 171、下面哪个命令行可用来马上重新启动正在运行的 Linux 系统?( D )

A. restart --delay=0 B. reboot -w C. halt -p D. shutdown -r now 172、在 bash 命令中,当用( B ) 参数时,表示 bash 是交互的。 A、-c B、 -i C、 -s D、 -d 173、重定向的符号“>>"表示: ( A ) A、输出追加 B、输入追加 C、 输出重定向,原来的文件被改写 D、管道 174、 Linux 文件权限一共 10 位长度,分成四段,第一段表示的内容是( A ) A 文件类型 B 文件所有者的权限 C 文件所有者所在组的权限 D 其他用户的权限 175、( B ) 命令可更改一个文件的权限设置? A. attrib B. chmod C. change D. file 176、 你用 vi 编辑器编写了一个脚本文件 shell.sh, 你想将该文件名称修改为 shell2.sh, 下列命令( B ) 可以实现。 A. cp shell.sh shell2.sh B. mv shell.sh shell2.sh C. ls shell.sh >shell2.sh D. ll shell.sh >shell2.sh 177、在使用 GCC 编译器的过程中,以下(B)选项可用来指定生成的目标文件名 A.-c B. -o C. -S D.-E 178、假设当前目录下有文件 Makefile,下面是其内容: pr1: prog.o subr.o gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h gcc –c –l prog.o prog.c subr.o: subr.c gcc –c –o subr.o subr.c clear: rm –f pr1*.o 现在执行命令 make subr.o,实际执行的命令是(C): A. gcc –o pr1 prog.o subr.o B. gcc –c –l prog.o prog.c C. gcc –c –o subr.o subr.c D. 都执行 179、为了使用生成的目标文件能够用于 gdb 调试,在编译时 GCC 应使用(C)选项。 A.-c B. -w C. -g D.-o 180、存盘并退出 vi 的指令是( D ) 。 A、 q B、q! C、w D、 wq 181. 下列关于/etc/fstab 文件描述, 正确的是( D

) 。

A. fstab 文件只能描述属于 linux 的文件系统 B. CD_ROM 和软盘必须是自动加载的 C. fstab 文件中描述的文件系统不能被卸载 D 启动时按 fstab 文件描述内容加载文件系统 182. ARM 嵌入式系统中,PC 指向的是正在(C )的指令地址。 A 执行 B 译码 C 取指 D 都不是 183. ARM 系统处理 16-bit 数据时,对应的数据类型是( B ) 。 A Byte B Halfword C Word D 三者都不是 184. 实时系统是指( B ) A 响应快的系统 B 时间约束的系统 C 单任务系统 D 内核小的系统 185. 下面属于 blob 运行过程第一阶段的是(C) A 外围的硬件初始化(串口,USB 等); B 根据用户选择,进入命令行模块或启动 kernel。 C 寄存器的初始化 D 堆栈的初始化 答案:C 第一阶段的代码在 start.s 中定义, 大小为 1KB, 它包括从系统上电后在 0x00000000 地址开始执行的部分。 这部分代码运行在 Flash 中, 它包括对 S3C44B0 的一些寄存器的 初始 化和将 Blob 第二阶段代码从 Flash 拷贝到 SDRAM 中。 186.下列几种流行的嵌入式 GUI 中,没有采用分层设计的一种是: B A.MiniGUI B. Qt/Embedded C. Nano-X Window D. OpenGUI 187. Qt/Embedded 的底层图形引擎基于一下哪种接口技术: A A. framebuffer B.GAL C. IAL D.GFX 188.在 Linux 使用 GCC 编译器时有如下命令:Gcc–g test.c –o test, 其中参数-g 的 作用是(D) A .生成目标文件 test.o B.生成汇编文件 test.s C .进行预编译 D .包含调试信息 189. LINUX 支持网络文件系统 NFS, 下列哪个命令实现了将位于 192.168.1.4 机器上的 /opt/sirnfs 目录挂载到本机/mnt/sirnfs 下: A A. mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs B. mount -t nfs /mnt/sirnfs 192.168.1.4:/opt/sirnfs C. mount nfs –t 192.168.1.4:/opt/sirnfs /mnt/sirnfs D. mount nfs –t /mnt/sirnfs 192.168.1.4:/opt/sirnfs 190、同 CISC 相比,下面哪一项不属于 RISC 处理器的特征___D_____ A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 2~3 种。 B、减少指令数和寻址方式,使控制部件简化,加快执行速度。 C、 数据处理指令只对寄存器进行操作, 只有加载/存储指令可以访问存储器, 以提高指 令的执行效率,同时简化处理器的设计。 D、RISC 处理器都采用哈佛结构 191、32 位数 0x12345678 用小端格式表示,则在 AXD 调试器下观察数据在内存中分布的 情况是(B) A 12 34 56 78 B 78 56 34 12 C 21 43 65 87 D 87 65 43 21 192、RISC 是指(C) A 复杂指令计算机 B 并行机 C 精简指令计算机 D 多处理器计算机

193、 在 ARM 体系结构中, __C__寄存器作为连接寄存器, 当进入子程序时或者处理器响 应异常的时候,用来保存 PC 的返回值;_C___寄存器作为处理器的程序计数器指针。 A、 R0,R14 B、R13,R15 C、R14, R15 D、R14,R0 194、在 ARM 体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor), 应采用何种方法?C A、直接修改 CPU 状态寄存器(CPSR) 对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新 CPU 状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 195 、表达式 A ⊕ B 实现的功能是( C ) A 逻辑与 B 逻辑非 C 逻辑异或 D 逻辑或 196 、嵌入式系统的开发通常是在交叉开发环境实现的,交叉开发环境是指 ( A ) A 在宿主机上开发,在目标机上运行 B 在目标机上开发,在宿主机上运行 C 在宿主机上开发,在宿主机上运行 D 在目标机上开发,在目标机上运行 197、在 ARM 系统结构中,MMU 映射最小的单元空间是__D__ A、64KB B、16KB C、4KB D、1KB 198、在 ARM Linux 启动的过程中,开启 MMU 的时候,如何实现从实地址空间到虚拟地址 空间的过度?D A、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间)并继续运行。 B、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),跳转到虚拟地 址空间继续运行。 C、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),开启 MMU,跳转到虚拟地 址空间继续运行。 D、在内存中创建页表 (映射内核到 3G 以上的虚拟地址空间,同时把内核所在的前 1MB 空 间到和其实地址相同的虚拟地址空间),开启 MMU, 跳转到虚拟地址空间继续运行。 199、在 ARM 体系中,MMU 的第一级描述符有___项,每个描述符占用____字节 A、 1024, 32 B、 4096, 4 C、 4096, 4 D、 1024, 32 答案:C(B 和 C 一样的,A 和 D 是一样的) 200、在 ARM 体系中,下面 MMU 的一级描述符中,是节描述符的是_A___ A、 0xA0000C0E B、0xA0000C0F C、 0x00000000 D、0xC0000C01 201、在 ARM Linux 体系中,用来处理外设中断的异常模式是_C_____ A、软件中断(SWI) B、未定义的指令异常 C、中断请求(IRQ) D、快速中断请求(FIQ) 202、指令 ADD R2,R1,R1,LSR #2 中,LSR 的含义是(B)。 A 逻辑左移 B 逻辑右移 C 算术右移 D 循环右移 203、以下 ARM 异常中,优先级最高的是(D )。 A Data abort B FIQ C IRQ D Reset 204、指令 LDR R0,[R4]对源操作数的寻址方式是( A ) A 寄存器间接寻址 B 寄存器寻址 C 立即数寻址 D 相对寻址 205、在 Linux 2.4 或者 2.6 内核中, 和 ARM 体系结构相关的中断处理程序的 C 代码在 源码树的__B_文件中

A、 kernerl/irq.c B、 arch/arm/kernel/irq.c C、 arch/arm/mach/irq.c D、 arch/arm/kernel/entry-armv.S 206、以下关于 init 进程,描述不正确的是: (A) A. 一个通用进程 B. 可以产生新的进程 C. 在某些程序退出的时候能重起它们 D. 负责在系统启动的时候运行一系列程序和脚本文件 207、哈佛结构和冯诺依曼结构的区别是( A) A 指令和数据分开存储 B 不需要程序计数器 C 统一编址 D 单一数据总线 124、fstab 文件存放在(A)目录中。 A. /etc B. /boot C. /sbin D. /root 208、Linux 系统运行级别 5 工作在(D)状态。 A.单用户字符模式 B.多用户字符模式 C.单用户图形模式 D.多用户图形模式 209、下面关于 Shell 的说法,不正确的是: (D) A. 操作系统的外壳 B. 用户与 Linux 内核之间的接口程序 C. 一个命令语言解释器 D. 一种和 C 类似的程序语言 210、init 启动进程需要读取(A)配置文件: A. /etc/inittab B. /sbin/init C. /etc/sysvinit D. /bin/sh 211、启动 init 进程前, 不需要经过(D)步骤。 A.加载内核 B. 检测内存 C.加载文件系统 D.启动网络支持 212、RISC 是指(C) A 复杂指令计算机 B 并行机 C 精简指令计算机 D 多处理器计算机 213、波特率 9600bps 是指数据每秒传输( B ) A 9600 个字节 B 9600 个比特 C 9600 个字 D 9600 个字符 214、ARM9 和 ARM7 的重要区别是(A ) A ARM9 带有 MMU 功能 B ARM9 支持 Thumb 指令集 C ARM9 带有 Cache 功能 D ARM9 是哈佛结构 215、 32 位体系结构的 ARM 处理器有_B___种不同的处理器工作模式, 和___B_个主要用 来标识 CPU 的工作状态和程序的运行状态的状态寄存器。 A、7、 7 B、 7、6 C、6、 6 D、 6、7 216、 在安装 Linux 的过程中的第五步是让用户选择安装方式, 如果用户希望安装部分组 件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 D 。 A) full B) expert C) newbie D) menu

217、当系统工作负载增加时,CPU 的 A 将占很大比重 A) 用户时间 B)系统时间 C)空闲时间、 D) 进程时间 218、fsck 对文件系统的检查最先是从文件系统的 C 开始的 A) MBR B) 磁盘块 C) 超级块 D) 块链表 219、 如果数据的存储格式是大端模式, 32bit 宽的数 0x12345678 在大端模式下的 CPU 内 存中的存放(假设从地址 0x4000 开始)。内存地址为 0x4001 的内容是(A )。 A、 0x34 B、 0x56 C、 0x23 D、 0x78 220、关于 RISC 指令系统描述不正确的是( A ) 。 A、指令条数多 B、指令长度固定 C、指令格式种类少 D、寻址方式种类少 221、对 ARM7 微处理器说法不正确的是( D ) 。 A、兼容 16 位的 Thumb 指令集 B、集成式 RISC 内核 C、集成了 ICE-RT 逻辑 D、哈佛体系结构 222、在寄存器间接寻址方式中,指定寄存器中存放的是 ( B )。 A、操作数 B、操作数地址 C、转移地址 D、地址偏移量 223、Samba 服务器的进程由 B 两部分组成 。 A) named 和 sendmail B) smbd 和 nmbd C) bootp 和 dhcpd D) httpd 和 squid 224、为保证在启动服务器时自动启动 DHCP 进程,应对 B 文件进行编辑。 A) /etc/rc.d/rc.inet2 B) /etc/rc.d/rc.inet1 C) /etc/dhcpd.conf D) /etc/rc.d/rc.S 225、在配置代理服务器时,若设置代理服务器的工作缓存为 64MB,配置行应为 D 。 A ) cache 64MB B) cache_dir ufs /usr/local/squid/cache 10000 16 256 C) cache_ mgr 64MB D) cache_ mem 64MB 226、安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网 络管理对象问题。 C 属于安全管理的内容。 A) 配置设备的工作参数 B) 收集与网络性能有关的数据 C) 控制和维护访问权限 D) 监测故障 227、 B 命令是在 vi 编辑器中执行存盘退出。 A ) q B ) wq C) q! D) WQ 228、下列关于/etc/fstab 文件描述, 正确的是 D 。 A) fstab 文件只能描述属于 linux 的文件系统 B) CD_ROM 和软盘必须是自动加载的 C) fstab 文件中描述的文件系统不能被卸载 D) 启动时按 fstab 文件描述内容加载文件系统 229、 D 设备是字符设备。 A) hdc B) fd0 C) hda1 D) tty1 230、已知有如下程序: #include void main(){

int a[5]={1,2,3,4,5}; int * p = (int *)(&a+1); printf(“%d”,p[-1]); } 那么,输出结果为(B ) A、该程序不可执行,无输出结果 B、 5 C、 1 D、不确定的随机值 231、终止一个前台进程可能用到的命令和操作是(B )。 A、 kill B、 +c C、 shut down D、 halt 232、 B 目录存放着 Linux 的源代码。 A) /etc B) /usr/src C) /usr D) /home 233、关于文件系统的安装和卸载,下面描述正确的是 A 。 A) 如果光盘未经卸载,光驱是打不开的 B) 安装文件系统的安装点只能是/mnt 下 C) 不管光驱中是否有光盘,系统都可以安装 CD-ROM 设备 D) mount /dev/fd0 /floppy 此命令中目录/floppy 是自动生成的 234、 文件 exer1 的访问权限为 rw-r--r--, 现要增加所有用户的执行权限和同组用户的写 权限,下列命令正确的是 A 。 A) chmod a+x g+w exer1 B) chmod 765 exer1 C) chmod o+x exer1 D) chmod g+w exer1 235、有关归档和压缩命令,下面描述正确的是 C 。 A) 用 uncompress 命令解压缩由 compress 命令生成的后缀为.zip 的压缩文件 B) unzip 命令和 gzip 命令可以解压缩相同类型的文件 C) tar 归档且压缩的文件可以由 gzip 命令解压缩 D) tar 命令归档后的文件也是一种压缩文件 236、不是 shell 具有的功能和特点的是 C 。 A) 管道 B) 输入输出重定向 C) 执行后台进程 D) 处理程序命令 237、( D ) 设备是字符设备。 A、 hdc B、 fd0 C、 hda1 D、 tty1。 238、具有很多 C 语言的功能,又称过滤器的是 C 。 A) csh B) tcsh C) awk D) sed 239、 局域网 的 网络 地址 192.168.1.0/24, 局域 网络 连接其 它网 络的网 关地 址 是 192.168.1.1。 主机 192.168.1.20 访问 172.16.1.0/24 网络时, 其路由设置正确的是 B 。 A) route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 B) route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.255 metric 1 C) route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 D) route add default 192.168.1.0 netmask 172.168.1.1 metric 1 240、不需要编译内核的情况是 D 。 A) 删除系统不用的设备驱动程序时 B) 升级内核时 C) 添加新硬件时 D)将网卡激活 241、 内核不包括的子系统是 D 。 A) 进程管理系统 B) 内存管理系统 C) I/O 管理系统 D)硬件管理系统 242、以下叙述中,不符合 RISC 指令系统特点的是 B。 A)指令长度固定,指令种类少 B)寻址方式种类丰富,指令功能尽量增强

C) 设置大量通用寄存器,访问存储器指令简单 D) 选取使用频率较高的一些简单指令 243、 系统中有用户 user1 和 user2, 同属于 users 组。 在 user1 用户目录下有一文 件 file1, 它拥有 644 的权限, 如果 user2 用户想修改 user1 用户目录下的 file1 文 件, 应拥有 B 权限。 A )744 B) 664 C) 646 D) 746 244、下列对 shell 变量 FRUIT 操作, 正确的是: C 。 A) 为变量赋值:$FRUIT=apple B) 显示变量的值:fruit=apple C) 显示变量的值:echo $FRUIT D) 判断变量是否有值:[ -f “$FRUIT” ] 245、一般可以用 C_实现自动编译。 A) gcc B) gdb * C) make D) vi 246、通常所说的 32 位微处理器是指 C 。 A) 地址总线的宽度为 32 位 B) 处理的数据长度只能为 32 位 C) CPU 字长为 32 位 D) 通用寄存器数目为 32 个 247、在 32 位处理器上,假设栈顶指针寄存器的当前值为 0x00FFFFE8,那么在执行完指令 “push eax”(eax 为 32 位寄存器)后,栈指针的当前值应为 A A) 0x00FFFFE4 B) 0x00FFFFE6 C) 0x00FFFFEA D) 0x00FFFFEC 248、 有若干并发进程均将一个共享变量 count 中的值加 1 一次, 那么有关 count 中的值 说法正确的是:______ 。(C ) A、肯定有不正确的结果 B、肯定有正确的结果 C、若控制这些并发进程互斥执行 count 加 1 操作,count 中的值正确 D、A, B,C 均不对 249、使用 Vim 作为文本编辑器, 在指令模式下要将光标移动到文档的最后一行的命令是 (C)。 A、 0 B、 $ C、 G D、 GG 250、已知某用户 stud1,其用户目 录为/home/stud1。如果当前目录为/home,进入目 录 /home/stud1/test 的命令是 ()。 A 、 cd test B、 cd /stud1/test C、 cd stud1/test D、cd home 251.如果想配置一台匿名 ftp 服务器,应修改 C 文件。 A) /etc/gateway B) /etc/ftpservers C) /etc/ftpusers D) /etc/inetd.conf 252.要配置 NFS 服务器, 在服务器端主要配置 C 文件。 A) /etc/rc.d/rc.inet1 B) /etc/rc.d/rc.M C) /etc/exports D) /etc/rc.d/rc.S 253.Linux 将存储设备和输入/输出设备均看做文件来操作, C 不是以文件的形式出现。 A) 目录 B )软链接 C) i 节点表 D) 网络适配器 254.Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是 C 。 A) 文件类型 B) 文件所有者的权限 C) 文件所有者所在组的权限 D) 其他用户的权限 255.一个文件名字为 rr.Z,可以用来解压缩的命令是: D 。 A) tar B) gzip C) compress D) uncompress

256、在使用 ln 建立链接时,为了跨越不同的文件系统,需要使用(B )。 A.普通链接 B.硬链接 C.特殊链接 D.软链接 257、Samba 服务器的进程由(B ) 两部分组成。 A、named 和 sendmail B、smbd 和 nmbd C、 bootp 和 dhcpd D、httpd 和 squid 258、PV 操作是在(D ) 上的操作。 A、临界区 B、进程 C、缓冲区 D、信号量 259. 在 TCP/IP 模型中, 应用层包含了所有的高层协议, 在下列的一些应用协议中, B 是 能够实现本地与远程主机之间的文件传输工作。 A) telnet B) FTP C) SNMP D) NFS 260.当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置 出现了问题,满足该目的的命令是 C 。 A) ping B) ifconfig C) traceroute D) netstat 261.DNS 域名系统主要负责主机名和 A 之间的解析。 A) IP 地址 B) MAC 地址 C) 网络地址 D) 主机别名 262、关于 Qt 说法不正确的是(C ) A、是跨平台的 C++图形用户界面库 B、Qt Embedded(Qtopia)基于 Framebuffer C、Qt 的各元件通信是基于 callback 的 D、可以同几种 Java 虚拟机集成 263、暂停当前(前台)任务并放到后台去的命令是(A)。 A、 + Z B、 + C C、 + P D、& 264、关于 RISC 指令系统描述不正确的是( C ) 。 A、优先选取使用频率最高的一些指令 B、避免使用复杂指令 C、不需要一个复杂的编译器 D、寻址方式种类少 265、启动 samba 服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中前 者是在 C 文件中以独立进程方式启动。 A) /usr/sbin/smbd B) /usr/sbin/nmbd C) rc.samba D) /etc/inetd.conf 266、进程有三种状态: C 。 A) 准备态、 执行态和退出态 B) 精确态、 模糊态和随机态 C) 运行态、 就绪态和等待态 D) 手工态、 自动态和自由态 267、Samba 服务器的配置文件是 D 。 A) httpd.conf B) inetd.conf C) rc.samba D) smb.conf 268、字符设备文件类型的标志是 B 。 A ) p B) c C) s D) l 269、下列变量名中有效的 shell 变量名是: C 。 A) -2-time B) _2$3 C )trust_no_1 D ) 2004file 270、以下叙述中正确的是 C 。 A) 宿主机与目标机之间只需要建立逻辑连接即可 B) 在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C) 在嵌入式系统开发中,通常采用的是交叉编译器 D) 宿主机与目标机之间的通信方式只有串口和并口两种

271、文件系统的主要功能是 A 。 A) 实现对文件的按名存取 B) 实现虚拟存储 C) 提高外存的读写速度 D) 用于保存系统文档 272、以下做法不利于嵌入式应用软件的移植的是 D 。 A) 在软件设计上,采用层次化设计和模块化设计 B) 在软件体系结构上, 在操作系统和应用软件之间引入一个虚拟机层,把一些通用的、共 性的操作系统 API 接口函数封装起来 C) 将不可移植的部分局域化,集中在某几个特定的文件之中 D) 在数据类型上,尽量直接使用 C 语言的数据类型 273、对 ARM 处理器说法不正确的是( D ) 。 A、小体积、 低功耗、低成本、高性能 B、支持 Thumb(16 位)/ARM(32 位) 双指令集 C、只有 Load/Store 指令可以访问存储器 D、寻址方式多而复杂 274、嵌入式微控制器相比嵌入式微处理器的的最大特点(B )。 A、体积大大减小 B、单片化 C、功耗低 D、成本高 275.c-shell 中变量名 ignoreeof 表示 C A)执行之前显示每一条命令 B)使文件名结束 C)必须用 logout 注销而不是^D D)禁止文件名扩展 276、在字符界面环境下注销 LINUX, 可用( C )命令。 A. exit 或 quit B. quit 或 ctrl+D C. exit 或 ctrl+D D. 以上都可 278. 用下列(A)命令查看 Linux 使用了多少内存。 A. cat /proc/meminfo B. cat /bin/meminfo C. vi /proc/meminfo D. vi /user/local/meminfo 279. LINUX 支持网络文件系统 NFS, 下列哪个命令实现了将位于 192.168.1.4 机器上的 /opt/sirnfs 目录挂载到本机/mnt/sirnfs 下: D A. mount nfs –t /mnt/sirnfs 192.168.1.4:/opt/sirnfs B. mount -t nfs /mnt/sirnfs 192.168.1.4:/opt/sirnfs C. mount nfs –t 192.168.1.4:/opt/sirnfs /mnt/sirnfs D. mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs 280、下面哪条命令可用来确保文件“file1”存在( A ) A. cp file1 /dev/null B. touch file1 C. create file1 D. mkfile file1 281、在安装开始前,用光盘启动系统,想要进入字符界面安装,需要输入的命令是( C ) A.linux doc

B.linux C.linux text D.linux note 282、操作系统中同时存在着多个进程,它们(C ) A、不能共享系统资源 B、不能调用同一段程序代码 C、可以共享所有的系统资源 D、可以共享允许共享的系统资源 283、在变址寻址方式中,操作数的有效地址等于(C) A、变址寄存器内容+形式地址(位移量) B、程序计数器内容+形式地址 C、基址寄存器内容+形式地址 D、堆栈指示器内容+形式地址 284、下列文件系统中,采用了 inode 来标识文件的是( D ) a.ntfs b.fat16 c.fat32 d.ext3 285、Linux 文件权限一共 10 位长度,分成四段,第一段表示的内容是( A ) A 文件类型 B 文件所有者的权限 C 文件所有者所在组的权限 D 其他用户的权限 286、对于所有用户具有读的文件权限,而文件主同时具有执行权限的文件权限是( B ) a.655 b.544 c.644 d.540 287、在使用 GCC 编译器的过程中, 如果只想生成目标文件而不进行连接, 需要使用选项 ( C ) A.-S B. -o C. -c D.-E 288、 Linux 将存储设备和输入/输出设备均看做文件来操作,下列选项(C)不是以文件的 形式出现。 A. 目录 B. 软链接 C. i 节点表 D. 硬链接 289、Qt/Embedded 的底层图形引擎基于一下哪种接口技术: A A. framebuffer B.GAL C. IAL D.GFX 290、同 CISC 相比,下面哪一项不属于 RISC 处理器的特征__D______ A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 2~3 种。 B、减少指令数和寻址方式,使控制部件简化,加快执行速度。 C、 数据处理指令只对寄存器进行操作, 只有加载/存储指令可以访问存储器, 以提高指 令的执行效率,同时简化处理器的设计。 D、RISC 处理器都采用哈佛结构 291、在给定文件中查找与设定条件相符字符串命令为(A ) A、grep B、gzip C、find D、sort 292、 Linux 系统中的设备可分为三类:字符设备、块设备和网络设备,其中不是基于文件 系统访问的设备是 ( ) 。 A、中断断点的地址 B、中断向量表起始地址 C、中断处理程序入口地址 D、中断返回地址

293、( B ) 不是进程和程序的区别。 A. 程序是一组有序的静态指令,进程是一次程序的执行过程 B. 程序只能在前台运行,而进程可以在前台或后台运行 C. 程序可以长期保存,进程是暂时的 D. 程序没有状态,而进程是有状态的 211、在 ARM 系统结构中,MMU 映射最大的单元空间是___A_ A、1MB B、128KB C、64KB D、4KB 294. 下面哪一个选项不是 linux 系统的进程类型(C) A. 交互进程 B. 批处理进程 C. 就绪进程 D. 守护进程 295. 如果 Boot Loader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分 别独立存放,则其存储结构的分配顺序应当是:_D____。 A . 文件系统、内核、启动参数、Bootloader B . 启动参数、Bootloader、内核、 文件系统 C . Bootloader、内核、 启动参数、文件系统 D . Bootloader、启动参数、内核、文件系统 296. Boot Loader 的 stage2 通常使用 C 语言实现, 以完成复杂的功能,并增加可读性 和可移植性,以下哪一步骤属于 stage2 的内容:__D____ A . 为加载 Boot Loader 的 stage2 准备 RAM 空间 B . 设置好堆栈 C . 硬件设备初始化 D . 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 297、请选择正确的命令( D ) 命令可以列出当前动态加载的模块清单, 会把当前插入 的所有内核模块都列出来。 A、 insmod B、rmmod C、 dmesg D、 lsmod 298、在 Linux 2.4 或者 2.6 内核中, 和 ARM 体系结构相关的中断处理程序的 C 代码在 源码树的_B__文件中 A、 kernerl/irq.c B、 arch/arm/kernel/irq.c C、 arch/arm/mach/irq.c D、 arch/arm/kernel/entry-armv.S 299、通过修改下面文件哪个文件 , 可以设定开机时候自动安装的文件系统(C ) A. /etc/mta B. /etc/fastboot C. /etc/fstab D. /etc/inetd.conf 300 、下面关于 Shell 的说法,不正确的是: ( D ) A. 操作系统的外壳 B. 用户与 Linux 内核之间的接口程序 C. 一个命令语言解释器 D. 一种和 C 类似的程序语言 301、下面关于 Shell 的说法,不正确的是: (D)

A. 操作系统的外壳 B. 用户与 Linux 内核之间的接口程序 C. 一个命令语言解释器 D. 一种和 C 类似的程序语言 302、下面对于 Bootloader 的描述不正确的是(C) A、是上电后运行的第一个程序 B、改变系统时钟 C、Bootloader 的两种模式对开发人员没有意义 D、向内核传递启动参数 303、符号“|"在 shell 命令中表示: ( D ) A、输出追加 B、输入追加 C、 输出重定向,原来的文件被改写 D、管道 304、某文件的组外成员的权限为只读;所有者有读执行权限;组内的权限为只写,则该文 件的权限为( D ) A 467 B 642 C 476 D 524 305、在 ARM Linux 体系中,用来处理外设中断的异常模式是_C_____ A、软件中断(SWI) B、未定义的指令异常 C、中断请求(IRQ) D、快速中断请求(FIQ) 306、在 Linux 系统中,驱动程序注册中断处理程序的函数是__B___ A、 trap_init B、 request_irq C、 enable_irq D、 register_irq 307、未定义指令异常的 C 处理函数在(C)文件中定义。 A、 arch/arm/kernel/traps.c B、arch/arm/mm/fault.c C、 arch/arm/mm/irq.c D、 arch/arm/calls.S 308、在 ARM 体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在 何时被清除?A A、当中断处理程序结束以后,才可以清除 B、进入相应的中断处理程序,即可以清除 C、产生 IRQ 中断的时候,处理器自动清除 D、任何时候都可以清除 309、仅当前一个命令执行出错时才执行后一条命令,需要采取的操作是: (C) A. command1 && command2 B. command1 XOR command2 C. command1 || command2 D. command1 << command2 310、如果要将文件名 file1 修改为 file2,下列命令( B ) 可以实现。 A. cp file1 file2 B. mv file1 file2 C. ls file1 >file2 D. ll file1 >file2 311、在使用 GCC 编译器的过程中,以下(B)选项可用来指定生成的目标文件名 A.-c B. -o C. -S D.-E 312、为了使用生成的目标文件能够用于 gdb 调试,在编译时 GCC 应使用(C)选项。 A. -c B.-w C. -g D.-o 313、不存盘退出 vi 的指令是( B) 。

A、 q B、q! C、w D、 wq 314. 下列关于/etc/fstab 文件描述, 正确的是( D ) 。 A. fstab 文件只能描述属于 linux 的文件系统 B. CD_ROM 和软盘必须是自动加载的 C. fstab 文件中描述的文件系统不能被卸载 D 启动时按 fstab 文件描述内容加载文件系统 315. 下列哪个命令以文本菜单方式界面配置内核选项: A A Make menuconfig B make xconfig C make config D make mrproper 316. 如果 Boot Loader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分 别独立存放,则其存储结构的分配顺序应当是:___D__。 A. 文件系统、内核、启动参数、Bootloader B. 启动参数、Bootloader、内核、 文件系统 C. Bootloader、内核、 启动参数、文件系统 D. Bootloader、启动参数、内核、文件系统 317. Boot Loader 的 stage2 通常使用 C 语言实现, 以完成复杂的功能,并增加可读性 和可移植性,以下哪一步骤属于 stage2 的内容:___D___ A . 为加载 Boot Loader 的 stage2 准备 RAM 空间 B . 设置好堆栈 C . 硬件设备初始化 D . 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 318.下列几种流行的嵌入式 GUI 中,没有采用分层设计的一种是: B A.MiniGUI B. Qt/Embedded C. Nano-X Window D. OpenGUI 319. 在使用文件通配符对文件名操作时?号表示(A) A. 只与一个任意的字符匹配 B. 只与一个任意的字母匹配 C. 只与一个任意的数字匹配 D. 匹配于任意字符的组合 320、同 CISC 相比,下面哪一项不属于 RISC 处理器的特征__D______ A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 2~3 种。 B、减少指令数和寻址方式,使控制部件简化,加快执行速度。 C、 数据处理指令只对寄存器进行操作, 只有加载/存储指令可以访问存储器, 以提高指 令的 执行效率,同时简化处理器的设计。 D、RISC 处理器都采用哈佛结构 321、 已知 Linux 系统中的唯一一块硬盘是第一个 IDE 接口的 master 设备, 该硬盘按 顺序有 3 个主分区和一个扩展分区,这个扩展分区又划分了 3 个逻辑分区,则该硬盘上的 第二个逻辑分区在 Linux 中的设备名称是( D ) A. /dev/hda2 B. /dev/hda3 C. /dev/hda5 D. /dev/hda6 322、为了查看 Linux 启动信息,可以用: ( B ) A、 cat /etc/lilo.conf B、dmesg C、 cat/proc/cpuinfo D、 lilo

323、在下列 ARM 处理器的各种模式中,__D___模式有自己独立的 R8-R14 寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ) 324、按照 ARM 过程调用标准(APCS), 栈指针使用_B___寄存器, A、R0 B、R13 C、R14 D、R15 325、 在 ARM 体系结构中, _C___寄存器作为连接寄存器, 当进入子程序时或者处理器响 应异 常的时候,用来保存 PC 的返回值;___C_寄存器作为处理器的程序计数器指针。 A、R0,R14 B、R13, R15 C、R14, R15 D、R14, R0 326、在 ARM 体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor), 应采用何种方法?C A、直接修改 CPU 状态寄存器(CPSR) 对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新 CPU 状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 327、在 ARM 系统结构中,MMU 映射最小的单元空间是__D__ A、64KB B、16KB C、4KB D、1KB 328、在 ARM Linux 启动的过程中,开启 MMU 的时候,如何实现从实地址空间到虚拟地址 空间的过度?D A、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间)并继续运行。 B、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),跳转到虚拟地 址空间继续运行。 C、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),开启 MMU,跳转到虚拟地 址空间继续运行。 D、在内存中创建页表 (映射内核到 3G 以上的虚拟地址空间,同时把内核所在的前 1MB 空 间到和其实地址相同的虚拟地址空间),开启 MMU, 跳转到虚拟地址空间继续运行。 329、在 Linux 2.4 或者 2.6 内核中, 和 ARM 体系结构相关的中断处理程序的 C 代码在 源码树的_B__文件中 A、 kernerl/irq.c B、 arch/arm/kernel/irq.c C、 arch/arm/mach/irq.c D、 arch/arm/kernel/entry-armv.S 330、启动 init 进程前, 不需要经过(D)步骤。 A.加载内核 B. 检测内存 C.加载文件系统 D.启动网络支持 331、 能在 Linux 下, 用 mkfs.jffs2 命令创建 JFFS2 文件系统 (基本上是使用 JFFS2 的 Ramdisk), 关于 mkfs.jffs2 下列说法错误的是: (C) A.-e 选项确定闪存的擦除扇区大小(通常是 64 千字节)

B.-p 选项用来在映像的剩余空间用零填充。 C.-f 选项用于输出文件,通常是 JFFS2 文件系统映像 D. 一旦创建了 JFFS2 文件系统, 它就被装入闪存中适当的位置(引导装载程序告知内核 查找文件系统的地址)以便内核能挂装它。 332、切换用户登录的命令是: ( B ) A. ps B. su C. kill D. changeuser 333、文件之间可以建立两种链接关系:软链接和硬链接,硬链接的特点是(C) A. 等同于文件复制操作 B. 类似于文件复制,但新的链接文件并不占用文件磁盘存储空间 C. 删除源文件,将使其他链接文件失效 D. 可以对目录文件名建立硬链接 334、在使用文件通配符对文件名操作时?号表示(A) A. 只与一个任意的字符匹配 B. 只与一个任意的字母匹配 C. 只与一个任意的数字匹配 D. 匹配于任意字符的组合 335、Linux 文件权限一共 10 位长度,分成四段,第二段表示的内容是( B ) A.文件类型 B .文件所有者的权限 C. 文件所有者所在组的权限 D. 其他用户的权限 336、对于所有用户都只能读的文件权限是( B ) a.777 b.444 c.644 d.640 337、在 vi 编辑器的命令模式中,删除一行的命令是( B ) a.yy b.dd c.pp d.xx 338、在使用 GCC 编译器的过程中, 如果只想生成目标文件而不进行连接, 需要使用选项 ( A ) A.-c B. -o C. -S D.-E 339、 如果 Boot Loader、 内核、启动参数以及其他的系统映像四部分在固态存储设备上 分别独立存放,则其存储结构的分配顺序应当是:_D __。 A. 文件系统、内核、启动参数、Bootloader B. 启动参数、Bootloader、内核、文件系统 C. Bootloader、内核、 启动参数、文件系统 D. Bootloader、启动参数、内核、文件系统 340、 Boot Loader 的 stage2 通常使用 C 语言实现,以完成复杂的功能,并增加可读性 和可移植性,以下哪一步骤属于 stage2 的内容:_D __ A. 为加载 Boot Loader 的 stage2 准备 RAM 空间 B.设置好堆栈 C.硬件设备初始化 D.将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 341、下面属于 blob 运行过程第一阶段的是(C) A. 外围的硬件初始化(串口,USB 等); B. 根据用户选择,进入命令行模块或启动 kernel。 C. 寄存器的初始化 D .堆栈的初始化 答案:C 第一阶段的代码在 start.s 中定义, 大小为 1KB, 它包括从系统上电后在 0x00000000 地址开始执行的部分。 这部分代码运行在 Flash 中, 它包括对 S3C44B0 的

一些寄存器的初始化和将 Blob 第二阶段代码从 Flash 拷贝到 SDRAM 中。 342、下列几种流行的嵌入式 GUI 中,没有采用分层设计的一种是: B A.MiniGUI B. Qt/Embedded C. Nano-X Window D. OpenGUI 343、 Qt/Embedded 的底层图形引擎基于一下哪种接口技术: A A. framebuffer B.GAL C. IAL D.GFX 344、在 ARM 系统结构中,MMU 映射最大的单元空间是_A___ A、1MB B、128KB C、64KB D、4KB 345、在 ARM 系统结构中,MMU 映射最小的单元空间是_D___ A、64KB B、16KB C、4KB D、1KB 346、在 ARM Linux 启动的过程中,开启 MMU 的时候,如何实现从实地址空间到虚拟地址 空间的过度?D A、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间)并继续运行。 B、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),跳转到虚拟地 址空间继续运行。 C、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),开启 MMU,跳转到虚拟地 址空间继续运行。 D、在内存中创建页表 (映射内核到 3G 以上的虚拟地址空间,同时把内核所在的前 1MB 空 间到和其实地址相同的虚拟地址空间),开启 MMU, 跳转到虚拟地址空间继续运行。 347、在 ARM 体系中,MMU 的第一级描述符有___项,每个描述符占用____字节 A、 1024, 32 B、 4096, 4 C、 4096, 4 D、 1024, 32 答案:C(B 和 C 一样的,A 和 D 是一样的) 348、在 ARM 体系中,下面 MMU 的一级描述符中,是节描述符的是_A___ A、 0xA0000C0E B、0xA0000C0F C、 0x00000000 D、0xC0000C01 349、在 Linux 2.4 或者 2.6 内核中, 和 ARM 体系结构相关的中断处理程序的 C 代码在 源码树的_B__文件中 A、 kernerl/irq.c B、 arch/arm/kernel/irq.c C、 arch/arm/mach/irq.c D、 arch/arm/kernel/entry-armv.S 350、下面关于 Shell 的说法,不正确的是: (D) A. 操作系统的外壳 B. 用户与 Linux 内核之间的接口程序 C. 一个命令语言解释器 D. 一种和 C 类似的程序语言 351、以下关于 init 进程,描述不正确的是: (A) A. 一个通用进程 B. 可以产生新的进程 C. 在某些程序退出的时候能重起它们 D. 负责在系统启动的时候运行一系列程序和脚本文件 352、在 Linux 系统中,下列哪个命令可以用来加载模块( A ) A.insmod B.load

C.init D.installmod 353、可加载模块一般位于系统的(B)目录下: A. /lib/modules B. /lib/modules/x.y.z(x.y.z 是内核的版本号) C. /usr/lib D. /usr/local/lib 354、 下列哪个命令以文本菜单方式界面配置内核选项: A A Make menuconfig B make xconfig C make config D make mrproper 355、 如果 Boot Loader、 内核、启动参数以及其他的系统映像四部分在固态存储设备上 分别独立存放,则其存储结构的分配顺序应当是:_B____。 A . 文件系统、内核、启动参数、Bootloader B . 启动参数、Bootloader、内核、 文件系统 C . Bootloader、内核、 启动参数、文件系统 D . Bootloader、启动参数、内核、文件系统 356、 Boot Loader 的 stage2 通常使用 C 语言实现,以完成复杂的功能,并增加可读性 和可移植性,以下哪一步骤属于 stage2 的内容:__D____ A . 为加载 Boot Loader 的 stage2 准备 RAM 空间 B . 设置好堆栈 C . 硬件设备初始化 D . 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 357、 Linux 分区默认的文件系统的类型是: ( B ) A. vfat B. ext2/ext3 C. swap D. dos 358、在下列 ARM 处理器的各种模式中,_D____模式有自己独立的 R8-R14 寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ) 359、按照 ARM 过程调用标准(APCS), 栈指针使用__B__寄存器, A、R0 B、R13 C、R14 D、R15 360、下面关于 MMU 和 Linux 描述错误的是:C A、MMU 是内存管理单元 Memory Management Unit 的缩写 B、uClinux 可以运行在有 MMU 的处理器上 C、Linux 内核功能强大,内存管理功能丰富,即使在没有 MMU 的处理器上,也可以通过软 件实现地址映射。 D、Linux 系统正是利用 MMU,才能使得各个进程有独立的寻址空间 361、在 ARM 系统结构中,MMU 映射最大的单元空间是_A___ A、1MB B、128KB C、64KB D、4KB 362、在 Linux 系统中,驱动程序注册中断处理程序的函数是__B___ A、 trap_init B、 request_irq C、 enable_irq D、 register_irq 363、在 ARM Linux 系统中,中断处理程序进入 C 代码以后,ARM 的处于__A__工作模式 A、超级用户(SVC) B、中断(IRQ) C、快速中断(IRQ) D、和进入中断之前的状态有关系

364、在 ARM 体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在 何时被清除?A A、当中断处理程序结束以后,才可以清除 B、进入相应的中断处理程序,即可以清除 C、产生 IRQ 中断的时候,处理器自动清除 D、任何时候都可以清除 365 、下面哪一个选项不是 linux 系统的进程类型( D ) A. 交互进程 B. 批处理进程 C. 守护进程 D. 就绪进程 366、可加载模块一般位于系统的(B)目录下: A. /lib/modules B. /lib/modules/x.y.z(x.y.z 是内核的版本号) C. /usr/lib D. /usr/local/lib 367、在 Linux 下, 用 mkfs.jffs2 命令创建 JFFS2 文件系统(基本上是使用 JFFS2 的 Ramdisk),关于 mkfs.jffs2 下列说法错误的是: (C) A.-e 选项确定闪存的擦除扇区大小(通常是 64 千字节) B.-p 选项用来在映像的剩余空间用零填充。 C.-f 选项用于输出文件,通常是 JFFS2 文件系统映像 D. 一旦创建了 JFFS2 文件系统, 它就被装入闪存中适当的位置(引导装载程序告知内核 查找文件系统的地址)以便内核能挂装它。 368、 在下列 ARM 处理器的各种模式中, 只有__A___模式不可以自由地改变处理器的工作模 式。 A、用户模式(User) B、系统模式(System) C、终止模式(Abort) D、中断模式(IRQ) 369、在 CPU 和物理内存之间进行地址转换时,B 将地址从虚拟(逻辑)地址空间映射到物 理地址空间。 A ) TCB B) MMU C) CACHE D) DMA 370、嵌入式系统由硬件部分和软件部分构成,以下不属于嵌入式系统软件的是 C。 A) 系统内核 B) 驱动程序 C) FPGA 编程软件 D)嵌入式中 371、如果我们需要设置一个文件, 使它们作为可执行文件运行时,该进程是作为文件所有 者的权限,此时我们需要额外设置该文件的 C A ) seg-GID 位 B ) 粘滞位 C) set-UID 位 D) UMASK 372、 NFS 服务器通过调用/etc/rc.d/init.d 中的 portmap 和 nfs 脚本启动, 启动后它将 通过寻找本地服务器的 D 文件,向网络上的子机提供 NFS 文件共享服务 A) /etc/hosts B) /etc/inittab C) /etc/inet.d D) /etc/exports 373、 B 不是进程和程序的区别。 A ) 程序是一组有序的静态指令,进程是一次程序的执行过程

B) 程序只能在前台运行,而进程可以在前台或后台运行 C) 程序可以长期保存,进程是暂时的 D) 程序没有状态,而进程是有状态的 374、 终止一个前台进程可能用到的命令和操作 B 。 A) kill B) +C C) shut down D) halt 375、为了得到所有的命令行输入的参数,我们可以使用变量: B A) $# B) $@ C) $0 D) $! 376、通过修改文件 C , 可以设定开机时候自动安装的文件系统 A) /etc/mtab B) /etc/fastboot C) /etc/fstab D) /etc/inetd.conf 377、以下叙述中,不符合 RISC 指令系统特点的是 B 。 A) 指令长度固定,指令种类少 B) 寻址方式种类丰富,指令功能尽量增强 C) 设置大量通用寄存器,访问存储器指令简单 D) 选取使用频率较高的一些简单指令 378、下列提法中,不属于 ifconfig 命令作用范围的是 D 。 A) 配置本地回环地址 B) 配置网卡的 IP 地址 C) 激活网络适配器 D) 加载网卡到内核中 379、下列不是 Linux 系统进程类型的是 D 。 A) 交互进程 B) 批处理进程 C )守护进程 D) 就绪进程 380、在日常管理中,通常 CPU 会影响系统性能的情况是: A 。 A) CPU 已满负荷地运转 B) CPU 的运行效率为 30% C) CPU 的运行效率为 50% D) CPU 的运行效率为 80% 381、WWW 服务器是在 Internet 上使用最为广泛,它采用的是 B 结构。 A) 服务器/工作站 B) B/S C) 集中式 D )分布式 382、NFS 是 C 系统。 A) 文件 B) 磁盘 C) 网络文件 D) 操作 383、关闭 linux 系统(不重新启动)可使用命令 B 。 A) Ctrl+Alt+Del B) halt C) shutdown -r now D) reboot 384、在 vi 编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。 A) “a” B) “o” C) “I” D) A 385、 在 vi 编辑器中的命令模式下, 重复上一次对编辑的文本进行的操作, 可使用 C 命 令。 A) 上箭头 B) 下箭头 C) ; D) ; 386、下列软件中,不属于 BootLoader 的是( B ) 。 A、 vivi B、busybox C、uboot D、 blob 387、重定向的符号“>>"表示: ( A ) A、输出追加 B、输入追加 C、 输出重定向,原来的文件会被改写 D、管道 388、在下列 ARM 处理器的各种模式中,__D___模式有自己独立的 R8-R14 寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ)

389、按照 ARM 过程调用标准(APCS), 栈指针使用__B__寄存器, A、R0 B、R13 C、R14 D、R15 390、 在 ARM 体系结构中, __C__寄存器作为连接寄存器, 当进入子程序时或者处理器响 应异常的时候,用来保存 PC 的返回值;__C__寄存器作为处理器的程序计数器指针。 A、R0,R14 B、R13, R15 C、R14, R15 D、R14, R0 391、在 ARM Linux 启动的过程中,开启 MMU 的时候,如何实现从实地址空间到虚拟地址 空间的过度?D A、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间)并继续运行。 B、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),跳转到虚拟地 址空间继续运行。 C、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间),开启 MMU,跳转到虚拟地 址空间继续运行。 D、在内存中创建页表 (映射内核到 3G 以上的虚拟地址空间,同时把内核所在的前 1MB 空 间到和其实地址相同的虚拟地址空间),开启 MMU, 跳转到虚拟地址空间继续运行。 392、在 ARM Linux 体系中,用来处理外设中断的异常模式是_C_____ A、软件中断(SWI) B、未定义的指令异常 C、中断请求(IRQ) D、快速中断请求(FIQ) 393、在 Linux 系统中,驱动程序注册中断处理程序的函数是__B___ A、 trap_init B、 request_irq C、 enable_irq D、 register_irq 394、在 ARM Linux 系统中,中断处理程序进入 C 代码以后,ARM 的处于_A___工作模式 A、超级用户(SVC) B、中断(IRQ) C、快速中断(IRQ) D、和进入中断之前的状态有关系

二、多项选择题 1. 嵌入式操作系统不同于通用操作系统的功能是( ) A、任务调度 B、可裁减性 C、 强实时 D、设备管理 E、存储器管理 2. linux 操作系统支持的文件系统有( A B C D E ) A、EXT2 B、 VFAT C、NFS D、 ISO9660 E、JFFS 3. Linux 系统中的设备文件通常有如下分类(B C D ) A、虚拟设备 B、字符设备 C、 网络设备 D、块设备 E、存储设备 4. 片内总线是大规模集成电路(Large Scale Integrated Circuit:LSI)和超大规模集成 电路(VLSI)内部各寄存器或功能单元之间的信息交换通道,它由生产厂家决定,下列属于片 内总线的有(A B D ) 。 A、AHB 总线 B、 APB 总线 C、USB 总线 D、ASB 总线 E、 1394 总线 5. 下列能改变 ARM 处理器工作状态的指令有( C D) A、B 指令 B、 SUB 指令 C、 BX 指令 D、 BLX 指令 E、 BL 指令 6. 常用的软件开发模型有(B C D ) A、结构型 B、 原型模型 C、 迭代型 D、瀑布型 E、综合型 7. ARM 处理器的工作模式中属于异常模式的有( C D E )

A、用户模式 usr B、系统模式 sys C、 外部中断模式 irq D、中止模式 abt E、快速中断模式 fiq 8. 芯片总线又称元件级总线,它是指系统内或插件板内各元件之间所使用的总线,下列属 于芯片总线的有( A C D ) A、I2C 总线 B、 ISA 总线 C、SPI 总线 D、SCI 总线 E、 PCI 总线 9. 在 ARM 汇编语言程序设计中主程序和子程序参数的传递需要满足 ATPCS 规则, ATPCS 规则中用来传递参数的寄存器是(A B C D ) A、 R0 B、 R1 C、R2 D、 R3 E、R4 三、填空题 1、编写shell程序运行前必须赋予该脚本文件 执行 权限。 2、在linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。 3、使用gcc编译c程序生成可执行文件有时似乎是一步完成的,但实际要经历如下四步:预 处理、编译、汇编和链接 。 4、使用gdb进行调试时,可通过 step 和next命令进行单步执行。 4、链接分为:硬链接和符号链接 。 5、前台起动的进程使用 kill 终止。 6、 安装Linux系统对硬盘分区时, 必须有两种分区类型: 文件系统分区 和 交换分区 。 7. 在 Linux 系统中,以 文件 方式访问设备 。 8. Linux 内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 6449,该文 件属性是 目录 。 10. 前台起动的进程使用 Ctrl+c 终止 11. 安装 Linux 系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。 12. 编写的 Shell 程序运行前必须赋予该脚本文件 执行 权限。 13. 在 Linux 系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 。 14. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设 备驱动程序 时,必须对内核 升级 。 15. vi 编辑器具有两种工作模式: 命令模式 和 输入模式 。 16. 可以用 ls –al 命令来观察文件的权限,每个文件的权限都用 10 位表示,并分为四段, 其中第一段占 1 位,表示 文件类型 ,第二段占 3 位,表示 文件所有者 对该文件的权限。 17. CD-ROM 标准的文件系统类型是 iso9660 。 18. 在使用 ls 命令时,用八进制形式显示非打印字符应使用参数 -b 。 19. Linux 使用支持 Windows 9.x/2000 长文件名的文件系统的类型是 vfat 。 20、 在 Linux 系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。 21. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。 22. 套接字文件的属性位是 s 。 23. 结束后台进程的命令是 kill 24. 为脚本程序指定执行权的命令及参数是 chmod a+x filename 。 25. 进行远程登录的命令是 telnet 。 26.在 Linux 系统中,压缩文件后生成后缀为.gz 文件的命令是 gzip 。 53. 在用 vi 编辑文件时,将文件内容存入 test.txt 文件中,应在命令模式下键入 :w test.txt 27. 在 Linux 系统下,第二个 IDE 通道的硬盘(从盘)被标识为 hdb 。

28. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 。 29. 在 vi 编辑环境下,使用 Esc 键 进行模式转换 30. 将/home/stud1/wang 目录做归档压缩,压缩后生成 wang.tar.gz 文件,并将此文件保 存 到 /home 目 录 下 , 实 现 此 任 务 的 tar 命 令 格 式 tar zcvf /home/wang.tar.gz /home/stud1/wang 。 31. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 。 32. rm 命令可删除文件或目录,其主要差别就是是否使用递归开关 -r 或-R 。 33. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。 34. nfs 协议用于实现 Unix(/linux)主机之间的文件系统共享。 35. 在 Linux 操作系统中,设备都是通过特殊的 文件 来访问。 36. shell 不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bash 是 Linux 的缺省 shell。 37. 用 >;>; 符号将输出重定向内容附加在原文的后面。 38. 增加一个用户的命令是:adduser 或 useradd 。 39. 进行字符串查找,使用 grep 命令。 40. 使用 * 每次匹配若干个字符。 41、 在 linux 系统中,以 文件 方式访问设备 。 42、 前台起动的进程使用 ctrl+c 终止。 43 、 安装 linux 系统对硬盘分区时, 必须有两种分区类型: 文件系统分区 和 交换分区 。 44 、 利用 gdb 进行调试时,可通过 step 或 next 命令进行单步执行。 45 、 DHCP 可以实现动态 IP 地址分配。 46 、 Ping 命令可以测试网络中本机系统是否能到达 一台远程主机 , 所以常常用于测试 网络 的 连通性 。 47 、 vi 编辑器具有两种工作模式: 命令模式 和 输入模式 。 48 、 在使用 ls 命令时,用八进制形式显示非打印字符应使用参数 -b 。 49、 在 shell 编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格 。 50、 在 Windows9.x 环境下共享 Unix/Linux 中的用户目录的一个工具是 Samba 服务器 。 51、 编写的 shell 程序运行前必须赋予该脚本文件 执行 权限。 52、 在 Linux 系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。 53、 结束后台进程的命令是 kill 。 54、 进行远程登录的命令是 telnet 。 55、 在用 vi 编辑文件时,将文件内容存入 test.txt 文件中, 应在命令模式下键入 : w test.txt 。 56、 在 Linux 系统下,第二个 IDE 通道的硬盘(从盘)被标识为 hdb 。 57、 在 CPU 和物理内存之间进行地址转换时,MMU 将地址从虚拟(逻辑)地址空间映射到 物理地址空间 。 58、 使用 gcc 编译 c 程序生成可执行文件有时似乎是一步完成的, 但实际要经历如下四 步: 预处理、编译、汇编和连接 。 59、 利用 gdb 进行调试时,可通过 step 或 next 命令进行单步执行。 60、 内核分为 进程管理系统 、 内存管理系统 、 i/o 管理系统 和文件管理系统等四个 子系统。 61、 gcc 的编译可分为__预处理____、编译、汇编和___链接___等四个阶段。

62、 在 Linux 多线程编程时,需要包含头文件___pthread.h___。 63、 卸载 Linux 内核模块使用命令___rmmod___。 64、 ARM 处理器有多种运行模式,用户程序运行在其中的___用户___模式。 65、 ARM 处理器的中断有两种处理模式,分别为___快速中断___模式和的___外部中断 ___模式。 66、 Linux 系统中,普通用户使用的命令通常保存在___/bin___目录中。 67、 setenv 命令的功能是___设置环境变量___。 68、 Linux 文件的链接可分为符号链接和___硬链接___两种。 69、 在 shell 编程时, 要把一个用户的输入赋值给一个变量, 使用__read_______命令。 70、 Qt/Embedded 使用___信号___和___插槽___的机制实现函数的回调。 71、 加载 Linux 内核模块使用命令___insmod___。 72、 ARM 处理器有多种运行模式,用户程序运行在其中的___用户___模式。 73、 Linux 系统在启动 init 进程时使用的配置文件是_/etc/inittab_____。 74、 VI 编辑器有三种工作模式:命令模式、插入模式和___末行模式___。 75、 交叉编译是指___在一个平台上生成可以在另一个平台上执行的代码___。 76、 setenv 命令的功能是___设置环境变量___。 77、 在 linux 系统中,以 文件 方式访问设备 。 78、 利用 gdb 进行调试时,可通过 step 或 next 命令进行单步执行。 79、 Qt/Embedded 的底层图形引擎基于 FrameBuffer 接口技术。 80、 Linux 操作系统的系统管理员(也就是超级用户)帐号是 root 。 81、 编写的 shell 程序运行前必须赋予该脚本文件 执行 权限 。 82、 使用 gcc 编译 c 程序生成可执行文件有时似乎是一步完成的, 但实际要经历如下四 步:预处理、编译、 汇编 和连接。 83、 内核分为 进程管理系统 、 内存管理系统 、 IO 管理系统 和文件管理系统 等四个 子系统。 84、 嵌入式系统中按照总线所传送的信息类型,可以分为数据总线、地址总线和 控制 总线 等几种。 85、 嵌入式 linux 系统中,设备类型分为字符设备、块设备 和 网络设备 等三种。 86、 Linux 中所有用户的信息保存于__ /etc/passwd _和__/etc/shadow __文件。 87、 链接分为__软连接 __和__硬链接 ____链接 。 88、 编写的 Shell 程序运行前必须赋予该脚本文件__执行__权限。

89、 某文件的权限位:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为_644 , 该文件属性是__目录 _。 90、 嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:引导加载程序、__ Linux 内核___、__文件系统_、 用户应用程序。 四、判断题 1、 在 gdb 调试过程中,不退出 gdb 也可以执行 UNIX shell 命令。(对) 2、 退出交互模式的 shell, 应键入 quit。(错) 3、 Linux 文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件, 一般应将其放在/etc 目录中。(错) 4、 命令 fdisk /mbr 的作用是安装系统引导程序到主分区。(错) 5、 在 Linux 系统中,测试 DNS 服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。 (对) 6、 命令 mount /dev/hdc /mnt/cdrom 是将光盘 CD-ROM(hdc) 安装到文件系统的 /mnt/cdrom 目录下。(对) 7、 /home/src 目录存放着 Linux 的源代码。( ) 9、 Linux 文件名的长度不得超 256 个字符。(对 ) 10、 在 vi 编辑器中的命令模式下,删除当前光标处的字符使用 d 命令。( ) 11、 基于 ARM 架构的指令都是 32 位的。 (错) 12、 激活网卡需要编译内核。( ) 14、 写回 Cache 是指 CPU 在执行写操作时,必须把数据同时写入 Cache 和主存。(×) 15、 在 vi 编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用下箭头 命令。(错) 16、 文件系统的主要功能是实现虚拟存储。(错) 17、 进程有三种状态是准备态、执行态和退出态。(错) 18、 Samba 服务器的进程由 smbd 和 nmbd 两部分组成 。 (对) 19、 shell 命令的第一个按键必须是字符、数字或者空格(错) 20、 Linux 文件名的长度不得超 256 个字符。(对) 21、 在 gdb 调试过程中, 用 make 命令可以不用退出 gdb 就可以重新产生可执行文件。 (对) 22、 若一台计算机的内存为 128MB,则交换分区的大小通常是 64M。(错) 23、 在重新启动 Linux 系统的同时把内存中的信息写入硬盘,应使用 shutdown –r now 命令实现。(对) 24、 在 vi 编辑器中的命令模式下,删除当前光标处的字符使用 d 命令。(错) 25、 Samba 服务器的进程由 smbd 和 nmbd 两部分组成 。 (对) 26、 从后台启动进程,应在命令的结尾加上符号@。 (错) 27、 网络管理的重要任务是: 控制 和 监控 。(对) 28、 /home/src 目录存放着 Linux 的源代码。(错)

29、 (X)根文件系统是具有操作系统的嵌入式系统必须的组成部分。 30、 (V)一个 shell 脚本运行时可以看成是一个 Linux 作业,它可能由多个进程完成。 31、 (V)在 2.6 内核中加入的抢占点提高了 Linux 的可抢占性,但 Linux 仍不能看作 实时系统。 32、 (X)目前的 ARM 处理器采用的是哈佛体系结构。 33、 (V)ARM 处理器的运行模式可通过中断或异常处理改变。 34、 (X)C 语言中的栈的压入和弹出是由操作系统管理的。 35、 (X)BootLoader 属于嵌入式操作系统的一部分。 36、 (X)chmod 命令可用来修改处理器的运行模式。 37、 (X)CGI 程序由 Web 服务器解释运行。 38、 (V)Linux 系统中的目录可以看作是一种特殊的文件。 39、 (X)shell 环境变量主要用于脚本的执行过程,不会作用于脚本之外的程序。 40、 (V)Busybox 常用于替代桌面系统中的 init 和 shell 等程序,为嵌入式用户提供 使用环境。 41、 (V) LINUX 是一个真正的多用户、 多任务操作系统, 允许多个用户在相同的机器 上一次运行很多程序,并能保证相互之间的共享和安全。 42、 在嵌入式系统中, 整个系统的加载启动任务就完全由 Boot Loader 来完成。( ) 43、 在 LINUX 系统中, 所有的内容被表示成文件, 组织文件的各种方法便称为不同的文 件系统。( ) 44、 Linux 系统是一个多用户多任务的分时操作系统,允许多个用户在相同的机器上一次 运行很多程序。( ) 45、 Linux 中的 ls 命令的功能是变换工作目录到目标指定目录。( ) 46、 ARM 包含 32 个通用寄存器。( ) 47、 Qt Embedded 的 API 同 Qt/X11 和 Qt/Windows 的相同, 但它并不是基于 X11 库。 ( ) 48、 kmalloc 和 vmalloc 的区别在于,前者申请到的是物理地址连续的内存空间,而后者 则是虚拟地址连续的内存空间,不能用在中断时间。( ) 49、 LINUX 是一个真正的多任务和分时操作系统,允许多个用户在相同的机器上一次运行 很多程序。( ) 50、 (X)Linux 采用线程调度程序选择线程占用 CPU 运行。 51、 (V)在单机系统中可采用关中断的方式保证操作的原子性。 52、 (X)根文件系统是系统启动时首先加载的文件系统,因此需要快速加载的内容应放 置于其中,以加快系统的运行速度。 53、 (X)线程切换成本小于进程,因此 Linux 系统中的多线程程序的调度开销要小于多 进程程序。 54、 (X)守护进程的主要任务是完成与用户的交互,以保证系统的响应性能。 55、 (X)Linux 内存管理采用了 Slab 机制,因此,无需硬件支持,Linux 能够很好地支 持虚拟存储。 56、 (X)模块程序运行于内核模式,因此,它们能够访问内核中的所有函数。 57、 (X)根文件系统所在的分区越大约好,因为根分区越大,Linux 启动速度越快。 58、(V) 一个 shell 脚本的第一行是: #! /bin/csh 它的作用是注释, 表示下面脚本是 csh 脚 本。 59、 (X)目前 Linux 平台上的各种线程库使得 Linux 能够在内核空间能够支持多线程。

60、 (V)Linux 允许内核以 NFS 的形式连接根文件系统 61、 (V)EXT3 文件系统是一种日志型的文件系统。 62、 (V)BootLoader 是嵌入式系统运行的第一个程序。 63、 (X)自旋锁可以用在单机系统中来保证内核相关操作的原子性。 64、 (X)Samba 服务器在 Linux 平台上常用作 Web 服务器。 65、 在 vi 编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用下箭头 命令。 (错 ) 66、 进程有三种状态是准备态、执行态和退出态。 ( ) 67、 触摸屏是一种输入设备。(√) 68、 VHDL 是一种硬件描述语言,用于设计硬件电子系统。(√) 69、 二极管具有单向导通性。(√) 70、 CISC 机器多采用 Load/Store 结构(× ) 71、 GDB 是一个用来调试 C 和 C++程序的调试器。(√) 72、 DSP 是专门用于数字信号处理方面的处理器。(√) 73、 Nand Flash 的特点是应用程序可以直接在闪存中运行, 不需要把代码读到系统 RAM 中。(× ) 74、 LCD 是一种输出设备。(√) 75、函数的标量参数通过传值的方式进行传递, 而数组名参数则具有传址调用的语义。 ( )

五、问答题
1、简述嵌入式系统的概念、组成及特点。 2、 嵌入式开发环境主要包括哪些组件? 3、 简述 BootLoader 的作用。 4、 请描述建立一个嵌入式开发平台的步骤。 5、 嵌入式系统的设计过程 6、 设备驱动程序有哪些特点 7、 Linux 内核移植的操作过程 8、 ARM 处理器有几种工作模式,分别叫什么? 9、简述嵌入式系统中非占先式与占先式调度法的区别有哪些。 答: 非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此 合作共享一个 CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。 (1 分) 但中断服务以后控制权还是回到原来被中断了的那个任务, 直到该任务主动放弃 CPU 的使 用权时, 那个高优先级的任务才能获得 CPU 的使用权。 (2 分) 当系统响应时间很重要时, 要使用占先式 (preemptive) 内核。 (1 分) 最高优先级的任务一旦就绪, 总能得到 CPU 的 控制权。 当一个运行着的任务使一个比它优先级高的任务进入了就绪态, 当前任务的 CPU 使用权就被剥夺了, 或者说被挂起了, 那个高优先级的任务立刻得到了 CPU 的控制权。 (2 分) 10、什么是硬实时操作系统、软实时操作系统以及二者的区别? 答: 在实时系统中, 如果系统在指定的时间内未能实现某个确定的任务, 会导致系统的 全面失败,这样的系统被称为强实时系统或硬实时系统。 (1 分)强实时系统响应时间一般 在毫 秒或微秒级。(1 分) 在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。(1 分)

其系统响应时间在毫秒至秒的数量级上, (1 分) 其实时性的要求比强实时系统要差一些。 (2 分) 11、介绍一下嵌入式系统的设计步骤有哪些? 各部分主要工作是什么? 答: (1) 需求分析阶段, 罗列出用户的需求; (1 分) (2) 体系结构设计阶段, 描述系统的功能如何实现; (1 分) (3) 详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实 现,哪些用软件实现; (1 分) (4) 系统集成, 把系统的软件、 硬件和执行装置集成在一起,(1 分) 进行调试, 发现 并改进在设计过程中的错误; (1 分) (5) 系统测试, 对设计好的系统进行测试,看其是否满足给定的要求。(1 分) 4、 ARM 支持哪两种数据存储格式, 简单描述各自特点。 答: 分为大端格式和小端格式。(2 分) 大端格式: 被存放字数据的高字节存储在存储系统的低地址中, 而被存放的字数据的 低字节则存放在存储系统的高地址中。(2 分) 小端格式: 与大端存储格式相反, 在小端存储格式中, 存储系统的低地址中存放的是 被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。 (2 分) 12、什么是 BootLoader?主要有几种工作模式及主要功能是什么? 答: 简单说来, Bootloader 就是操作系统内核运行的一段小程序, 完成进行初始化系统硬件 设置的任务, 包括 CPU、 SDRRAM、 Flash、 串口等初始化, 时钟的设置、 存储器的 映射。(2 分) 分为启动加载模式和下载模式。 (1) 启动加载模式 启动加载 (Boot laoding) 模式又称为“自主” (Autonomous) 模式, 是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行, 整个过程并没有用户 的介入。(2 分) (2) 下载模式 在下载模式下, 目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿 主机下载文件。(2 分) 13、 简述 Bootloader 有何作用? 答案要点: (1)首先, bootloader 是在特定硬件平台运行的程序, 严重依赖于硬件平台, 需要移植;(2)是系统上电之后, 第一个运行的程序, 系统在上电或复位时通常都从地

址 0x0 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序; (3)bootloader 程序的设计目标是启动嵌入式操作系统, 嵌入式操作系统的启动需要一 定的条件, 这些条件由 bootloader 来满足; (4)Bootloader 一般具有对存储器和网 络接口操作的功能; 如擦除、读写 Flash, 通过 USB、串口下载文件等 14、 简述嵌入式系统的几个重要特征? 答案要点: 系统内核小 ;专用性强 ;系统精简 ;高实时性的系统软件 ;多任务的操 作系统 ;需要专用的开发工具和环境。 答出上述 4 个并适当阐述的即可给满分。 15、 什么是程序的局部性原理? 答案要点: 程序的局部性原理是指程序在执行过程中的一个较短时期内, 它所执行的 指令和访问的存储空间分别局限在一定的区域内。 具体表现在时间局部性和空间局部 性。 时间局部性是指一条指令的一次执行和下一次执行、 一个数据的一次访问和下一 次访问, 都集中在一个较短的时间内。 空间局部性是指程序执行了某条指令, 则它相 邻的几条指令也可能马上执行。 16、 Linux 作为嵌入式操作系统的优势? 答: Linux 作为嵌入式操作系统的优势主要有以下几点: 1. 可应用于多种硬件平台。Linux 已经被移植到多种硬件平台,这对于经费, 时间受 限制的研究与开发项目是很有吸引力的。 原型可以在标准平台上开发后移植到 具体的硬件 上, 加快了软件与硬件的开发过程。 Linux 采用一个统一的框架对硬件进行管理, 从一 个硬件平台到另一个硬件平台的改动与上层应用无关。(1 分) 17. Linux 的高度模块化使添加部件非常容易。 本身内置网络支持,而目前嵌入式系统 对网络支持要求越来越高。(1 分) 18. Linux 是一个和 Unix 相似、以内核为基础的、具有完全的内存访问控制,支持大量 硬件(包括 X86, Alpha、 ARM 和 Motorola 等现有的大 部分芯片)等特性的一种通用操作系 统。(1 分) 19. Linux 可以随意地配置,不需要任何的许可证或商家的合作关系。 其程序源码全部 公开,任何人可以修改并在 GUN 通用公共许可证(GNU General Public License)下发行。 这 样,开发人员可以对操作系统进行定制,适应其特殊需要。(1 分) 20. Linux 带有 Unix 用户熟悉的完善的开发工具,几乎所有的 Unix 系统的应用软件都已 移植到了 Linux 上。其强大的语言编译器 GCC, C++等也可以很容易得到,不但成熟完善, 而且使用方便。(分) 21、简述网络文件系统 NFS,并说明其作用。 答: NFS 即网络文件系统, 是主机通过网络进行文件共享的协议(2 分)。 通常用于 UNIX 或类 UNIX 系统中。NFS 服务器的共享目录可以被 NFS 客户端作为文件系统挂载到本地中(1

分)。它的作用是通常用于局域网中用于文件共享(1 分)。它的特点是不想 http 和 ftp 要把文件下载到本地才能够被访问,NFS 不需要下载到本地即可访问(1 分)。 22、简述 Boot Loader 的两种操作模式 (Operation Mode)? 答: 启动加载(Boot loading)模式: 这种模式也称为"自主"(Autonomous) 模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行, 整个过程并没 有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯, Boot Loader 显然必须工作在这种模式下。 (2.5 分) 下载(Downloading) 模式: 在这种模式下,目标机上的 Boot Loader 将通过串口连接或 网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的 FLASH 类固态存储设备中。 Boot Loader 的这种模式通常在第一次 安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工 作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令 行接口。(2.5 分) 23、简述嵌入式系统设计过程。 答;每条 1 分 (1)需求分析 (4)设计硬件构件和软件构件 (2)规格说明 (5)系统集成 (3)体系结构设计 (6)系统测试 24、 ARM 启动代码是系统加电后运行的第一段软件代码, 由于这类代码直接面对处理器 内核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容主要包括? 答:每条 1 分 中断向量表 初始化存储器系统 初始化堆栈 初始化有特殊要求的断口,设备 初始化用户程序执行环境 改变处理器模式 呼叫主应用程序 25、什么是符号链接, 什么是硬链接?符号链接与硬链接的区别是什么? 答: 链接分硬链接和符号链接。 符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。 符号链接的文件类型位是 l,链接文件具有新的 i 节点。 硬链接不可以跨文件系统。 它只能建立对文件的链接, 硬链接的文件类型位是-, 且硬 链接文件的 i 节点同被链接文件的 i 节点相同。 26、进程的查看和调度分别使用什么命令? 答: 进程查看的命令是 ps 和 top。 进程调度的命令有 at, crontab, batch, kill。

27、简述嵌入式系统中非占先式与占先式调度法的区别有哪些。 答: 非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作 共享一个 CPU。 中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。(1 分) 但中断服务以后控制权还是回到原来被中断了的那个任务, 直到该任务主动放弃 CPU 的使 用权时,那个高优先级的任务才能获得 CPU 的使用权。(2 分) 当系统响应时间很重要时,要使用占先式(preemptive)内核。(1 分)最高优先级的任 务一旦就绪, 总能得到 CPU 的控制权。 当一个运行着的任务使一个比它优先级高的任务 进入了就绪态, 当前任务的 CPU 使用权就被剥夺了, 或者说被挂起了, 那个高优先级 的任务立刻得到了 CPU 的控制权。(2 分) 28、什么是 BootLoader,其主要功能是什么? 答:Boot Loader 相当于普通 pc 机的 BIOS,是在系统复位后执行的第一段代码。因此, 整个系统的加载启动任务就完全由 Boot Loader 来完成。 它首先完成系统硬件的初始化, 包括时钟的设置、 存储器的映射等。 并设置堆栈指针, 然后跳转到操作系统内核入口, 如系统在加电或复位时通常从地址 0x00000000 处开始执行,而在这个地址处安排的通常 就是系统的 Boot Loader 程序。这样,将系统的软硬件环境带到一个合适的状态,以便为 最终调用操作系统内核准备好正确的环境。 在此之后, 系统的运行在操作系统的控制下 了。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此, 在 嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。 不同的嵌入式系统其 Boot Loader 一般是不同的。从操作系统的角度来看, Boot Loader 的总目标就是正确地调用内核来执行。 另外, 由于大多数 Boot Loader 都分为阶段 1 和 阶段 2 两部分。 依赖于 CPU 的体系结构的代码, 比如设备初始化代码等, 通常都放在 阶段 1 中, 而且通常用汇编语言来实现, 以达到短小精悍的目的。 而阶段 2 通常用 C 语言来实现, 这样可以实现一些复杂的功能, 而且代码会具有更好的可读性和移植性。 29、什么是硬实时操作系统、软实时操作系统以及二者的区别? 答: 在实时系统中, 如果系统在指定的时间内未能实现某个确定的任务, 会导致系统的 全面失败,这样的系统被称为强实时系统或硬实时系统。(1 分)强实时系统响应时间一 般在毫秒或微秒级。(1 分) 在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。(1 分) 其系统响应时间在毫秒至秒的数量级上, (1 分) 其实时性的要求比强实时系统要差一些。 (2 分) 30、多线程有几种实现方法,线程间同步有几种实现方法,都是什么? 答: 两种实现方法,一种是继承 Thread,另外一种是实现接口 Runnable。 同步的实现方 法有两种,分别是 synchronized, wait 与 notify。用 synchronized 可以对一段代码、 一个对象及一个方法进行加锁。 用 wait 与 notify 可以使对象处于等待及唤醒方式导致 同步,因为每个对象都直接或间接的继承了 Object 类。 31、介绍一下嵌入式系统的设计步骤有哪些? 各部分主要工作是什么? 答: (1) 需求分析阶段, 罗列出用户的需求; (1 分) (2) 体系结构设计阶段, 描述系统的功能如何实现; (1 分)

(3) 详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实 现,哪些用软件实现; (1 分) (4) 系统集成, 把系统的软件、 硬件和执行装置集成在一起,(1 分) 进行调试, 发现并改进在设计过程中的错误; (1 分) (5) 系统测试, 对设计好的系统进行测试,看其是否满足给定的要求。(1 分) 32、某/etc/fstab 文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义。 答: (1)第一列:将被加载的文件系统名; (2)第二列:该文件系统的安装点; (3)第三列:文件系统的类型; (4)第四列:设置参数; (5)第五列:供备份程序确定上次备份距现在的天数; (6)第六列:在系统引导时检测文件系统的顺序。 33、 ARM 支持哪两种数据存储格式, 简单描述各自特点。 答: 分为大端格式和小端格式。 (2 分) 大端格式: 被存放字数据的高字节存储在存储系统的 低地址中, 而被存放的字数据的低字节则存放在存储系统的高地址中。(2 分) 小端格式: 与大端存储格式相反, 在小端存储格式中, 存储系统的低地址中存放的是 被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。 (2 分) 34、简述网络文件系统 NFS,并说明其作用。 答: 网络文件系统是应用层的一种应用服务, 它主要应用于 Linux 和 Linux 系统、Linux 和 Unix 系统之间的文件或目录的共享。 对于用户而言可以通过 NFS 方便的访问远地的文件 系统, 使之成为本地文件系统的一部分。采用 NFS 之后省去了登录的过程, 方便了用户 访问系统资源。 35、什么是 BootLoader?主要有几种工作模式及主要功能是什么? 答: 简单说来,Bootloader 就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设 置的任务, 包括 CPU、 SDRRAM、 Flash、 串口等初始化, 时钟的设置、 存储器的映射。 (2 分) 分为启动加载模式和下载模式。 (3) 启动加载模式 启动加载(Boot laoding) 模式又称为“自主” (Autonomous) 模式, 是指 Bootloader

从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的 介入。(2 分) (4) 下载模式 在下载模式下, 目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主 机下载文件。(2 分) 36、简述进程的启动、 终止的方式。 答: 在 Linux 中启动一个进程有手工启动和调度启动两种方式: (1)手工启动 用户在输入端发出命令,直接启动一个进程的启动方式。可以分为: ①前台启动:直接在 SHELL 中输入命令进行启动。 ②后台启动:启动一个目前并不紧急的进程,如打印进程。 (2)调度启动 系统管理员根据系统资源和进程占用资源的情况, 事先进行调度安排, 指定任务运行的时 间和场合,到时候系统会自动完成该任务。 37、简述 Bootloader 有何作用? 答案要点: (1)首先, bootloader 是在特定硬件平台运行的程序, 严重依赖于硬件平台, 需要移植;(2)是系统上电之后, 第一个运行的程序, 系统在上电或复位时通常都从地址 0x0 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序; (3)bootloader 程序的设计目标是启动嵌入式操作系统, 嵌入式操作系统的启动需要一定 的条件, 这些条件由 bootloader 来满足;(4)Bootloader 一般具有对存储器和网络接口 操作的功能; 如擦除、 读写 Flash,通过 USB、串口下载文件等 38、 ARM 处理器中,引起异常的原因是什么? 答:(1)、指令执行引起的异常 软件中断、未定义指令(包括所要求的协处理器不存在是的 协处理器指令)、 预取址中止(存储器故障)、数据中止。 (2)、外部产生的中断 复位、 FIQ、 IRQ。 39 简述嵌入式系统的几个重要特征? 答案要点: 系统内核小 ; 专用性强 ; 系统精简 ; 高实时性的系统软件 ; 多任务的 操作系统 ;需要专用的开发工具和环境。 答出上述 4 个并适当阐述的即可给满分。 40、简述 Busybox 的工作原理。(4 分) 参考答案:Busybox 是通过一个程序去实现原来 Linux 的众多命令程序。这样可使原来 3.5MB 左右的工具包压缩大约 200KB 大小一个程序, 这对嵌入式系统非常重要 (2 分) 。为 了使用的方便, Busybox 通过创建其原文件的符号连接来达到传递具体执行命令的目的。 例 如, 创建一个 mv 的符号连接, 当用户键入 mv 后, mv 实际上会以 C 语言中的 argv[0] 传递给 Busybox 的主程序。这样 Busybox 就可据此跳转到相应的代码去执行。(2 分) 41、 Linux 作为嵌入式操作系统的优势? 答: Linux 作为嵌入式操作系统的优势主要有以下几点: 1. 可应用于多种硬件平台。Linux 已经被移植到多种硬件平台,这对于经费, 时间受

限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到 具体的硬件 上, 加快了软件与硬件的开发过程。 Linux 采用一个统一的框架对硬件进行管理, 从一 个硬件平台到另一个硬件平台的改动与上层应用无关。(1 分) 2. Linux 的高度模块化使添加部件非常容易。 本身内置网络支持,而目前嵌入式系统 对网络支持要求越来越高。(1 分) 3. Linux 是一个和 Unix 相似、以内核为基础的、具有完全的内存访问控制,支持大量 硬件(包括 X86, Alpha、 ARM 和 Motorola 等现有的大 部分芯片)等特性的一种通用操作系 统。(1 分) 4. Linux 可以随意地配置,不需要任何的许可证或商家的合作关系。 其程序源码全部 公开,任何人可以修改并在 GUN 通用公共许可证(GNU General Public License)下发行。 这样,开发人员可以对操作系统进行定制,适应其特殊需要。(1 分) 5. Linux 带有 Unix 用户熟悉的完善的开发工具,几乎所有的 Unix 系统的应用软件都已 移植到了 Linux 上。其强大的语言编译器 GCC, C++等也可以很容易得到,不但成熟完善, 而且使用方便。(分) 42、简述 Linux 需要进行进程调度的时机(6 分) 参考答案: (每小点 1 分) Linux 执行进程调度一般是在以下情况发生的: (1)正在执行的进程运行完毕; (2)正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态; (3)正在执行的进程调用了 P 原语操作,从而因资源不足而被阻塞;或调用了 V 原语操 作激活了等待资源的进程队列; (4)执行中的进程提出 I/O 请求后被阻塞; (5)系统分配的时间片已经用完; 以上都是 CPU 为不可剥夺方式下的引起进程调度的原因。 在 CPU 方式是可剥夺时, 还有 下面的原因: (6)就绪队列中的某个进程的优先级变得高于当前运行进程的优先级,从而也将引起进程 调度。 43、什么是符号链接, 什么是硬链接?符号链接与硬链接的区别是什么?(6 分) 参考答案: 链接分硬链接和符号链接。 符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。 符号链接的文件类型位是 l,链接文件具有新的 i 节点。 (3 分) 硬链接不可以跨文件系 统。 它只能建立对文件的链接, 硬链接的文件类型位是-, 且硬链接文件的 i 节点同被 链接文件的 i 节点相同。(3 分) 44、简述 Boot Loader 的两种操作模式 (Operation Mode)? 答: 启动加载(Boot loading)模式: 这种模式也称为"自主"(Autonomous) 模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行, 整个过程并没 有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯, Boot Loader 显然必须工作在这种模式下。 (2.5 分)

下载(Downloading) 模式: 在这种模式下,目标机上的 Boot Loader 将通过串口连接或 网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的 FLASH 类固态存储设备中。 Boot Loader 的这种模式通常在第一次 安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工 作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令 行接口。(2.5 分) 45、模块的编程和普通程序的编程有哪些区别?(6 分) 参考答案: 主要区别为: (1)因为内核模块运行在内核态, 所以包含的头文件是内核程序相关的头文件, 而普通 程序则包含的是 glibc 的头文件(1 分) (2)模块程序没有 main 函数,而是通过 init_module 函数在加载后初始化。(2 分) (3)模块程序内可直接调用内核函数,而普通程序则只能通过系统调用使用内核函数。 (2 分) (4)普通用户程序可运行多次,而内核函数通常则只能加载 1 次(1 分)。 46、 已知 C 语言程序有主程序模块 prog.c,prog.h, 其中调用了另一模块 subr.c, subr.h 中的功能。试写出一个可将这两个模块编译成可执行文件 pr1 的 makefile。(5 分) 参考答案: [每行 1 分] pr1: prog.o subr.o gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h gcc –c –o prog.o prog.c subr.o: subr.c subr.h gcc –c –o subr.o subr.c 47、ARM 启动代码是系统加电后运行的第一段软件代码, 由于这类代码直接面对处理器内 核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容主要包括?(7 分) 答:每条 1 分 中断向量表 初始化存储器系统 初始化堆栈 初始化有特殊要求的断口,设备 初始化用户程序执行环境 改变处理器模式 呼叫主应用程序 48、简述 Linux 的 VFS 机制及其特点?(5 分) 参考答案:

VFS 是一种抽象的文件机制, 内核中对文件系统的相关操作系统实际上都通过操作 VFS 实 现, 也就是说 VFS 是对各具体文件系统的抽象。(3 分) VFS 使得内核其他部分无须关心不同文件系统之间的差异, 使得 Linux 可以支持多种类型 的文件系统。当然, 因为增加了抽象层,会有类型转换的开销。(2 分) 49、BootLoader 有哪几种工作模式?各有什么特点(5 分) 参考答案: 启动加载模式和下模式(2 分)。前者“自主”, 不需要用户干预, 后者可 响应用户的交互请求。(3 分) 50、 简述嵌入式系统调试有哪几种方式(5 分) 参考答案: 模拟器方式(1 分)、 在线仿真器方式(1 分)、 监控器方式(1 分)、在线调试器方式, 如 JTAG(2 分)。 51、Qt/Embedded 的主要特点是什么?(5 分) 参考答案: 是一个专门为嵌入式系统设计的图形用户界面的工具包 (1 分) 。 支持 UNIX 和 Windows 平 台(1 分)。 采用面向对象的思想开发(1 分),开发接口与桌面的 Qt 相同,因此桌面 51、 什么是交叉编译? 为什么要采用交叉编译(5 分) 参考答案: 所谓交叉编译, 是指在一个平台上编译生成在另一个平台上运行的可执行程序。 (3 分)。 之所以采用交叉编译,是因为目标平台上不具备直接运行开发环境的条件。(2 分) 。 52、 什么是符号链接, 什么是硬链接?符号链接与硬链接的区别是什么? 参考答案: 链接分硬链接和符号链接。 符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。 符号链接的文件类型位是 l, 链接文件具有新的 i 节点。(3 分) 硬链接不可以跨文件系统。 它只能建立对文件的链接, 硬链接的文件类型位是-, 且硬 链接文件的 i 节点同被链接文件的 i 节点相同。(2 分) 53、简述 Boot Loader 的主要功能。 参考答案: 基本硬件设备初始化。(1 分) 设置好堆栈。 (1 分) 检测系统内存映射(memory map)。 (1 分) 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。(1 分) 为内核设置启动参数, 调用内核。(1 分) 54、嵌入式 Linux 系统的根文件系统通常应该包括哪个内容? 参考答案: 通常包括:init、libc 库、驱动模块、 必需的应用程序和系统配置脚本。(各 1 分) 55、请对下列 shell 程序加注释,并说明程序的功能和调用方法: #!/bin/sh

# # /etc/rc.d/rc.httpd # # Start/stop/restart the Apache web server. # # To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd # case "$1" in 'start') /usr/sbin/apachectl start ;; 'stop') /usr/sbin/apachectl stop ;; 'restart') /usr/sbin/apachectl restart ;; *) echo "usage $0 start|stop|restart" ;; esac 答: 1)程序注释 #!/bin/sh 定义实用的 shell # # /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。 # # Start/stop/restart the Apache web server. # # To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd # case "$1" in #case 结构开始,判断“位置参数”决定执行的操作。 本程序携带一个“位 置参数”,即$1 'start') #若位置参数为 start /usr/sbin/apachectl start ;; #启动 httpd 进程 'stop') #若位置参数为 stop /usr/sbin/apachectl stop ;; #关闭 httpd 进程 'restart') #若位置参数为 stop /usr/sbin/apachectl restart ;; #重新启动 httpd 进程 *) #若位置参数不是 start、 stop 或 restart 时 echo "usage $0 start|stop|restart" ;; #显示命令提示信息:程序的调用方法 esac #case 结构结束 (2)程序的功能是启动,停止或重新启动 httpd 进程 (3)程序的调用方式有三种:启动,停止和重新启动。 56、回答下面问题: a) 对于整形变量 A=0x12345678,请画出在 little endian 及 big endian 的方式下在内存

中 是如何存储的。 b) 在 ARM 系统中,函数调用的时候,参数是通过哪种方式传递的? c) 中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别? 答: a) 0x12345678 little endian big endian 刚好反过来 高地址--〉 0x12 低地址--〉 0x12 0x34 0x34 0x56 0x56 低地址--〉 0x78 高地址--〉 0x78 b) 答:应用程序中使用中间寄存器及数据栈来传递参数。 在 arm 汇编中,如果第 1~4 个参数通过 r0 -r3 寄存器来传递, 超过 4 个的使用数据栈 进行传递,输出函数由 r0 传递。 c)所谓中断应该是指外部硬件产生的一个电信号,从 cpu 的中断引脚进入,打断 cpu 当 前的运行; 所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu 自动产生一 个陷入来打断当前运行,转入异常处理流程。 57、 某 Linux 主机的/etc/rc.d/rc.inet1 文件中有如下语句, 请修正错误, 并解释其 内容。 /etc/rc.d/rc.inet1: ?? ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1 ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 答:修正错误: (1)ROUTE 应改为小写:route; (2)netmask 255.255.0.0 应改为:netmask 255.255.255.0; (3)缺省路由的子网掩码应改为:netmask 0.0.0.0; (4)缺省路由必须在最后设定,否则其后的路由将无效。 解释内容: (1)route:建立静态路由表的命令; (2) add:增加一条新路由; (3)-net 192.168.1.0:到达一个目标网络的网络地址; (4)default:建立一条缺省路由; (5)gw 192.168.0.101: 网关地址; (6)metric 1:到达目标网络经过的路由器数(跳数)。 58、论述一下问题 (1) ARM 中引起异常的原因 (2) 在 ARM 体系中,异常中断向量表的大小是多少,其中每个异常中断占据多少字节 (3) 异常中断的处理、返回过程。 答: (1)原因主要: a.指令执行引起的异常 软件中断、未定义指令(包括所要求的协处理器不存在是的协处 理器指令)、 预取址中止(存储器故障)、数据中止。 b.外部产生的中断 复位、 FIQ、 IRQ。 (2) 在 ARM 体系中, 异常中断向量表的大小为 32 字节, 其中每个异常中断占据 4 个 字节大小,保留了 4 个字节空间。

(3) ARM 处理器对异常中断的响应过程是首先保存处理器当前状态、 中断屏蔽位及 CPSR 寄存器中的各个条件标志位。这是通过将当前程序状态寄存器 CPSR 的内容保存到 将要执行的异常中断对应的 SPSR 寄存器中实现的。 其次设置当前程序状态寄存器 CPSR 中相应的位。 再次将寄存器 LR_mode(R14_mode)设置成返回地址。最后将 PC 设置成 该异常中断的中断向量地址,从而跳转到对应的中断处理程序处执行。 ARM 处理器从异 常中断程序中返回的过程:首先恢复被中断程序的处理器状态, 也就是将 SPSR_mode 内 容复制到 CPSR。然后返回到发生异常中断指令的下一条指令处执行,即将 LR_mode (R14_mode)寄存器的内容复制到 PC 中。 59、在 linux 中如何编译 C 程序,使之成为可执行文件(3 分)?如何调试(3 分)? 答案: [问题 1](3 分) 1)检查程序中.h 文件所在的目录,将其加入系统 PATH 中; 2)执行 C 编译:#gcc [源文件名] -o [目标文件名] 3)改变目标文件为可执行文件:#chmod +x [目标文件名] 4)如需将多个可执行文件连续执行,可用 vi 生成批处理文件,最后记得将该批处理文件 属 性改为可执行(同上一步)

[问题 2](3 分) 调 60、什么是交叉编译? 为什么要采用交叉编译(5 分) 参考答案:所谓交叉编译,是指在一个平台上编译生成在另一个平台上运行的 可执行程序。 (3 分)。 之所以采用交叉编译, 是因为目标平台上不具备直接运行开发环 境的条件。(2 分) 61、简述嵌入式 Linux 系统的初始化过程(5 分) 参考答案: 嵌入式 Linux 系统开机首先运行 BootLoader,然后由 BootLoader 引导启动 内核, 由内核检查和初始化硬件设备, 载入设备的驱动程序模块, 安装 root 文 件系统,然后内核将启动一个名为 init 的进程(2 分)。在 init 运行完成 并启动其它必要的后续进程后,系统开始运行, 引导过程结束。init 进程启 动时需要读取 inittab 配置文件, 该文件确定 init 在系统启动和关机时的 工作特性。(3 分)
62、假如你需要设计一个 BootLoader,在具体开发之前,你需要确定哪几个主要问题? 参考答案: 需要考虑的问题: (1) 与主机连接的方式(2) 硬件 CPU 类型,如何初始 化 (3) 内存空间大小以及如何使用 (4) 内核运行前需要准备哪些条件(5)BootLoader 需要支持几种模式。(每点各 2 分)

六、阅读程序 1、#include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #include <linux/errno.h>

#include #include #include #include #include #include #include

<linux/mm.h> <linux/sched.h> <linux/init.h> <linux/cdev.h> <asm/io.h> <asm/system.h> <asm/uaccess.h>

#include "memdev.h" static mem_major = MEMDEV_MAJOR; module_param(mem_major, int, S_IRUGO); struct mem_dev *mem_devp; /*设备结构体指针*/ struct cdev cdev; /*文件打开函数*/ int mem_open(struct inode *inode, struct file *filp) { struct mem_dev *dev; /*获取次设备号*/ int num = MINOR(inode->i_rdev); if (num >= MEMDEV_NR_DEVS) return -ENODEV; dev = &mem_devp[num]; /*将设备描述结构指针赋值给文件私有数据指针*/ filp->private_data = dev; return 0; } /*文件释放函数*/ int mem_release(struct inode *inode, struct file *filp) { return 0; } /*读函数*/ static ssize_t mem_read(struct file *filp, char __user *buf, size_t size, loff_t

*ppos) { unsigned long p = *ppos; unsigned int count = size; int ret = 0; struct mem_dev *dev = filp->private_data; /*获得设备结构体指针*/ /*判断读位置是否有效*/ if (p >= MEMDEV_SIZE) return 0; if (count > MEMDEV_SIZE - p) count = MEMDEV_SIZE - p; /*读数据到用户空间*/ if (copy_to_user(buf, (void*)(dev->data + p), count)) { ret = - EFAULT; } else { *ppos += count; ret = count; printk(KERN_INFO "read %d bytes(s) from %d\n", count, p); } return ret; } /*写函数*/ static ssize_t mem_write(struct file *filp, const char __user *buf, size_t size, loff_t *ppos) { unsigned long p = *ppos; unsigned int count = size; int ret = 0; struct mem_dev *dev = filp->private_data; /*获得设备结构体指针*/ /*分析和获取有效的写长度*/ if (p >= MEMDEV_SIZE) return 0; if (count > MEMDEV_SIZE - p) count = MEMDEV_SIZE - p;

/*从用户空间写入数据*/ if (copy_from_user(dev->data + p, buf, count)) ret = - EFAULT; else { *ppos += count; ret = count; printk(KERN_INFO "written %d bytes(s) from %d\n", count, p); } return ret; } /* seek 文件定位函数 */ static loff_t mem_llseek(struct file *filp, loff_t offset, int whence) { loff_t newpos; switch(whence) { case 0: /* SEEK_SET */ newpos = offset; break; case 1: /* SEEK_CUR */ newpos = filp->f_pos + offset; break; case 2: /* SEEK_END */ newpos = MEMDEV_SIZE -1 + offset; break; default: /* can't happen */ return -EINVAL; } if ((newpos<0) || (newpos>MEMDEV_SIZE)) return -EINVAL; filp->f_pos = newpos; return newpos; } /*文件操作结构体*/

static const struct file_operations mem_fops = { .owner = THIS_MODULE, .llseek = mem_llseek, .read = mem_read, .write = mem_write, .open = mem_open, .release = mem_release, }; /*设备驱动模块加载函数*/ static int memdev_init(void) { int result; int i; dev_t devno = MKDEV(mem_major, 0); /* 静态申请设备号*/ if (mem_major) result = register_chrdev_region(devno, 2, "memdev"); else /* 动态分配设备号 */ { result = alloc_chrdev_region(&devno, 0, 2, "memdev"); mem_major = MAJOR(devno); } if (result < 0) return result; /*初始化 cdev 结构*/ cdev_init(&cdev, &mem_fops); cdev.owner = THIS_MODULE; cdev.ops = &mem_fops; /* 注册字符设备 */ cdev_add(&cdev, MKDEV(mem_major, 0), MEMDEV_NR_DEVS); /* 为设备描述结构分配内存*/ mem_devp = kmalloc(MEMDEV_NR_DEVS * sizeof(struct mem_dev), GFP_KERNEL); if (!mem_devp) /*申请失败*/ { result = - ENOMEM; goto fail_malloc;

} memset(mem_devp, 0, sizeof(struct mem_dev)); /*为设备分配内存*/ for (i=0; i < MEMDEV_NR_DEVS; i++) { mem_devp[i].size = MEMDEV_SIZE; mem_devp[i].data = kmalloc(MEMDEV_SIZE, GFP_KERNEL); memset(mem_devp[i].data, 0, MEMDEV_SIZE); } return 0; fail_malloc: unregister_chrdev_region(devno, 1); return result; } /*模块卸载函数*/ static void memdev_exit(void) { cdev_del(&cdev); /*注销设备*/ kfree(mem_devp); /*释放设备结构体内存*/ unregister_chrdev_region(MKDEV(mem_major, 0), 2); /*释放设备号*/ } MODULE_AUTHOR("ctbu"); MODULE_LICENSE("GPL"); module_init(memdev_init); module_exit(memdev_exit); 2、//device driver program #include<linux/config.h>/*内核编译时的配置文件,文件里面指向一个 make menuconfig 自动生成的文件 autoconf.h*/ #include<linux/kernel.h>//模块驱动程序的头文件 #include<linux/module.h> #include<linux/sched.h> //中断相关的头文件 #include<linux/interrupt.h> #include<linux/timer.h> //定时器相关的头文件 #include<linux/init.h> #include<linux/delay.h> #include<linux/modversions.h> #include<linux/version.h> //文件中定义了 LINUX 内核的所有的版本,用于版本检查

#include<asm/io.h>//访问系统硬件用的头文件 #include<asm/irq.h> #include<asm/hardware.h> #include<linux/devfs_fs_kernel.h> #define SimpleD_MAJOR 96 //定义主设备号 devfs_handle_t dev_handle; //系统 DEVFS 所用到的 handle int SimpleD_temp_count=0; //定义系统变量,防止文件被多重打开 /*-------------------Simpled Read------------------------*/ ssize_t SimpleD_read(struct file *file,char *buf,size_t count,loff_t *f_ops) { printk("S3c2410:device file-Read operation!\n"); return count; } /*-------------------Simpled Write------------------------*/ ssize_t SimpleD_write(struct file *file,char *buf,size_t count,loff_t *f_ops) { printk("S3c2410:device file-write operation!\n"); return count; } /*-------------------Simpled Ioctl------------------------*/ ssize_t SimpleD_ioctl(struct inode *inode,struct file *file,unsigned int cmd,long data) { printk("S3c2410:device file-ioctl operation!\n"); } /*------a-------------Simpled device open------------------------*/ ssize_t SimpleD_open(struct inode *inode,struct file *file) { return 0; } /*-------------------Simpled device close------------------------*/ ssize_t SimpleD_release(struct inode *inode,struct file *file) { devfs_unregister_chrdev(SimpleD_MAJOR,"SimpleD"); devfs_unregister(dev_handle); return 0; } /*SimpleD 设备向系统注册用的 OPS 结构,里面是对应的操作*/ struct file_operations SimpleD_ops={ open : SimpleD_open, read : SimpleD_read, write : SimpleD_write, ioctl : SimpleD_ioctl, release : SimpleD_release,

}; /*初始化设备的函数*/ static int __init HW_SimpleD_init(void) { int ret=-ENODEV; int delay; //注册字符型设备 ret=devfs_register_chrdev(SimpleD_MAJOR,"SimpleD",&SimpleD_ops); if(ret<0){ printk("S3c2410:init_module failed with %d\n",ret); return ret; } else{ printk(KERN_INFO"S3c241o simpleD register success!!!\n"); } dev_handle=devfs_register(NULL,"SimpleD",DEVFS_FL_DEFAULT,96,0,S_IFCHR,&Sip leD_ops,NULL) return ret; } //系统初始化 static int __init s3c2410_SimpleD_init(void) { int ret=-ENODEV; ret=HW_SimpleD_init(); if(ret) return ret; return 0; } //模块初始化函数 int init_module() { s3c_2410_SimpleD_init(); } //模块卸载函数 void cleanup_module() { printk("Module clean up\n"); } 2. 管道是 Linux 中进程通信的一种方式,以下程序在父进程和子进程之间创建了一个管 道,然后建立它们之间的通信, 实现父进程向子进程写数据的功能。 说明标号所在行 代码的功能。 #include #include

#include #include #include int main() { int pipe_fd[2]; pid_t pid; char buf_r[100]; char* p_wbuf; int r_num; memset(buf_r,0,sizeof(buf_r)); (1)

if(pipe(pipe_fd) { printf("pipe create error\n"); return -1; } if((pid=fork())==0) (3) { printf("\n"); close(pipe_fd[1]); (4) sleep(2); if((r_num=read(pipe_fd[0],buf_r,100))>0) (5) { printf( "%d numbers read from the pipe is %s\n",r_num,buf_r); } close(pipe_fd[0]); (6) exit(0); } else if(pid>0) (7) { close(pipe_fd[0]); (8) if(write(pipe_fd[1],"Hello",5)!=-1) (9) printf("parent write1 success!\n"); if(write(pipe_fd[1]," Pipe",5)!=-1) printf("parent write2 success!\n"); close(pipe_fd[1]); (10) sleep(3); waitpid(pid,NULL,0);

exit(0); } } 答案要点: (1) 将数据缓冲区清 0 (2) 创 建管道 (3) 创建子进程 (4) 关闭子进程写描述符 (5) 子进程读取管道内容 (6) 关闭子进程读描述符 (7) 父进程运行控制语句 (8) 关闭父进程的读描述符 (9) 将数据写入缓冲区 (10) 关闭父进程写描述符 3. 阅读下面 shell 程序,写出执行结果: #!/bin/sh for name in Tom Jack Harry do echo "$name is my friend" done 1、答: Tom is my friend Jack is my friend Harry is my friend 4. 用变量 a 给出下面的定义 a) 一个指向整型数的指针(A pointer to an integer) b) 一个指向指针的的指针, 它指向的指针是指向一个整型数(A pointer to a pointer to an integer) c) 一个有 10 个整型数的数组(An array of 10 integers) d) 一个有 10 个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) e) 一个指向有 10 个整型数数组的指针(A pointer to an array of 10 integers) 2、答: a) int *a; // A pointer to an integer b) int **a; // A pointer to a pointer to an integer c) int a[10]; // An array of 10 integers d) int *a[10]; // An array of 10 pointers to integers e) int (*a)[10]; // A pointer to an array of 10 integers 5. 根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。 在每个表达式进 行求值是使用原来给出的值(也就是说, 某个表达式的结果不影响后面的表达式)。假 定 ints 数组在内存中的起始位置是 100,整型值和指针的长度都是 4 字节。 in tints[20]={

10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200 }; (Other declarations) int *ip=ints+3; 表达式 值 ints __ ____ ints[4] __ ____ ip __ ____ ip[4] __ ____ *(ip+4) __ ____ 答:(每项 1 分) 表达式 值 ints __ 100 ____ Ints[4] _ 50 ____ ip __ 112 ____ ip[4] __ 80 ____ *(ip+4) __ 80____ 七、编程题目 1、编写一个 makefile 实现对多个程序的编译。 2、编写脚本,在脚本中对输入的两个参数进行大小比较 3、学会使用 shell 脚本编程的循环控制、文件属性判断等操作 4、编写脚本,将用户输入的数字按照倒序输出 5、编写脚本,移动一文件,如果目标位置存在该文件,则监视该文件,直到文件被删除后 才移动该文件 6、 管道是 Linux 中进程通信的一种方式, 以下程序在父进程和子进程之间创建了一个管 道,然后建立它们之间的通信,实现父进程向子进程写数据的功能。 说明标号所在行代码 的功能。 #include #include #include #include #include int main() { int pipe_fd[2]; pid_t pid; char buf_r[100]; char* p_wbuf; int r_num; memset(buf_r,0,sizeof(buf_r)); (1)

if(pipe(pipe_fd) { printf("pipe create error\n"); return -1; } if((pid=fork())==0) (3) { printf("\n"); close(pipe_fd[1]); (4) sleep(2); if((r_num=read(pipe_fd[0],buf_r,100))>0) (5) { printf( "%d numbers read from the pipe is %s\n",r_num,buf_r); } close(pipe_fd[0]); (6) exit(0); } else if(pid>0) (7) { close(pipe_fd[0]); (8) if(write(pipe_fd[1],"Hello",5)!=-1) (9) printf("parent write1 success!\n"); if(write(pipe_fd[1]," Pipe",5)!=-1) printf("parent write2 success!\n"); close(pipe_fd[1]); (10) sleep(3); waitpid(pid,NULL,0); exit(0); } } 答案要点: (1) 将数据缓冲区清 0 (2) 创 建管道 (3) 创建子进程 (4) 关闭子进程写描述符 (5) 子进程读取管道内容 (6) 关闭子进程读描述符 (7) 父进程运行控制语句 (8) 关闭父进程的读描述符 (9) 将数据写入缓冲区 (10) 关闭父进程写描述符 7、用 Shell 编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 答:

#!/bin/sh FILENAME= echo “Input file name:” read FILENAME if [ -c "$FILENAME" ] then cp $FILENAME /dev fi 8、 设计一个 Shell 程序, 在/userdata 目录下建立 50 个目录, 即 user1~user50, 并 设置每个目录的权限, 其中其他用户的权限为:读;文件所有者的权限为:读、 写、 执 行; 文件所有者所在组的权限为:读、 执行。 答: #!/bin/sh i=1 while [ i -le 50 ] do if [ -d /userdata ];then mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或 i=$(($i+1)) else mkdir /userdata mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或 i=$(($i+1)) fi done 9、用变量 a 给出下面的定义 f) 一个指向整型数的指针(A pointer to an integer) g) 一个指向指针的的指针, 它指向的指针是指向一个整型数(A pointer to a pointer to an integer) h) 一个有 10 个整型数的数组(An array of 10 integers) i) 一个有 10 个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) j) 一个指向有 10 个整型数数组的指针(A pointer to an array of 10 integers) 2、答: a) int *a; // A pointer to an integer b) int **a; // A pointer to a pointer to an integer c) int a[10]; // An array of 10 integers

d) int *a[10]; // An array of 10 pointers to integers e) int (*a)[10]; // A pointer to an array of 10 integers 10. 根据下面给出的声明和数据, 对每个表达式进行求值并写出他的值。 在每个表达式进 行 求值是使用原来给出的值 (也就是说,某个表达式的结果不影响后面的表达式) 。假定 ints 数组在内存中的起始位置是 100,整型值和指针的长度都是 4 字节。 in tints[20]={ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200 }; (Other declarations) int *ip=ints+3; 表达式 值 ints __ ____ ints[4] __ ____ ip __ ____ ip[4] __ ____ *(ip+4) __ ____ 答:(每项 1 分) 表达式 值 ints __ 100 ____ Ints[4] _ 50 ____ ip __ 112 ____ ip[4] __ 80 ____ *(ip+4) __ 80____

11、 由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。 依赖于 CPU 体系结构的代码,比如设备初始化代码等,通 常都放在 stage1 中, 而且通常都用汇编语言来实现, 以达到短小精悍的目的。 而 stage2 则 通常用 C 语言来实现, 这样可以实现给复杂的功能, 而且代码会具有更好的可读性和可移 植性。 请根据你对嵌入式系统中 bootloader 的理解, 简要设计一下 stage1 和 stage2 需要 完成的功能。 参考答案: BootLoader 的 stage1 通常包括以下步骤(以执行的先后顺序):(3 分) 基本硬件设备初始化。 为加载 Boot Loader 的 stage2 准备 RAM 空间。 拷贝 Boot Loader 的 stage2 到 RAM 空间中。 设置好堆栈。 跳转到 stage2 的 C 入口点。

BootLoader 的 stage2 通常包括以下步骤(以执行的先后顺序): (3 分) 初始化本阶段要使用到的硬件设备。 检测系统内存映射(memory map)。 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。 为内核设置启动参数。 调用内核。 12、 在 Linux 操作系统下,完成下列任务: 1、 编程实现以下功能 — 主程序 hello.c(打印 Hello World!) — 主程序通过头文件 hello.h 调用 message 函数 — 头文件 hello.h(声明 message 函数) — message 函数由 message.c 定义(打印 This is a message!) 1、答: hello.c: # include # include # include # include "head.h" int main (int argc,char *argv[]) { printf("Hello World!\n"); message(); return 0; } head.h: void message(void); message.c: # include void message (void){ printf("This is a message!\n"); } 13. 用 C 语言编写一个源程序 main.c,(1) 用以在打开当前目录下的文件“test.txt”, 如果没有创建该文件, 并使其具有读写属性, (2)编写一个 makefile 实现自动编译, 生成 可执行文件 main。注: 头文件可忽略。 (1)(5 分)

Void main(void) { int fid; fid = open(“./test.txt”,O_RDWR|O_CREAT); if(fid==-1) { Printf(“open or create error \n”); exit(0); } Close(fid); } (2)(5 分) objects = main.o exec = main all:$(objects) gcc –o $(exec) $(objects) main.o:main.c gcc –c main.c clean: rm –r $(exec) $(objects) 14、 假如你需要设计并编写一个音频采集程序。 该程序每 50ms 采集一次数据, 大小为 1480 个字节。 为了进一步压缩处理的需要, 你需要建立一个能够至少保存 5 次所采集数据的缓 存,该缓存的大小会根据系统的负载情况动态调整。请利用你所学的 C 语言内存管理及相 关数据结构的知识,设计一个缓存结构, 包括其内存分配的形式(如堆、栈等) 及其组织 结构(如数组、链表等)。 参考答案: 堆适合大块连续内存的分配,需要自行管理(2 分) 栈适合小块局部使用内容的分配,程序自动管理(2 分) 数组查找快,但大小固定,而链表正好相反。(2 分) 题目需要大容量存储, 且需要动态改变大小, 因此可设计为采用动态(堆) 分配的链表 型缓 存结构。每个链表节点为 1480B。(4 分) 15、 假定你在目录/home/arm 下有一个 C 程序,他由几个单独的文件组成,而这几个文件 又分为包含了其他文件,如下图所示:

文件 包含文件 main.c stdio.h, table.h list.c list.h symbol.c symbol.h table.c table.h table.h symbol.h, list.h 完成下列任务: 1. 编写 makefile 文件,最终的目标文件为 hello(交叉编译器为 arm-linux-gcc) 2. 在目标机上通过网络文件系统挂载/mnt 到宿主机上的/home/arm 目录 1、答: hello: main.o list.o symbol.o table.o gcc -o prog main.o list.o symbol.o table.o main.o: main.c table.h symbol.h list.h gcc -c -o main.o main.c list.o: list.c list.h gcc -c -o list.o list.c symbol.o: symbol.c symbol.h gcc -c -o symbol.o symbol.c table.o: table.c table.h symbol.h list.h gcc -c -o table.o table.c clean: rm hello *.o 2、 Mount –t nfs –o noclock 192.168.0.10:/home/armtest/hello /mnt

嵌入式 Linux 助理工程师认证考试
一、选择题(本大题共 50 个小题,每小题 1 分,共 50 分) 1、如果忘记了 ls 命令的用法,可以采用( )命令获得帮助。

A、?ls

B、help ls

C、man ls

D、get ls )

2、为了统计文件系统中未用的磁盘空间,我们可以使用命令: ( A、du B、df C、mount D、ln )

3、要给文件 file1 加上其他人可执行属性的命令是: ( A、chmod a+x B、chown a+x ) C、rm hello.c C、chmod o+x

D、chown o+x

4、怎样新建一个新文件: ( A、touch hello.c

B、mk hello.c

D、new hello.c

5、在 bash 命令中,当用( A、-c B、-i

)参数时,表示 bash 是交互的。 C、-s ) C、 输出重定向, 原来的文件会被改写 D、 D、-d

6、重定向的符号“>"表示: ( A、 输出追加 管道 7、^D 的确切含义是: ( ) B、 输入追加

A、停止一个正在运行的程序 C、强制退出程序

B、终止 shell D、不再有数据输入 )

8、 Linux 文件权限一共 10 位长度, 分成四段, 第二段表示的内容是: ( A、文件类型 B、文件所有者的权限

C、文件所有者所在组的权限 D、其他用户的权限 9、对于所有用户都只能读的文件权限是: ( A、777 B、444 C、644 D、640 ) )

10、在 vi 编辑器的命令模式中,删除一行的命令是: ( A、yy B、dd C、pp D、xx

11、在使用 GCC 编译器的过程中,如果只想生成目标文件而不进行连接, 需要使用选项: ( A、-c B、-o ) C、-S D、-E

12、假设当前目录下有文件 Makefile,下面是其内容: pr1: prog.o subr.o gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h

gcc –c –l prog.o prog.c subr.o: subr.c gcc –c –o subr.o subr.c clean: rm –f pr1*.o 现在执行命令 make clean,实际执行的命令是: ( A、 rm –f pr1*.o B、 gcc –c –l prog.o prog.c C、 gcc –c –o subr.o subr.c D、 都执行 13、Linux 将存储设备和输入/输出设备均看做文件来操作,下列选项 ( )不是以文件的形式出现。 B、软链接 D、网络适配器 ) )

A、目录 C、i 节点表

14、有如下的命令:$dd if=f1 of=f2。其中 if=f1 表示: ( A、 以 f1 作为源文件,代替标准输入 B、 以 f1 作为目标文件,代替标准输出 C、 当条件满足 f1 的时候,执行真正的拷贝 D、 拷贝的过程中,不转化文件

15、 文件之间可以建立两种链接关系:软链接和硬链接,硬链接的特点 是: ( )

A、 等同于文件复制操作 B、 类似于文件复制,但新的链接文件并不占用文件磁盘存储空间 C、 删除源文件,将使其他链接文件失效 D、 可以对目录文件名建立硬链接 16、下面哪一个选项不是 linux 系统的进程类型: ( A、交互进程 C、守护进程 B、批处理进程 D、就绪进程 )

17、如果 Boot Loader、内核、启动参数以及其他的系统映像四部分在固

态存储设备上分别独立存放,则比较合理的存储结构的分配顺序应当是: ( )

A、文件系统、内核、启动参数、Bootloader B、启动参数、Bootloader、内核、文件系统 C、Bootloader、内核、启动参数、文件系统 D、Bootloader、启动参数、内核、文件系统 18、Boot Loader 的 stage2 通常使用 C 语言实现,以完成复杂的功能, 并增加可读性和可移植性,以下哪一步骤属于 stage2 的内容( A、为加载 Boot Loader 的 stage2 准备 RAM 空间 B、设置好堆栈 C、硬件设备初始化 D、将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 19、下面属于 blob 运行过程第一阶段的是: ( A、外围的硬件初始化(串口,USB 等) ; B、根据用户选择,进入命令行模块或启动 kernel。 C、寄存器的初始化 D、堆栈的初始化 20、 Qt/Embedded 的底层图形引擎基于一下哪种接口技术( A、framebuffer B、GAL C、IAL D、GFX ) 。 ) ) 。

21、在根文件系统的/dev 目录下创建一个字符设备节点,下列选项正确 的是: ( ) B、mknod c 254 0 /dev/demo D、mknod /dev/demo c 254 0

A、mknod b 254 0 /dev/demo C、mknod /dev/demo b 254 0

22、LINUX 支持网络文件系统 NFS,下列哪个命令实现了将位于 192.168.1.4 机器上的 /opt/sirnfs 目录挂载到本机/mnt/sirnfs 下 ( ) 。

A、mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs B、mount -t nfs /mnt/sirnfs 192.168.1.4:/opt/sirnfs C、mount nfs –t 192.168.1.4:/opt/sirnfs /mnt/sirnfs

D、mount nfs –t /mnt/sirnfs 192.168.1.4:/opt/sirnfs 23、同 CISC 相比,下面哪一项不属于 RISC 处理器的特征( ) 。

A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有 2~3 种。 B、减少指令数和寻址方式,使控制部件简化,加快执行速度。 C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储 器,以提高指令的执行效率,同时简化处理器的设计。 D、RISC 处理器都采用哈佛结构 24、在下列 ARM 处理器的各种模式中,( 寄存器。 A、系统模式(System) C、中断模式(IRQ) B、终止模式(Abort) D、快中断模式(FIQ) )寄存器, )模式有自己独立的 R8-R14

25、按照 ARM 过程调用标准(APCS) ,栈指针使用( A、R0 B、R13 C、R14 D、R15

26、在 ARM 体系结构中, (

)寄存器作为连接寄存器,当进入子程序时 )寄存器作为

或者处理器响应异常的时候,用来保存 PC 的返回值; ( 处理器的程序计数器指针。 A、R0,R14 C、R14,R15 B、R13,R15 D、R14,R0

27、在 ARM 体系结构中,要从主动用户模式(User)切换到超级用户模式 (Supervisor) ,应采用何种方法?( )

A、直接修改 CPU 状态寄存器(CPSR)对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新 CPU 状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 28、下面关于 MMU 和 Linux 描述错误的是:( )

A、MMU 是内存管理单元 Memory Management Unit 的缩写 B、uClinux 可以运行在有 MMU 的处理器上 C、Linux 内核功能强大,内存管理功能丰富,即使在没有 MMU 的处理器

上,也可以通过软件实现地址映射。 D、Linux 系统正是利用 MMU,才能使得各个进程有独立的寻址空间 29、在 ARM 系统结构中,MMU 映射最大的单元空间是: ( A、1MB B、128KB C、64KB D、4KB ) )

30、在 ARM 系统结构中,MMU 映射最小的单元空间是: ( A、64KB B、16KB C、4KB D、1KB

31、在 ARM Linux 启动的过程中,开启 MMU 的时候,如何实现从实地址空 间到虚拟地址空间的过度?( )

A、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间) 并继续运行。 B、开启 MMU,在内存中创建页表(映射内核到 3G 以上的虚拟地址空间) , 跳转到虚拟地址空间继续运行。 C、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间) ,开启 MMU, 跳转到虚拟地址空间继续运行。 D、在内存中创建页表(映射内核到 3G 以上的虚拟地址空间,同时把内核 所在的前 1MB 空间到和其实地址相同的虚拟地址空间) ,开启 MMU,跳转 到虚拟地址空间继续运行。 32、在 ARM 体系中,MMU 的第一级描述符有___项,每个描述符占用( 字节。 A、4096,32 C、4096,4 B、1024,4 D、1024,32 ) )

33、在 ARM 体系中,下面 MMU 的一级描述符中,是节描述符的是: ( A、0xA0000C0E C、0x00000000 B、0xA0000C0F D、0xC0000C01 )

34、在 ARM Linux 体系中,用来处理外设中断的异常模式是: ( A、软件中断(SWI) C、中断请求(IRQ) B、未定义的指令异常 D、快速中断请求(FIQ)

35、在 Linux 系统中,驱动程序注册中断处理程序的函数是: ( A、trap_init B、request_irq



C、enable_irq

D、register_irq )

36、 在 ARM Linux 系统中, 中断处理程序进入 C 代码以后, ARM 的处于 ( 工作模式。 A、超级用户(SVC) C、快速中断(IRQ) B、中断(IRQ) D、和进入中断之前的状态有关系

37、在 ARM 体系构建的嵌入式系统中,由电平模式触发的中断,其对应的 中断标准应该在何时被清除?( )

A、当中断处理程序结束以后,才可以清除 B、进入相应的中断处理程序,即可以清除 C、产生 IRQ 中断的时候,处理器自动清除 D、任何时候都可以清除 38、在 Linux 2.4 或者 2.6 内核中,和 ARM 体系结构相关的中断处理程序 的 C 代码在源码树的( A、kernerl/irq.c B、arch/arm/kernel/irq.c C、arch/arm/mach/irq.c D、arch/arm/kernel/entry-armv.S 39、通过修改下面文件哪个文件 ,可以设定开机时候自动安装的文件系 统( ) 。 B、 /etc/fastboot D、 /etc/inetd.conf ) )文件中。

A、 /etc/mta C、 /etc/fstab

40、下面关于 Shell 的说法,不正确的是: ( A、 操作系统的外壳 B、 用户与 Linux 内核之间的接口程序 C、一个命令语言解释器 D、 一种和 C 类似的程序语言 41、init 可执行文件通常存放在( A、/etc C、/sbin

)目录中。 B、/boot D、/root

42、假设 root 用户执行“init 0”命令,系统将会( A、暂停 始化 B、关机

) 。 D、初

C、重新启动

43、 仅当前一个命令执行出错时才执行后一条命令,需要采取的操作是: ( ) B、 command1 XOR command2 D、command1 << command2 )

A、command1 && command2 C、command1 || command2

44、以下关于 init 进程,描述不正确的是: ( A、 一个通用进程 B、 可以产生新的进程 C、 在某些程序退出的时候能重起它们

D、 负责在系统启动的时候运行一系列程序和脚本文件 45、在 Linux 系统中,下列哪个命令可以用来加载模块( A、insmod C、init B、load D、installmod )目录下: ) 。

46、可加载模块一般位于系统的( A、 /lib/modules

B、 /lib/modules/x.y.z(x.y.z 是内核的版本号) C、 /usr/lib D、 /usr/local/lib 47、下列设备中( A、hdc B、fd0 )是字符设备。 C、hda1 D、tty1

48、 在 Linux 设备驱动程序中经常要做的工作就是在用户空间和内核空间 之间进行数据的传递,这种能力是由内核函数提供的,下面哪个函数实现 了从用户空间获取指定类型的数据: ( A、get_user copy_to_user 49、在下列 ARM 处理器的各种模式中,只有( 变处理器的工作模式。 )模式不可以自由地改 B、put_user ) D、

C、copy_from_user

A、用户模式(User) C、终止模式(Abort)

B、系统模式(System) D、中断模式(IRQ) )种不同的处理器工作模式,和

50、32 位体系结构的 ARM 处理器有( ( A、 C、

) 个主要用来标识 CPU 的工作状态和程序的运行状态的状态寄存器。 7、7 6、6 B、 D、 7、6 6、7

二、判断题(本大题共 10 个小题,每题 1 分,共 10 分)
1、根文件系统所在的分区越大越好,因为根分区越大, Linux 启动速度 越快( ) 。

2、一个 shell 脚本的第一行是:#! /bin/csh 它的作用是注释,表示下面脚 本是 csh 脚本( ) 。

3、在 2.6 内核中,由于加入了抢占点,因此 Linux 成为了一种内核可抢 占的操作系统( ) 。

4、目前 Linux 平台上的各种线程库使得 Linux 能够在内核空间能够支持 多线程( ) 。 ) 。

5、Linux 允许内核以 NFS 的形式连接根文件系统( 6、 EXT3 文件系统是一种日志型的文件系统( 7、 BootLoader 是嵌入式系统运行的第一个程序( ) 。

) 。 ) 。

8、自旋锁可以用在单机系统中来保证内核相关操作的原子性( 9、 Samba 服务器在 Linux 平台上常用作 Web 服务器( ) 。

10、线程的效率高于进程,因此在 Linux 平台上通常应采用多线程而非多 进程( ) 。

三、问答题(本大题共 28 分)

1、在 linux 中如何编译 C 程序,使之成为可执行文件(3 分)?如何调试 (3 分)?

2、简述 Linux 驱动编程中的阻塞与非阻塞操作.分别写出在应用程序中以 阻塞和非阻塞操作读取串口一个字符并显示的两段代码 ( 串口设备名为 /dev/ttyS1, 代码中应包含 open、close 等文件操作函数)。(6 分) 3、内核模块的编程和普通应用程序的编程有哪些区别?(6 分) 4、简述什么 linux 内核中断的“顶半部”和“底半部” ,为什么要采用这 种方式?并简述“底半部”处理的实现机制(一种即可) 。 (5 分) 5、简述嵌入式 Linux 系统的初始化过程(5 分)

四、设计题(本大题共 2 个小题,每题 6 分,共 12 分)
1、请用 Shell 编程,提示用户输入一文件名,然后判断这一文件是不是一 个目录。如果是,将该目录设置为当前目录。 2、在定制嵌入式 Linux 系统的根文件系统时,通常应该包括哪个内容? (4 分)应按照什么样原则确定这些内容的加入顺序?(2 分) 答案: 一选择题 C C A D D C D A C B B A A D A C C A B D C B C D D C A B C A A B A C D A C C A A B B C A B D B D A B

二、判断题(本大题共 10 个小题,每题 1 分,共 10 分)
X V X X V V V X X X

三、问答题(本大题共 28 分)
1、 在 linux 中如何编译 C 程序, 使之成为可执行文件 (3 分) ?如何调试 (3 分) ?
答案:

[问题 1](3 分) 1)检查程序中.h 文件所在的目录,将其加入系统 PATH 中; 2)执行 C 编译:#gcc [源文件名] -o [目标文件名] 3)改变目标文件为可执行文件:#chmod +x [目标文件名] 4)如需将多个可执行文件连续执行,可用 vi 生成批处理文件,最后记得将该批处理文 件属性改为可执行(同上一步) [问题 2](3 分) 调试:在编译时使用-g 参数,就可以使用 gdb 进行调试。

2、简述 Linux 驱动编程中的阻塞与非阻塞操作.分别写出在应用程序中以阻塞和 非阻塞操作读取串口一个字符并显示的两段代码 (串口设备名为/dev/ttyS1, 代码 中应包含 open、close 等文件操作函数)。(6 分)
参考答案: 阻塞操作是指,在执行设备操作时,若不能获得相应的设备资源,则进程挂起直到满足 可操作的条件再进行操作。 被挂起的进程进入 sleep 状态, 被从调度器的运行队列移走, 直到等待的条件被满足。 (1 分) 非阻塞操作的进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询, 直到可以进行操作为止。 (1 分) 代码 1(阻塞操作): char buf; int fd,res; fd = open("/dev/ttyS1", O_RDWR); res = read(fd,&buf,1); if (res==1) printf("%c\n",buf); close(fd); 代码 2(非阻塞操作): char buf; int fd; fd = open("/dev/ttyS1", O_RDWR | O_NONBLOCK); (1 分) while (read(fd,&buf,1) != 1); printf("%c\n",buf); close(fd); (1 分) (1 分) (1 分)

3、内核模块的编程和普通应用程序的编程有哪些区别?(6 分)
参考答案: 主要区别为: (1)因为内核模块运行在内核态,所以包含的头文件是内核程序相关的头文件,而普 通程序则包含的是 glibc 的头文件(1 分) (2)模块程序没有 main 函数,而是通过 init_module 函数在加载后初始化。 (2 分) (3)模块程序内可直接调用内核函数,而普通程序则只能通过系统调用使用内核函数。 (2 分) (4)普通用户程序可运行多次,而内核函数通常则只能加载 1 次(1 分) 。

4、简述什么 linux 内核中断的“顶半部”和“底半部” ,为什么要采用这种方式? 并简述“底半部”处理的实现机制(一种即可) 。 (5 分)
参考答案: a、只要简述出中断分成两个部分,一个用来响应中断,另一个用来处理中断响应后对 应 的操作。两者最大的不同是,底半部运行时中断是打开的。(2 分) b、原因:响应中断 linux 内核就要完成一定数量的操作。并且中断处理例程又要尽快 结束 ,不能使中断阻塞的时间过长。两者彼此冲突,因此分成两个部分。只要简述出,避免 中 断处理时间过长即可(1 分) c、采用 tasklet,或者是工作队列。(2 分)

5、简述嵌入式 Linux 系统的初始化过程(5 分)
参考答案: 嵌入式 Linux 系统开机首先运行 BootLoader,然后由 BootLoader 引导启动内核, 由内核 检查和初始化硬件设备,载入设备的驱动程序模块,安装 root 文件系统,然后内核将 启动一个名为 init 的进程(2 分) 。在 init 运行完成并启动其它必要的后续进程后,系 统开始运行,引导过程结束。init 进程启动时需要读取 inittab 配置文件,该文件确定 init 在系统启动和关机时的工作特性。 (3 分)

四、设计题(本大题共 2 个小题,每题 6 分,共 12 分)
1、请用 Shell 编程,提示用户输入一文件名,然后判断这一文件是不是一个目录。 如果是,将该目录设置为当前目录。
参考答案: #!/bin/sh FILENAME= echo “Input file name: ” read FILENAME if [ -d "$FILENAME" ] then cd $FILENAME fi

2、在定制嵌入式 Linux 系统的根文件系统时,通常应该包括哪个内容?(4 分) 应按照什么样原则确定这些内容的加入顺序?(2 分)
参考答案: 通常包括:init、libc 库、驱动模块、必需的应用程序和系统配置脚本。 (4 分) 应首先构建一个尽量小的系统,在确认能够正确运行后,再逐步加入


更多相关文档:

11级测控《嵌入式linux开发基础》复习大纲

11级测控《嵌入式linux开发基础》复习大纲_英语_高中教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 11级测控《嵌入式linux开发基础》复习大纲_英语_高中教育_...

《嵌入式linux开发基础》复习题

《嵌入式 linux 开发基础》复习大纲 一、 期末考试题型 1、 2、 3、 4、 5、 选择题,每个 2 分,共计 40 分 判断题或者填空题,每个 1 分,共计 10 分...

2014嵌入式Linux试题库

嵌入式 Linux 系统基础试题库 备注:题号为红色的题目是不考的,了解类的。复习...11. 安装 Linux 系统对硬盘分区时,必须有两种分区类型: 文件系统 分区 和 ...

嵌入式Linux应用开发复习资料

嵌入式Linux应用开发复习资料_工学_高等教育_教育...嵌入式系统是以应用为中心,以计算机技术为基础,采用...2.11 兼容 两个 USB HOST,一个 USB DEVICE(VER...

嵌入式Linux开发基础知识1

第1章 嵌入式 Linux 开发基础知识 目前 Linux 已被广泛应用于信息家电、数据...SD 主接口版本 1.0 和多媒体卡协议版本 2.11 兼容。 两个 USB HOST,一个...

嵌入式Linux系统开发教程复习

嵌入式Linux系统开发教程复习_工学_高等教育_教育...系统模式(System,sys):用于运行特权级的操作系统任务...第十一章 一、填空题。 1、嵌入式 GUI 主要由:...

嵌入式Linux(带课后题)期末复习资料

网络管理 第四章 嵌入式 linux 开发环境的搭建 1....原始模式 11 标准 I/O 提供流缓冲的目的是尽可能...(2)ARM9采用5级指令流水线,能够运行在比 ARM7更...

嵌入式linux开发基础试卷-应用物理A

嵌入式linux开发基础试卷B... 暂无评价 2页 免费 嵌入式linux题库及答案 5页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处...

嵌入式Linux开发常用的实用命令

嵌入式Linux开发常用的实用命令_语文_初中教育_教育专区。嵌入式Linux开发常用的...11 cps = 100 2 flags = IPv4 }可以在这里配置共 享的目录/tftpboot 等...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com