当前位置:
文档之家› 《嵌入式Linux操作系统》练习题 精编
《嵌入式Linux操作系统》练习题 精编
35. Linux 文件锁有哪两种: 建议性锁和强制性锁 。要求每个上锁文件的进程都 要检查是否有锁存在,并且尊重已有的锁,在一般情况下,内核和系统都不使用 该类锁。__________是由内核执行的锁,当一个文件被上锁进行写入操作的时候, 内核将阻止其他任何文件对其进行读写操作。采用强制性锁对性能的影响很大, 每次读写操作都必须检查是否有锁存在。
36. Make 跟 makefile 的关系:Make 工程管理器也就是个“自动编译管理器”,这 里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的 工作量,同时,它通过读入 Makefile 文件的内容来执行大量的编译工作; makefile 是 make 读入的惟一配置文件; makefile 的规则(make 规则)是 make 进行处理的依据,它 包括了目标文件列表、依赖文件列表及其之间的命令语句
拷贝 stage2 到 RAM 中,在这里要确定两点:①stage2 的可执行映像在固 态存储设备的存放起始地址和终止地址;②RAM 空间的起始地址。
设置堆栈指针 sp,这是为执行 stage2 的 C 语言代码做好准备。 跳转到 stage2 入口点。 Bootloader 启动流程 – stage2 用汇编语言跳转到 main 入口函数 由于 stage2 的代码通常用 C 语言来实现,目的是实现更复杂的功能和取得更好 的代码可读性和可移植性。但是与普通 C 语言应用程序不同的是,在编译和链 接 Bootloader 这样的程序时,不能使用 glibc 库中的任何支持函数。
设置内核的启动参数; 调用内核。 41. Linux 启动时都需要有 init 目录下的相关文件,在 Linux 挂载分区时 Linux 一定会找/etc/fstab 挂载文件 42. API 和系统调用 所谓___________是指操作系统提供给用户程序调用的一组“特殊”接口,
6 / 26
用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如 用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管 理等。 用户编程接口——___________ 43. Linux 内 核 的 5 个 子 系 统 _______ 、 _______ 、 ________ 、 _________ 和 _____________。 44. 管道(Pipe)及有名管道(named pipe):________可用于具有亲缘关系进程 间的通信,__________除具有管道所具有的功能外,它还允许___________进程 间的通信。管道只存在于内核的内存空间中。有名管道存在于文件系统中。 45. 名词解释 交叉编译:嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个 平台上生成可以在另一个平台上执行的代码。 进程:进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。进程
20. 如何实现挂载优盘(设备为/etc/sdb)的操作,挂载的目录为_______, 假设
在 挂 载 目 录 下 挂 载 优 盘 的 目 录 为 usb 目 录 , 执 行 的 挂 载 命 令 是
_________________________________。
21. 强制删除/home/chenjing 目录下的 hello.c 文件,删除时无交互,执行命令
初始化本阶段要使用到的硬件设备,包括初始化串口、初始化计时器等。 在初始化这些设备之前、可以输出一些打印信息。
检测系统的内存映射,所谓内存映射就是指在整个 4GB 物理地址空间中指 出哪些地址范围被分配用来寻址系统的内存。
加载内核映像和根文件系统映像,这里包括规划内存占用的布局和从 Flash 上拷贝数据。
文件、符号文件。分别对应的符号为普通文件-,目录文件 d ,字符型文件 c,
链接文件 l,块特殊文件 b
16. 对于 Linux 而言,所有对设备和文件的操作都使用文件描述符来进行的。
17. 文件描述符是一个非负的整数,它是一个索引值,指向内核中每个进程打开文
件的记录表。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个
1.
Linux 与嵌入式开发 复习材料
万睦莹和书架
1.固态存储设备的典型空间分配结构图:由_________、_________、_________和 _________组成。
2. 在 shell 编程时,使用方括号表示测试条件的规则是:方括号两边必须有 _________。
3. 字符设备文件类型的标志是_______。 4. 利用 gdb 进行调试时,可通过_________或 ________ 命令进行单步执行。 5. gcc 的 编 译 可 分 为 ___________ 、 __________ 、 ____________ 和
1 / 26
13. fork()函数用于从已存在的进程中创建一个新进程,新进程称为________,而
原进程称为_______。
14. 被称为嵌入式 Linux 系统中的“瑞士军刀”的构造根文件系统最常用软件工具
包是_______。
15. linux 下主要文件类型有:普通文件、目录文件、设备文件、 链接文件、管道
3 / 26
不带缓存:open()函数(打开或创建文件)、close()函数(关闭一个被打开的文 件)、read()函数(用于将从指定的文件描述符中读出的数据放到缓 存区中,并返回实际读入的字节数)、write()函数(用于向打开的文 件写数据,写操作从文件的当前指针位置开始)、lseek()函数(用于 在指定的文件描述符中将文件指针定位到相应的位置)、lockf()函数 和 fcntl()函数(实现文件上锁)
基本的硬件初始化,包括屏蔽所有的中断、设置 CPU 的速度和时钟频率、 RAM 初始化、初始化外围设备、关闭 CPU 内部指令和数据 cache 等。
为加载 stage2 准备 RAM 空间,通常为了获得更快的执行速度,通常把 stage2
5 / 26
加载到 RAM 空间中来执行,因此必须为加载 Bootloader 的 stage2 准备好一段 可用的 RAM 空间。
4 / 26
37. Linux 下嵌入式应用程序的交叉编译及基于 NFS 的下载调试方法 • (1)建立工作目录 • (2)编写程序源代码,用 vi 编辑器 • (3)如需要,编写 makefile 文件 • (4)在宿主机(PC 机)上编译应用程序:如何编译? • (5)如果编写 makefile 文件,可执行 make 命令,如果没有,则需要执行 gcc 编译指令。 • (6)下载调试,下载调试的方法: • 在宿主机 PC 计算机上启动 NFS 服务,并设置好共享目录,进入超级终端建 立开发板与宿主机之间的通讯,在超级终端中输入命令: mount –t nfs –o nolock 192.168.0.56:/arm2410s /host, 在开发板(超 级终端界面)上进入 /host 目录便可以进入宿主机共享目录,可以运行程序 查看结果。
________________等四个阶段。 6. 进程可以划分为三种状态___________、 ____________、 ____________,并
随一定条件而相互转化。如果需要__________,就会进入____________,如果 不涉及到 I/O 操作,那么它就不停地在_________ 和 _____________ 这两个 状态之间来回切换。 7. Bootloader 的操作模式有:___________、 ________________。二者的区别? 8. 交叉编译 就是在一个平台上生成可以在另一个平台上执行的代码。进行交叉 编译的主机称为 __________,也就是普通的通用计算机;程序实际的运行环 境称为__________,也就是嵌入式系统环境。 9. __________就是在操作系统内核运行之前运行的一段程序,它类似于 PC 机中 的 BIOS 程序。 10. Linux 系统主要包含__________、_________和____________三种类型的进程。 11. 在用 vi 编辑好文件后,为了将文件内容存入 test.txt 文件中并退出 vi(开始 进入 vi 时并未输入文件名),应在末行模式下键入 _____________; 如果开 始进入 vi 时并输入了文件名,应在末行模式下键入____________保存退出 。 12. Linux 进程控制 API 函数中,函数______用于创建一个新的进程。
38. Bootloader 的作用 简单地说,Bootloader 就是在操作系统内核运行之前运行的一段程序,它类似 于 PC 机中的 BIOS 程序。通过这段程序,可以完成硬件设备的初始化,并建立内 存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载 系统内核做好准备。
39. Bootloader 的操作模式:__________ ,_______________. 40. Bootloader 启动流程 – stage1
___________。
22. 将/home/chenjing 目录下的 hello.c 文件移动到/home 目录下,执行命令
___________。
2 / 26
23. 执行命令__________________显示当前目录下文件的详细属性信息(包含隐藏 文件)。
24. 执行命令__________________显示当前目录下文件的详细属性信息(按照时间 进行排序)。
带缓存:打开文件:fopen()、fdopen()和 freopen()、关闭标准流文件的函数为 fclose()、读操作的函数为 fread()、fwrite()函数是用于对指定的文件 流进行写操作
34. 进程间通信的方式:(1)管道(Pipe)及有名管道(named pipe)(2)信号 (Signal)(3)消息队列(Mess) (5)信号量(Semaphore)(6)套接字(Socket)