嵌入式Linux考试复习.doc

上传人:飞****2 文档编号:78769978 上传时间:2023-03-19 格式:DOC 页数:25 大小:187.50KB
返回 下载 相关 举报
嵌入式Linux考试复习.doc_第1页
第1页 / 共25页
嵌入式Linux考试复习.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《嵌入式Linux考试复习.doc》由会员分享,可在线阅读,更多相关《嵌入式Linux考试复习.doc(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1、两次过程考核(20分左右)2、嵌入式系统的定义嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统,用于实现对其他设备的控制、监视或管理等功能3、嵌入式系统与桌面通用系统的区别(列出来两个)(1)嵌入式系统中运行的任务是专用而确定的,而桌面通用系统需要支持大量的、需求多样的应用程序(2) 嵌入式系统往往对实时性提出较高的要求。(3)嵌入式系统中使用的操作系统一般是实时操作系统(4) 嵌入式系统运行需要高可靠性保障,比桌面系统的故障容忍能力弱很多(5) 嵌入式系统大都有功耗约束(6) 嵌入式系统比桌面通用系统可用资

2、源少得多,其开发需要专用工具和特殊方法(7) 嵌入式系统开发是一项综合的计算机应用技术4、(填空)文件的类型 ;ls l 命令执行后后显示的文件各个属性的意思 文件的类型:普通文件,目录文件,链接文件,设备文件,管道,堆栈,套接字各个属性:(1)第一个字符显示文件的类型(2)第一个字符之后有3个三位字符组: 第一个三位字符组表示对于文件拥有者(u)对该文件的权限; 第二个三位字符组表示文件用户组(g)对该文件的权限; 第三个三位字符组表示系统其他用户(o)对该文件的权限; 若该用户组对此没有权限,一般显示“-”字符 5、(选择题)文件系统ext2和ext3 swap文件系统 vfat文件系统

3、NFS文件系统 ISO9660文件系统 内存文件系统:proc、sys、ramdisk嵌入式文件系统:cramfs、jffs、yaffs等6、linux 目录结构下面放什么(了解常用)/bin 该目录中存放Linux的常用命令/boot 该目录下存放的都是系统启动时要用到的程序/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别/usr 用户应用程序和文件都存放在该目录下/etc该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统等。/home 用来存放该用户的主目录。/l

4、ib 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库/mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下7、文件比较命令(必考)diff:比较两个不同的文件或不同目录下的两个同名文件功能,并生成补丁文件。格式:diff选项 文件1 文件2diff比较文件1和文件2的不同之处,并按照选项所指定的格式加以输出。diff的格式分为命令格式和上下文格式,其中上下文格式又包括了旧版上下文格式和新版上下文格式,命令格式分为标准命令格式、简单命令格式及混合命令格式,它们之间的区别会在使用实例中进行详细地讲解。当选项缺省时,diff默认使用混合命令格式。 8

5、、网络相关命令ifconfig:查看和配置网络接口的参数ifconfig 选项 网络接口ftp:利用ftp协议上传和下载文件telnet:利用telnet协议浏览信息telent 选项 IP地址/域名9、GCC编译器能编译哪些程序?编译的四个过程?常见编译选项?可以编译如C、C+、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言四个过程:预处理,编译,汇编,链接常见编译选项:10、知道动态库和静态库扩展名(必考)动态库: .so静态库: .a11、 GDB调试:list加行号,查看当前信息,实验的相关操作(必考)12、makefile: 过程考核题目

6、;使用变量(那个例子必考)Makefile格式:target: dependency_filescommand /* 该行必须以tab键开头*/如:hello.o: hello.c hello.h gcc c hello.c o hello.o自定义变量:用来代替一个文本字符串 变量定义的两种方式递归展开方式VAR=var简单方式 VAR:=var变量使用$(VAR)自动变量:$:目标文件,$:所有的依赖文件,$:第一个依赖文件. 13、交叉编译时宿主机与目标机间的连接方式 (1)串行通讯接口(2)以太网接口(3)USB接口(4)JTAG等接口14、主机环境变量 配置 最后一个实验/etc/p

7、rofile是系统启动过程执行的一个脚本,对所有用户都生效。/.bash_profile是用户的脚本,在用户登录时生效。/.bashrc也是用户的脚本,在/.bash_profile中调用生效。把环境变量配置的命令添加到其中一个文件中,之后再注销重新登录即可。PATH=$PATH :/usr/share/jdk1.5.0_05jdkexport PATH注解:a. 将 /usr/share/jdk1.5.0_05jdk 改为你的应用程序安装目录b. linux下用冒号“:”来分隔路径c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值,在设置环境变

8、量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。d. export是把个变量导出为全局变量。15、串口命令台(参考实验) 串行通讯接口很适合作为控制台,在各种操作系统上一般都有现成的控制台程序可以使用。Linux系统通常使用minicom串口通讯工具。Minicom的配置界面是菜单方式。在Shell下执行“minicom s”命令,出现配置菜单。15、bootloader的作用?常见的有哪些? 作用:初始化硬件设备、建立内存空间的映射图,下载操作系统映像文件到SDRAM中,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境常见:u-b

9、oot,vivi,blob16、系统调用和API系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。在实际使用中程序员调用的通常是用户编程接口API 17、文件描述符 文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。对于Linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数一个进程启动时,都会打开3个文件:0:标准输入1:标准输出2.标准出错18、IO

10、处理模型的概念(1)阻塞I/O模型(2)非阻塞模型(3)I/O多路转接模型(4)信号驱动I/O模型(5)异步I/O模型19、进程和程序区别和联系 程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。20、进程控制块包括哪些信息? 进程控制块包含了进程的描述信息、控制信息以及资源信息(1)进程标识符(2)处理机的信息(3)进程调度信息(4)进程控制信息状态转换图:21、linux中的进程包含哪些段?Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆

11、栈段”。22、fork()函数的返回值及每个参数的含义实际上是在父进程中执行fork()函数时,父进程会复制出一个子进程,而且父子进程的代码从fork()函数的返回开始分别在两个地址空间中同时运行。可以通过返回值来判定该进程是父进程还是子进程。23、exec作用 exec函数族就提供了一个在进程中启动另一个程序执行的方法。(它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。)24、进程间通信:信号量; 通信的种类; 深入了解信号的来源、分类、生命周期、处理方式通信的种类:(1)管道

12、(Pipe)及有名管道(named pipe)(2)信号(Signal)(3)消息队列(Messge Queue)(4)共享内存(Shared memory)(5)信号量(Semaphore)(6)套接字(Socket)信号来源:硬件的原因(比如我们按下了键盘);软件的原因(比如我们使用系统函数或者是命令发出信号).信号的种类:SIGTRMIN:不可靠信号SIGTRMAX:可靠信号信号生命周期:一个完整的信号生命周期可以分为3个重要阶段,这3个阶段由4个重要事件来刻画的:信号产生、信号在进程中注册、信号在进程中注销、执行信号处理函数 信号处理方式:用户进程对信号的响应可以有3种方式。 忽略信号

13、,即对信号不做任何处理,但是有两个信号不能忽略,即SIGKILL及SIGSTOP。 捕捉信号,定义信号处理函数,当信号发生时,执行相应的自定义处理函数。执行缺省操作,Linux对每种信号都规定了默认操作。 25、线程的作用?线程的作用:(1)进一步减少处理机的空转时间(2)支持多处理器(3)减少上下文切换开销26、信号量同步或者互斥锁同步与互斥参照“生产者和消费者”实验27、socket编程: 概念,表示方法,类型,两个数据结构和转化概念:在Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。它是一种常用的进程之间通信机制,通过它不仅

14、能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。表示方法:每一个socket都用一个半相关描述协议、本地地址、本地端口来表示类型:(1)流式socket(使用TCP协议)(2)数据报socket(使用UDP协议)(3)原始socket(使用IP或ICMP进行直接访问)两个数据结构:struct sockaddr unsigned short sa_family; /*地址族*/ char sa_data14; /*14字节的协议地址,包含该socket的IP地址和端口号。*/;struct sockaddr_in short int sa_family; /*

15、地址族*/ unsigned short int sin_port; /*端口号*/ struct in_addr sin_addr; /*IP地址*/ unsigned char sin_zero8; /*填充0 以保持与struct sockaddr同样大小*/;转化:数据存储优先顺序的转化地址格式转化名字地址转化 28、accept函数(必考),阻塞和非阻塞通信accept函数等待并接受客户请求:函数原型:int accept(int sockfd, struct sockaddr* addr, socklen_t* len)返回:非负描述字成功, -1失败参数sockfd就是上面解释中

16、的监听套接字,这个套接字用来监听一个端口,当有一个客户与服务器连接时,它使用这个一个端口号。 参数addr ,是一个结果参数,它用来接受一个返回值,这返回值指定客户端的地址,如果对客户的地址不感兴趣,那么可以把这个值设置为NULL。 参数len ,也是结果的参数,用来接受上述addr的结构的大小的,它指明addr结构所占有的字节个数。同样的,它也可以被设置为NULL。 如果accept成功返回,则服务器与客户已经正确建立连接了,此时服务器通过accept返回的套接字来完成与客户的通信。阻塞式通信是指, 当试图对文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态,

17、 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待29、设备分类,设备驱动程序与外界的接口(了解实现)Linux系统的设备分为三类:字符设备、块设备和网络设备Linux设备驱动程序与外界的接口可以分为如下3个部分:(1)驱动程序与操作系统内核的接口:这是通过数据结构file_operations来完成的。(2)驱动程序与系统引导的接口:这部分利用驱动程序对设备进行初始化(3)驱动程序与设备的接口:这部分描述了驱动程序如何与设备进行交互,这与具体设备密切相关。30、file-operaions(重点)struct file_oper

18、ations loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *filp, char *buff, size_t count, loff_t *offp); ssize_t (*write) (struct file *filp, const char *buff, size_t count, loff_t *offp); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file

