论文部分内容阅读
嵌入式操作系统作为嵌入式系统的核心组成部分,必须满足嵌入式系统资源有限、面向特定应用、专用硬件和与应用软件密切相关等重要特征。因此,对于嵌入式操作系统裁剪技术的研究具有重要的理论和实用价值。uClinux作为开源操作系统是国际上的一个研究热点,近年来得到了飞速的发展。由于uClinux是一个庞大、高效且复杂的操作系统,其内容中有许多是嵌入式系统所不需要的,并且嵌入式存储设备限制了存储容量,因此如何针对应用系统对uClinux进行裁剪成为了嵌入式系统软件开发的难点和重点。本文主要研究uClinux系统的裁剪问题。裁剪uClinux的主要目的就是建立一个与特定嵌入式应用系统的软硬件需求相匹配的嵌入式uClinux系统。目前随着嵌入式应用的增多和uClinux等源代码开放软件的发展,软件开发者越来越多地构建基于uClinux的嵌入式系统。在这个过程中,关键的一步就是对uClinux内核或者系统关键组件libc或文件系统的裁剪,而目前对裁剪方法的专门研究还不多。目前uClinux的裁剪一般是利用了uClinux自身的条件编译系统,但由于通常的裁剪不涉及对代码的深入了解,所以裁剪的程度不高。针对以上情况,本文提出了两种裁剪方法来对uClinux分别从粗粒度和细粒度方面进行裁剪,所作的工作如下:1)提出分层、分模块的裁剪方法并实现对uClinux的粗粒度裁剪;2)分析uClinux内核源代码,采用基于代码分析的调用图方法实现对内核的细粒度裁剪;3)文件系统的裁剪又是内核裁剪的重点,面对数万计的调用关系复杂的函数和数据结构,本文以uClinux上实现JFFS2文件系统为例,分别从VFS、系统调用两个方面讲述如何对庞大的uClinux文件系统进行从上到下、从应用到系统调用的一步步的裁剪,使之更加符合嵌入式系统的应用需求。将两种裁剪技术相结合来实现uClinux的裁剪,通过对目标文件结果的比较分析,验证了本文所采用裁剪技术的可行性。