基于PDA的Linux文件的系统裁剪问题研究.docVIP

基于PDA的Linux文件的系统裁剪问题研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于PDA的Linux文件的系统裁剪问题研究

基于PDA的Linux文件系统裁剪问题研究 摘 要 从PDA的实际特点提出文件系统的特质,对于其文件系统的裁剪进行了分析,提出了一种裁剪方法。 关键词 嵌入式Linux;操作系统;剪裁;PDA1 引言 PDA作为一种智能化的个人数字工具,已经在很大的范围内得到普及,而作为其核心软件的操作系统的研究与开发已经成为目前非常热门的话题。大体说来大致有三种平台:Palm OS 。市场份额占据大半江山,主要有Palm、IBM的wordPad等。Win CE 。虽然起步较晚,但是打破Palm一统江山的局面,现如今国内大部分掌上电脑,如联想,方正等都有此类产品推出。以上两种产品优劣各据,前者电池使用时间长但可用性较差,后者易于上手,但软件数量较少。Linux OS。Linux自从发布以来,在嵌入式领域取得了长足的进展,之所以如此,是因为Linux本身具有Open Source,性能高效稳定,易于扩展,完善的网络服务,更为重要的是其可以根据具体的实际应用进行大小的订制,本文就Linux在PDA中的应用进行阐述。2 Linux的虚拟文件系统(VFS) Linux支持大量的文件系统类型,包括XIA,NTFS,VFAT,JFFS和JFFS2,EXT2,EXT3等,其中EXT2和EXT3 是最为成功的文件系统类型,Linux之所以支持这么多的文件系统类型最根本的原因是它引入了虚拟文件系统(Virtual File System,简称VFS),用于对这些文件系统进行统一的管理。 VFS是Linux内核中的五个主要部分之一,为用户空间的程序提供文件的系统接口。隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口。具体的原理图如图1所示。 Linux文件系统的数据结构类似EXT2文件系统,即采用超级块与inode节点数据结构进行管理。超级块结构驻留在内存空间,存放了该文件系统的重要信息。从超级块中可以取到该文件系统中任何一个文件的inode节点,从inode节点则可对该文件进行读写等操作,这就实现了对磁盘中任一文件的控制。 VFS 只存在内存,随系统的启动而产生,关闭时候注销。VFS的功能包括:记录可用的文件系统的类型;将设备同对应的文件系统联系起来;处理一些面向文件的通用操作;涉及到针对文件系统的操作时,VFS把它们影射到与控制文件、目录以及inode相关的物理文件系统。图1 VFS原理图 当某个进程发布了一个面向文件的系统调用时,核心将调用VFS中相应的函数,这个函数处理一些与物理结构无关的操作,并且把它重定向为真实文件系统中相应的函数调用,后者则用来处理那些与物理结构相关的操作。3 文件系统裁剪的方法 作为PDA这些嵌入式的设备对于Linux的要求是体积小,功能适中。根据系统的运行情况决定是否需要日志,网络等功能,还要考虑需要存储的文件特点和大小,是否支持大量的索引结点的问题等。 基于特定的需求,一般的文件系统裁剪主要包括: 1)函数库的裁剪 在Linux庞大的函数库中,事实上存在一些没有被任何程序调用的函数库,而且在一些函数库中存在一些从来没有被调用过的函数。因此找到函数和程序之间的依赖关系,只保留那些有用的函数是一个很有用的方法,而在此过程中,利用一些必要的工具来辅助进行函数调用关系的分析,确定函数和程序的调用关系是非常重要的手段。作为函数库之一的共享库裁剪首当其冲,原因很简单,共享库是多个程序调用的库,而如何对它们进行小型化会使得整个系统的体积有较大的变化。它的基本思想是: 通过提取和解析系统库内目标文件、符号的依赖关系,通过对这些依赖构造关系模型进行关系演算,根据应用程序中的符号信息,在库目标文件一级实现系统库的小型化.实现上分为四步:确定待调函数集。在ELF文件内部,存在一个Elf32-Sym 数组结构的符号表,用于内部符号定义和外部符号引用,通过对这个符号表的分析可以将ELF应用程序中待调符号(系统函数)抽取出来,从而建立一个应用程序-待调函数符号的多对多关系。确定系统库函数与目标文件的对应关系。系统库逻辑上分成:库、目标文件、符号三个层次,库和目标文件都是ELF格式,通过对库的映像文件*_pic.a和每个目标文件中的符号表分析得到库。目标文件的定义关系、目标文件-符号定义关系和目标文件-符号调用关系。确定系统库目标文件之间的相互依赖关系。通过对步骤b中相关关系的关系演算得到目标文件-目标文件的完全依赖关系。生成小型化系统库。通过对应用程序-待调符号表和目标文件-目标文件依赖表的关系演算得到待调函数所依赖的目标文件集合,将它们进行重新链接即可得到最小化的库文件。 2)基于统计规律的文件要素的选择 文件系统由于存储在磁盘上,因此其磁盘块的管理方式也是非常环节。不宜过大也不宜过小,过大则碎片增多,过小则读取时间将降低。为了使得磁盘块的大小

文档评论(0)

ayangjiayu3 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档