19、*, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (st

20、ruct file *, struct dentry *); int (*fasync) (int, struct file *, int); int (*check_media_change) (kdev_t dev); int (*revalidate) (kdev_t dev); int (*lock) (struct file *, int, struct file_lock *);31、为什么是释放设备而不是关闭? 因为可能有其他应用程序还使用该设备。当一个进程释放设备时,其他进程还能继续使用该设备,而当一个进程关闭设备时,其他进程必须重新打开此设备才能使用它。32、(程序填空题)底

21、层IO操作的例子/* copy_file.c */#include #include #include #include #include #include #define BUFFER_SIZE 1024 /* 每次读写缓存大小,影响运行效率*/#define SRC_FILE_NAME src_file /* 源文件名*/#define DEST_FILE_NAME dest_file /* 目标文件名文件名*/#define OFFSET 10240 /* 复制的数据大小*/int main()int src_file, dest_file;unsigned char buffBUFFE

22、R_SIZE;int real_read_len;/* 以只读方式打开源文件*/src_file = open(SRC_FILE_NAME, O_RDONLY);/* 以只写方式打开目标文件,若文件不存在则创建该文件,访问权限值为644 */dest_file = open(DEST_FILE_NAME,O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);if (src_file 0 | dest_file 0)write(dest_file, buff, real_read_len);close(dest_file);close(src_fil

23、e);return 0;嵌入式系统PPT归纳总结Linux常用操作命令su:用于将普通用户身份转变为超级用户su 选项 使用者ps:显示当前系统中由该用户运行的进程列表ps 选项top:动态显示系统中运行的程序(一般为每隔5s)topkill:输出特定的信号给指定PID(进程号)的进程kill 选项 进程号(PID)uname显示系统的信息(可加选项-a)uname 选项setup:系统图形化界面配置setupshutdown:关闭或重启Linux系统shutdown 选项 时间clear:清除屏幕上的信息clearfree:查看当前系统内存的使用情况free 选项mount:挂载文件系统mo

