欢迎来到天天文库
浏览记录
ID:12380369
大小:127.00 KB
页数:12页
时间:2018-07-16
《嵌入式操作系统应用开-unixlinux程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、简述Linux操作系统具有的特点。答:开放的源代码,良好的兼容性,完备的帮助手册页,优秀的网络支持支持多用户多任务多处理器支持多种文件系统,独特的挂载方式确保数据的安全性将应用程序的核心实现为库,可重用性良好采用模块化分层的程序设计方法,可靠易维护2、UNIX的两个著名版本BSDUNIX和系统VUNIX1、解释POSIX。答:POSIX表示可移植操作系统接口,可以提高UNIX环境下应用程序的可移植性。POSIX标准定义了标准的API,只要是符合这一标准的应用程序,就能够在多种操作系统中运行。2、解释通用公共许可证GPL。答:GPL保证软件对所有用户来说是自由的。
2、遵循GPL的软件提供给用户时必须提供源码,一旦用户得到遵循GPL的软件,就能够对其任意地改写,修改之后如果要提供给其他人也必须遵循GPL,并开放源码,允许被修改。Linux系统下,常用的在线帮助文件有哪些?man手册,info手册,how-to文件,…Whereiswhatishelpapropos3、静态库与共享库比较。linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库在程序编译时会被连接到目标代码中,目标程序运行时将不再需要该动态库,移植方便,体积较大,但是浪费空间和资源,因为所有相关的对象文件与牵涉到的库被链接合
3、成一个可执行文件。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此体积较小,可以实现进程间的资源共享,甚至可以真正做到链接载入完全由程序员在程序代码中控制,另外将一些程序的升级变得简单,但是在程序运行时需要动态库存在。4、程序与进程的概念程序是存储在文件中的机器指令序列,进程存在于用户空间,是运行中的程序。5、画出Linux函数库调用和系统调用的示意图,简单说明系统调用(API)函数的作用。答:API是操作系统和用户程序之间的接口,应用程序通过API与操作系统进行通信,使用操作系统提供的服务。API同时保证了操作系统数据和程序的安全性。
4、因此,API提供给用户安全地使用操作系统提供的服务。1、简单说明在Linux程序开发过程中,利用GCC工具将C语言程序编译成一个可执行程序文件的四个步骤。答:1、预处理2、编译3、汇编4、连接2、Linux系统下,用C语言编程,进行文件管理,有哪两类函数可用?试比较两类函数的优缺点。答:ANSIC优点:1.具有丰富的函数可供使用。2.直接对内存缓冲区进行操作,可以高效的写任意长度的数据块,在数据长度满足要求时安排底层系统调用,降低的系统的开销且没有数据块大小的限制,整体的效率要比直接对硬件操作的系统调用高3.具有更好的兼容性缺点:对系统调用进行封装,因此使用时会
5、在库函数中再调用系统调用,就一次读写相同的数据来说,效率比系统调用要低POSIX优点:在类UNIX等系统中有很好的可移植性,可以直接设置对硬件的控制缺点:1.使用时会影响系统性能,如果一次只存取很少的内容,效率会很低2.硬件会限制对底层系统调用一次能读写的数据块大小,如果数据很小,会留下空隙。3.兼容性不是很好3、比较POSIX标准与ANSI标准I/O操作的效率,两者在可移植上有哪些差异,两者之间的关系是什么?有什么区别?ANSIC和POSIC前者函数丰富,使用方法跟控制台读写一致,可以跨操作系统,但效率低一些,后者直接调用系统接口,效率高。但函数少,不能跨操作
6、系统。4、与每个进程相连的各种用户ID和组ID进程对应的id:1.实际用户id(uid),即登陆机器或运行进程的id。标识我们是谁。2.有效用户id(euid),该进程能访问哪些文件,检查有效用户id与文件的访问权限(所有者ID,组ID:所有者访问权限,组访问权限,其它访问权限),以判别进程是否能够访问该文件3.保存的设置用户id,由exec函数保存当执行一个程序文件时,进程的有效用户ID通常就是实际用户ID,有效组ID通常是实际组ID。1、可执行程序文件在存储时(没有调入到内存)分为几部分,说明各段的主要内容。1、可执行代码区(text):存放CPU执行的机器
7、指令。2、已初始化数据区(data):包含了在程序中已经被初始化的全局变量和静态变量。3、未初始化数据区(bss):未初始化的全局变量和静态变量,在程序开始执行之前被内核初始化为0或空指针。2、可执行程序文件调入到内存产生进程后,分为几个存储区域,说明各区域的主要内容与作用。(近处的地址空间)答:前三个与10中内容相同4、堆区:用于动态内存分配5、栈区(heap):由编译器自动分配释放,存放函数的参数值、返回值、局部变量等。。3、程序出口状态课本119页4、进程的堆和栈的区别栈区用于函数内的局部变量,临时变量,程序的自动变量一般都放在这里面的。堆区是动态分配的存
8、储空间这些是我个人的理解
此文档下载收益归作者所有