1.linux常见的文件系统有哪些,VFS有何作用?p37常见的文件系统:ex2t,ex3t,ext,VFATVFS是一个间接层,用于处理涉及文件的系统调用,并调用物理文件系统代码中的必要功能来进行I/O操作。2.“/boot”目录、“/etc”目录有何作用?p40“/boot”:这个目录下存放操作系统启动时所要用到的程序,如启动grub就会用到其下的/boot/grub子目录。“/etc”:该目录下存放了系统管理时要用到的各种配置文件和子目录。系统在启动过程中需要读取其参数进行相应的配置。3.如何把“/root/wen”改名为“/root/jluzh”?使用命令:mvwenjluzh4.若有一个文件的属性为“-rwxr-xrw-”,说明各项含义。r代表读权限,w代表写权限,x代表执行权限,3个一组,第一段rwx表示文件拥有者拥有rwx三个权限,第二段r-x表示文件所有组拥有rx两个权限,第三段rw-表示系统其他用户拥有rw两个权限。5.执行linux命令“fdisk-l”有何作用,结合实际操作解释其操作结果。P57可以查看磁盘分区的情况,显示结果中首先显示了该磁盘的容量、磁头数、每磁道的扇区、柱面数以及磁盘的标识,接下来显示了分区的情况,这里有三个分区,boot分区、swap分区和“/”分区。6.打包和压缩文件有何区别,常用的打包和压缩命令有哪些?p64区别:打包是把几个文件装在一个文件包中,而压缩则是把文件按照一定的算法将文件压缩为一个存储容量更小的文件。tar命令:对文件和目录进行打包或解压。gzip命令:压缩或解压缩文件。7.简述在shell编程中引号有什么作用?p70(1)双引号:由双引号括起来的字符,除了$、倒引号和反斜线仍保留其特殊功能外,其余字符均作为普通字符对待。(2)单引号:由单引号括起来的字符都作为普通字符出现。(3)倒引号:倒引号括起来的字符串被shell解释为命令行,在执行时,Shell会执行该命令行,并以它的标准输出结果取代整个倒引号部分。8.简述Linux启动过程分为哪几个阶段?p79BIOS引导阶段、BootLoader引导阶段、Kernel加载阶段、init初始化阶段。9.Linux通常由几个运行级别?其对应的含义是什么?p83有7个运行级别:0停止系统1单用户模式2基本的多用户模式3多用户模式4.系统未使用5使用GUI的多用户模式6重新启动系统第二章:1.C语言有何特点?为什么适合适合嵌入式系统开发?P86(1)是中级语言;(2)是结构化语言;(3)功能齐全;(4)可移植性好;由于上述原因,再加上Linux本身是使用C语言开发的,在Linux上用C语言开发效率很高,因此C语言尤其适合在嵌入式领域开发。2.简述开发流程,分别用啥工具软件?流程:编写源代码、编译程序、运行程序、调试程序、交叉编译、编写Makefile工具:编辑器Vi、Vim,编译器GCC,调试器GDB,项目管理Make,版本管理CVS3.Vim编辑器有几种模式,主要实现什么功能?命令模式:移动光标、复制文本、删除文本、找出行数等命令的操作都在此模式下进行;编辑模式:主要是输入文本;底行模式:一般用来执行查找特定的字符串、保存及退出等任务;4.举例说明编译器编译过程可细分为几个阶段,每阶段产生什么类型文件。4个阶段:预处理(生产.i文件)、编译(生成“.s”文件)、汇编(生产目标文件)、链接(可执行文件)5.GDB调试器有何功能?什么是远程调试?功能:1.启动程序,按照用户自定义的要求运行程序。2.可让被调试的程序在用户所指定的调试的断点处停住(断点可以是条件表达式)3.当程序停住时,可以检查此时程序中所发生的事。4.动态改变程序的执行环境。远程调试:用于调试目标机和宿主机中程序运行环境不一样的嵌入式程序。6.Make工程管理器有咩作用?Make工具通过一个称为Makefile的文件来完成并自动维护编译工作。7.Makefile文件中有啥变量,有啥作用?自定义变量:预定义变量:包含了常见的编译器、汇编器的名称和编译选项。自动变量:代表编译语句出现目标文件和依赖文件等,并且具有本地含义,即下一句中出现的相同变量代表的是下一语句的目标文件和依赖文件。环境变量:8.在Eclipse环境下开发C语言程序的流程:创建项目、编译运行、断点调试、9.WhatisCVS,其基本工作思路是什么?建立连接、项目提交、提交修改和版本比对10.基本I/O操作函数有哪些,分别实现什么功能?Open函数:成功则返回文件描述符,出错返回-1.Read和write函数:如果发生错误,返回值为-1,同时设置errno变量为错误代码。Close函数:若文件顺利关闭则返回0,发生错误则返回-1,并置errno。11.什么是程序、进程和线程,有咩区别啊?p201p167程序:是静态的,它是一些保存在磁盘上的指令的有序集合,没有执行的概念。进程:是一个程序的一次执行的过程,是动态的概念,是程序执行和资源管理的最小单位。各个进程是在自己独有的地址空间内执行,不但寄存器和堆栈是独有的,动态数据堆、静态数据区和程序代码也相互独立。线程:线程是处理及调度的基本单位。寄存器和堆栈是独有的,但由于两线程从属于同一进程,他们共享一个地址空间,而动态堆、静态数据区及程序代码也为各线程共享。12.进程间的通信和同步有哪些方式?管道及有名管道、信号、报文队列、共享内存、信号量、套接口13.守护进程的创建过程:*创建子进程,父进程推出→在子进程中创建新会话→改变当前目录为根目录→重设文件权限掩码→关闭文件描述符。第三章1.简述嵌入式软件结构,各部分有何作用?(1)应用软件层:用户应用程序主要通过调用系统的API函数对系统进行操作,完成用户应用功能开发。(2)中间层:为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和继承复杂的应用软件。(3)实时操作系统RTOS(4)设备驱动层:使用任何外部设备都需要有相应驱动程序的支持,它为上层软件提供了设备的操作接口。2.简述基于Linux的嵌入式软件组成,各部分有何作用?(1)BootLoader:初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。(2)内核:嵌入式系统通常有许多设备用于与用户交互,内核通过所有这些设备各自的设备驱动程序来控制他们。(3)应用程序:提供图形界面3.嵌入式开发中为何要用交叉编译开发方法,基于开发板的二次开发有何优势?优势:在软件设计过程中不需过多地考虑硬件、系统开发周期短4.简述基于Linux的嵌入式软件开发流程。(1).建立开发环境。(2).配置开发主机。(3).建立引导装载程序BOOTLOADER。(4).移植Linux操作系统(5).建立根文件系统(6).建立应用程序的文件系统(7).开发应用程序(8).烧写内核、根文件系统、应用程序。(9).发布产品。5.Samba服务有何作用,常用的BootLoader有哪些?Samba服务作用:是局域网上共享文件和打印机的一种协议,能够使Linux和视窗系统之间进行共享服务,使视窗系统能够采用“网上邻居”进行访问Linux主机。常用的BootLoader:(1)ARMBoot(2)PPCBoot(3)U-Boot(4)RedBoot(5)Blob(6)ViVi6.什么是NFS服务,嵌入式软件开发中为什么要用到NFS服务?什么是NFS服务:NFS是网络文件系统的意思,NFS可以使不同的计算机之间通过网络进行文件共享的一种网络协议,一般用于Linux网络系统中。实际上,一台NFS服务器就如同一台文件服务器,只要将文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以像使用本地文件系统中的文件一样使用那些远程文件系统中的文件为什么:它更加适用于Linux和Linux之间共享文件7.Minicom有何作用,它与Windows下的超级终端有何区别?8.BootLoader有何作用,常用的BootLoader有哪些?初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。9.Linux内核分为几个部分,什么是内核空间和用户空间,这种划分有何优缺点?体系结构相关部分和体系结构无关部分。Linux内核采用虚拟内存技术,每个进程的虚拟内存空间为4GB。其中0-3G属于用户空间,称为用户段,3G-4G属于内核空间,称为内核段。有何优缺点:不知道10.简述Linux的移植过程以及各过程中用到的工具和命令。找不到11.常见的嵌入式文件系统有哪些?基于Flash的文件系统、基于RAM的文件系统、网络文件系统NFS12.设备驱动程序有何作用,Linux设备驱动程序分为哪些?1.对设备进行初始化。2.启动或停止设备的运行。3.把数据从内核传送到硬件和从硬件读取数据。4.读取应用程序传送给设备文件的数据和回送应用程序请求的数据。检测和处理设备出现的错误等。可区分为三种基本设备:字符设备、块设备、网络设备。13.简述Linux设备驱动的加载方式。静态加载就是把驱动程序直接编译到内核里,在执行makemenuconfig命令进行内核配置裁剪时,在窗口中可以选择是否编译入内核,还是放入相应内核版本目录中,还是不选。驱动编译进内核后,系统启动后可以直接调用。动态加载利用了LINUX的module特性,可以在系统启动后用insmod命令把驱动程序(.o文件)添加上去,在不需要的时候用rmmod命令来卸载。14.根文件系统不能够通过NFS挂载到开发板,试描述可能出现该错误的原因是什么?NFS服务器没有开启啊内核配置不正确啊没有设置开发板使用NFS挂载跟文件系统啊15.内核驱动模块的编程和普通程序的编程有哪些区别?1.内核驱动模块包含的头文件是内核程序相关的头文件,而普通程序则包含的是glibc的头文件2.模块程序没有main函数,而是通过init_module函数在加载后初始化。3.模块程序内可直接掉哦那个内核函数,而普通程序则是只能通过系统调用使用内核函数。4.普通用户程序可运行多次,而内核函数通常只能加载1次16.U-Boot的环境变量bootargs和bootcmd有什么作用?Bootcmd:是自动启动时默认执行的一些命令,因此可以在当前环境中定义各种不同配置。另一个不知道,反正很重要第四章1.什么是GUI?嵌入式GUI有什么特点?GUI是指图形用户接口。特点:体积小;运行时耗用系统资源小;上层接口与硬件无关,高度可移植;高可靠性;在某些应用场合应具备实时性。2.比较说明常用的嵌入式GUI有哪些,各有何特点?1.XWindow:采用标准的Server/Clinent体系结构,具有可扩展性好、可移植性好等优点。但该系统庞大、累赘、效率低,源代码尚不开放,从而很难进行本地化开发。2.OpenGL:是一个功能强大的底层图形库,提供调用方便的图形程序接口。的移植性好,可以在不同的平台之间进行移植。常用于在高端的绘图领域。3.MicroWindows:提供了相对完善的图形功能和一些高级的特性,采用了基于消息机制的Server/Client传输机制。4.MiniGUI:由国内自由软件开发人员设计开发的,目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。5.QT/Embedded:面向嵌入式系统的Qt版本3.QT作为嵌入式GUI有何优点?(1)优良的跨平台特性(2)面向对象(3)丰富的API(4)支持2D/3D图形渲染,支持OpenGL。(5)大量的开发文档(6)XML支持(7)Webkit引擎的集成,可以实现本地界面与Web内容的无缝集成。4.什么是信号和槽机制?与回调函数比较有何优缺点?信号和槽是一种高级接口,应用于对象之间的通信,它就是QT的核心特性。信号和槽是QT自定义的一种通信机制,独立于标准的C/C++语言。5.QT中常用的控件有哪些?这题…算了吧PPT105页6.简述Eclipse平台下QT的开发过程。