嵌入式操作系统应用开,UNIXLINUX程序设计.doc

嵌入式操作系统应用开,UNIXLINUX程序设计.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式操作系统应用开,UNIXLINUX程序设计

简述Linux操作系统具有的特点。 答:开放的源代码,良好的兼容性,完备的帮助手册页,优秀的网络支持 支持多用户多任务多处理器 支持多种文件系统,独特的挂载方式确保数据的安全性 将应用程序的核心实现为库,可重用性良好 采用模块化分层的程序设计方法,可靠易维护 2、UNIX的两个著名版本 BSD UNIX 和 系统V UNIX 解释POSIX。 答:POSIX表示可移植操作系统接口,可以提高UNIX环境下应用程序的可移植性。POSIX标准定义了标准的API,只要是符合这一标准的应用程序,就能够在多种操作系统中运行。 解释通用公共许可证GPL。 答:GPL保证软件对所有用户来说是自由的。遵循GPL的软件提供给用户时必须提供源码,一旦用户得到遵循GPL的软件,就能够对其任意地改写,修改之后如果要提供给其他人也必须遵循GPL,并开放源码,允许被修改。 Linux系统下,常用的在线帮助文件有哪些? man手册,info手册,how-to文件,…Whereis whatis help apropos 静态库与共享库比较。 linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。 静态库在程序编译时会被连接到目标代码中,目标程序运行时将不再需要该动态库,移植方便,体积较大,但是浪费空间和资源,因为所有相关的对象文件与牵涉到的库被链接合成一个可执行文件。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此体积较小,可以实现进程间的资源共享,甚至可以真正做到链接载入完全由程序员在程序代码中控制,另外将一些程序的升级变得简单,但是在程序运行时需要动态库存在。 程序与进程的概念 程序是存储在文件中的机器指令序列,进程存在于用户空间,是运行中的程序。 画出Linux函数库调用和系统调用的示意图,简单说明系统调用(API)函数的作用。 答: API是操作系统和用户程序之间的接口,应用程序通过API与操作系统进行通信,使用操作系统提供的服务。API同时保证了操作系统数据和程序的安全性。 因此,API提供给用户安全地使用操作系统提供的服务。 简单说明在Linux程序开发过程中,利用GCC工具将C语言程序编译成一个可执行程序文件的四个步骤。 答:1、预处理 2、编译 3、汇编 4、连接 Linux系统下,用C语言编程,进行文件管理,有哪两类函数可用?试比较两类函数的优缺点。 答: ANSI C优点:1.具有丰富的函数可供使用。2.直接对内存缓冲区进行操作,可以高效的写任意长度的数据块,在数据长度满足要求时安排底层系统调用,降低的系统的开销且没有数据块大小的限制,整体的效率要比直接对硬件操作的系统调用高3.具有更好的兼容性 缺点:对系统调用进行封装,因此使用时会在库函数中再调用系统调用,就一次读写相同的数据来说,效率比系统调用要低 POSIX优点:在类UNIX等系统中有很好的可移植性,可以直接设置对硬件的控制 缺点:1.使用时会影响系统性能,如果一次只存取很少的内容,效率会很低 2.硬件会限制对底层系统调用一次能读写的数据块大小,如果数据很小,会留下空隙。3.兼容性不是很好 比较POSIX标准与ANSI标准I/O操作的效率,两者在可移植上有哪些差异,两者之间的关系是什么?有什么区别? ANSIC和POSIC前者函数丰富,使用方法跟控制台读写一致,可以跨操作系统,但效率低一些,后者直接调用系统接口,效率高。但函数少,不能跨操作系统。 与每个进程相连的各种用户ID和组ID 进程对应的id: 1. 实际用户id(uid),即登陆机器或运行进程的id。标识我们是谁。 2. 有效用户id(euid),该进程能访问哪些文件,检查有效用户id与文件的访问权限(所有者ID,组ID:所有者访问权限,组访问权限,其它访问权限),以判别进程是否能够访问该文件 3. 保存的设置用户id,由exec函数保存当执行一个程序文件时,进程的有效用户ID通常就是实际用户ID,有效组ID通常是实际组ID。1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。会将信号传递出去,被阻塞的信号也

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档