嵌入式Linux助理工程师认证考试试题doc 15页.docx
《嵌入式Linux助理工程师认证考试试题doc 15页.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux助理工程师认证考试试题doc 15页.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式Linux助理工程师认证考试试题doc15页
嵌入式Linux助理工程师认证考试试题(doc15页)
(密封线内勿答题)学校专业姓名身份证号(密封线内勿答题)
嵌入式Linux助理工程师认证考试
(考试时间150分钟)
题号
一
二
三
四
总分
分数
一、选择题(本大题共50个小题,每小题1分,共50分)
得分
评阅人
1、如果忘记了ls命令的用法,可以采用()命令获得帮助。
A、?
lsB、helplsC、manlsD、getls
2、为了统计文件系统中未用的磁盘空间,我们可以使用命令:
()
A、duB、dfC、mountD、ln
3、要给文件file1加上其他人可执行属性的命令是:
()
A、chmoda+xB、chowna+xC、chmodo+xD、chowno+x
4、怎样新建一个新文件:
()
A、touchhello.cB、mkhello.cC、rmhello.cD、newhello.c
5、在bash命令中,当用()参数时,表示bash是交互的。
A、-cB、-iC、-sD、-d
6、重定向的符号“>"表示:
()
A、输出追加B、输入追加C、输出重定向,原来的文件会被改写D、管道
7、^D的确切含义是:
()
A、停止一个正在运行的程序B、终止shell
C、强制退出程序D、不再有数据输入
8、Linux文件权限一共10位长度,分成四段,第二段表示的内容是:
()
A、文件类型B、文件所有者的权限
C、文件所有者所在组的权限D、其他用户的权限
9、对于所有用户都只能读的文件权限是:
()
A、777B、444C、644D、640
10、在vi编辑器的命令模式中,删除一行的命令是:
()
A、yyB、ddC、ppD、xx
11、在使用GCC编译器的过程中,如果只想生成目标文件而不进行连接,需要使用选项:
()
A、-cB、-oC、-SD、-E
12、假设当前目录下有文件Makefile,下面是其内容:
pr1:
prog.osubr.o
gcc–opr1prog.osubr.o
prog.o:
prog.cprog.h
gcc–c–lprog.oprog.c
subr.o:
subr.c
gcc–c–osubr.osubr.c
clean:
rm–fpr1*.o
现在执行命令makeclean,实际执行的命令是:
()
A、rm–fpr1*.o
B、gcc–c–lprog.oprog.c
C、gcc–c–osubr.osubr.c
D、都执行
13、Linux将存储设备和输入/输出设备均看做文件来操作,下列选项()不是以文件的形式出现。
A、目录B、软链接
C、i节点表D、网络适配器
14、有如下的命令:
$ddif=f1of=f2。
其中if=f1表示:
()
A、以f1作为源文件,代替标准输入
B、以f1作为目标文件,代替标准输出
C、当条件满足f1的时候,执行真正的拷贝
D、拷贝的过程中,不转化文件
15、文件之间可以建立两种链接关系:
软链接和硬链接,硬链接的特点是:
()
A、等同于文件复制操作
B、类似于文件复制,但新的链接文件并不占用文件磁盘存储空间
C、删除源文件,将使其他链接文件失效
D、可以对目录文件名建立硬链接
16、下面哪一个选项不是linux系统的进程类型:
()
A、交互进程B、批处理进程
C、守护进程D、就绪进程
17、如果BootLoader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分别独立存放,则比较合理的存储结构的分配顺序应当是:
()
A、文件系统、内核、启动参数、Bootloader
B、启动参数、Bootloader、内核、文件系统
C、Bootloader、内核、启动参数、文件系统
D、Bootloader、启动参数、内核、文件系统
18、BootLoader的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、framebufferB、GALC、IALD、GFX
21、在根文件系统的/dev目录下创建一个字符设备节点,下列选项正确的是:
()
A、mknodb2540/dev/demoB、mknodc2540/dev/demo
C、mknod/dev/demob2540D、mknod/dev/democ2540
22、LINUX支持网络文件系统NFS,下列哪个命令实现了将位于192.168.1.4机器上的/opt/sirnfs目录挂载到本机/mnt/sirnfs下()。
A、mount-tnfs192.168.1.4:
/opt/sirnfs/mnt/sirnfs
B、mount-tnfs/mnt/sirnfs192.168.1.4:
/opt/sirnfs
C、mountnfs–t192.168.1.4:
/opt/sirnfs/mnt/sirnfs
D、mountnfs–t/mnt/sirnfs192.168.1.4:
/opt/sirnfs
23、同CISC相比,下面哪一项不属于RISC处理器的特征()。
A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。
B、减少指令数和寻址方式,使控制部件简化,加快执行速度。
C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。
D、RISC处理器都采用哈佛结构
24、在下列ARM处理器的各种模式中,()模式有自己独立的R8-R14寄存器。
A、系统模式(System)B、终止模式(Abort)
C、中断模式(IRQ)D、快中断模式(FIQ)
25、按照ARM过程调用标准(APCS),栈指针使用()寄存器,
A、R0B、R13C、R14D、R15
26、在ARM体系结构中,()寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;()寄存器作为处理器的程序计数器指针。
A、R0,R14B、R13,R15
C、R14,R15D、R14,R0
27、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?
()
A、直接修改CPU状态寄存器(CPSR)对应的模式
B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态
C、使用软件中断指令(SWI)
D、让处理器执行未定义指令
28、下面关于MMU和Linux描述错误的是:
()
A、MMU是内存管理单元MemoryManagementUnit的缩写
B、uClinux可以运行在有MMU的处理器上
C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可以通过软件实现地址映射。
D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间
29、在ARM系统结构中,MMU映射最大的单元空间是:
()
A、1MBB、128KBC、64KBD、4KB
30、在ARM系统结构中,MMU映射最小的单元空间是:
()
A、64KBB、16KBC、4KBD、1KB
31、在ARMLinux启动的过程中,开启MMU的时候,如何实现从实地址空间到虚拟地址空间的过度?
()
A、开启MMU,在内存中创建页表(映射内核到3G以上的虚拟地址空间)并继续运行。
B、开启MMU,在内存中创建页表(映射内核到3G以上的虚拟地址空间),跳转到虚拟地址空间继续运行。
C、在内存中创建页表(映射内核到3G以上的虚拟地址空间),开启MMU,跳转到虚拟地址空间继续运行。
D、在内存中创建页表(映射内核到3G以上的虚拟地址空间,同时把内核所在的前1MB空间到和其实地址相同的虚拟地址空间),开启MMU,跳转到虚拟地址空间继续运行。
32、在ARM体系中,MMU的第一级描述符有___项,每个描述符占用()字节。
A、4096,32B、1024,4
C、4096,4D、1024,32
33、在ARM体系中,下面MMU的一级描述符中,是节描述符的是:
()
A、0xA0000C0EB、0xA0000C0F
C、0x00000000D、0xC0000C01
34、在ARMLinux体系中,用来处理外设中断的异常模式是:
()
A、软件中断(SWI)B、未定义的指令异常
C、中断请求(IRQ)D、快速中断请求(FIQ)
35、在Linux系统中,驱动程序注册中断处理程序的函数是:
()
A、trap_initB、request_irq
C、enable_irqD、register_irq
36、在ARMLinux系统中,中断处理程序进入C代码以后,ARM的处于()工作模式。
A、超级用户(SVC)B、中断(IRQ)
C、快速中断(IRQ)D、和进入中断之前的状态有关系
37、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?
()
A、当中断处理程序结束以后,才可以清除
B、进入相应的中断处理程序,即可以清除
C、产生IRQ中断的时候,处理器自动清除
D、任何时候都可以清除
38、在Linux2.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、通过修改下面文件哪个文件,可以设定开机时候自动安装的文件系统()。
A、/etc/mtaB、/etc/fastboot
C、/etc/fstabD、/etc/inetd.conf
40、下面关于Shell的说法,不正确的是:
()
A、操作系统的外壳
B、用户与Linux内核之间的接口程序
C、一个命令语言解释器
D、一种和C类似的程序语言
41、init可执行文件通常存放在()目录中。
A、/etcB、/boot
C、/sbinD、/root
42、假设root用户执行“init0”命令,系统将会()。
A、暂停B、关机C、重新启动D、初始化
43、仅当前一个命令执行出错时才执行后一条命令,需要采取的操作是:
()
A、command1&&command2B、command1XORcommand2
C、command1||command2D、command1<44、以下关于init进程,描述不正确的是:
()
A、一个通用进程
B、可以产生新的进程
C、在某些程序退出的时候能重起它们
D、负责在系统启动的时候运行一系列程序和脚本文件
45、在Linux系统中,下列哪个命令可以用来加载模块()。
A、insmodB、load
C、initD、installmod
46、可加载模块一般位于系统的()目录下:
A、/lib/modules
B、/lib/modules/x.y.z(x.y.z是内核的版本号)
C、/usr/lib
D、/usr/local/lib
47、下列设备中()是字符设备。
A、hdcB、fd0C、hda1D、tty1
48、在Linux设备驱动程序中经常要做的工作就是在用户空间和内核空间之间进行数据的传递,这种能力是由内核函数提供的,下面哪个函数实现了从用户空间获取指定类型的数据:
()
A、get_userB、put_userC、copy_from_userD、copy_to_user
49、在下列ARM处理器的各种模式中,只有()模式不可以自由地改变处理器的工作模式。
A、用户模式(User)B、系统模式(System)
C、终止模式(Abort)D、中断模式(IRQ)
50、32位体系结构的ARM处理器有()种不同的处理器工作模式,和()个主要用来标识CPU的工作状态和程序的运行状态的状态寄存器。
A、7、7B、7、6
C、6、6D、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分)
答案:
一选择题
CBCAB
CABBB
AACAC
DDDCA
DADDB
CCCAD
DCACB
AABCD
CBCAA
BDAAB
二、判断题(本大题共10个小题,每题1分,共10分)
XVXXVVVXXX
三、问答题(本大题共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(阻塞操作):
charbuf;
intfd,res;
fd=open("/dev/ttyS1",O_RDWR);(1分)
res=read(fd,&buf,1);(1分)
if(res==1)
printf("%c\n",buf);
close(fd);
代码2(非阻塞操作):
charbuf;
intfd;
fd=open("/dev/ttyS1",O_RDWR|O_NONBLOCK);(1分)
while(read(fd,&buf,1)!
=1);(1分)
printf("%c\n",buf);
close(fd);
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“Inputfilename:
”
readFILENAME
if[-d"$FILENAME"]
then
cd$FILENAME
fi
2、在定制嵌入式Linux系统的根文件系统时,通常应该包括哪个内容?
(4分)应按照什么样原则确定这些内容的加入顺序?
(2分)
参考答案:
通常包括:
init、libc库、驱动模块、必需的应用程序和系统配置脚本。
(4分)
应首先构建一个尽量小的系统,在确认能够正确运行后,再逐步加入其他内容。
(2分)