24、unt 选项 类型 设备文件名 挂载点目录cd:改变当前工作目录cd 路径ls:列出目录和文件的信息 ls 选项 文件 mkdir :创建一个目录mkdir 选项 路径 cat :连接并显示指定的一个和多个文件的有关信息。cat选项文件1文件2其中的文件1、文件2为要显示的多个文件。cp:将给出的文件或目录复制到另一文件或目录中。 cp:cp 选项 源文件或目录 目标文件或目录 mv:为文件或目录改名或将文件由一个目录移入另一个目录中。mv 选项 源文件或目录 目标文件或目录 rm:删除一个目录中的一个或多个文件或目录。rm 选项 文件或目录 34、静态库与动态库的比较动态库只有在使用它的程序

25、执行时才被链接使用,而不是将需要的部分直接编译入可执行文件中,并且一个动态库可以被多个程序使用故可称为共享库,而静态库将会整合到程序中,因此在程序执行时不用加载静态库35、嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:(1). 引导加载程序(2). Linux 内核。(3). 文件系统。(4). 用户应用程序。4、底层文件IO常用函数:36、进程是Linux系统的基本调度和管理资源的单位,它是通过进程控制块来描述的。37、进程的执行模式:用户模式和内核模式。用户模式:运行的是用户程序/应用程序或者内核之外的系统程序;内核模式:运行操作系统核心程序。用户程序执行过程中出现系统调用或

26、者发生中断事件,用户模式切换成内核模式。38、socket编程的基本函数有socket()、bind()、listen()、accept()、send()、sendto()、recv()以及recvfrom()等,其中根据客户端还是服务端,或者根据使用TCP协议还是UDP协议,这些函数的调用流程都有所区别。39、网络通信时两种套接字:监听套接字:在调用listen函数之后,一个套接字会从主动连接的套接字变身为一个监听套接字连接套接字:accept返回是一个连接套接字,它代表着一个网络已经存在的点对点连接。40、模块在调用insmod命令时被加载,此时的入口点是init_module()函数,通常在该函数中完成设备的注册。同样,模块在调用rmmod命令时被卸载,此时的入口点是cleanup_module()函数,在该函数中完成设备的卸载。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com