您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式操作系统定制的通用性研究 正文
嵌入式操作系统定制的通用性研究

嵌入式操作系统定制的通用性研究

点击数:7584 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   嵌入式系统-技术
   
       这种模块化的分层结构,能为开发者提供不同的模块粒度,使用户可以根据需要,选择不同层次的模块,以便增强定制过程的灵活性;而其最大的优点是,对于每一次定制需求的改变,不必由最细粒度的原子级模块配置重新做起,而是可以对需求改变进行分析,替换掉恰当粒度的模块,保持其它部分不变,简化了配置过程,减少了配置时间。

www.55dianzi.com
       1.2.3模块层次的解析

   
       模块解析和模块配置过程正好相反。模块配置是从最底层开始,逐层构建出高层模块;而模块解析则从最上层开始,层层向下,直到寻找到最下层的映射关系,同时构造出对应的关系图。
   
       基于对模块的封装,每层模块只关心和它紧密联系的下层模块的映射关系,即它是由下层的什么模块所构成的。为此,我们在配置生成每一个模块时,将它对下层的映射关系保存在数据库中。
   
       逐层解析时,我们把模块名作为关系图的顶层结点,并在数据库中查找它对下层模块的映射关系。根据映射关系中涉及的下层模块,如果关系图中不存在它对应的结点,在关系图中添加新的结点,每个新结点对应一个下层模块名。根据映射关系,添加图中的拓扑关系。再将每个新结点作为一个新的顶层结点,重复刚才的过程,直至最终映射到原子级构件,则构造出一个完整的关系图。可以说,关系图生成的过程也就是整个映射的过程。算法描述如图5所示。

 

解析算法描述

点击看原图


       1.2.4配置的最终完成

   
       到模块层次解析过程完成为止,所有的操作均屏了 操作系统 的特殊性;但 嵌入式 系统是多样的,不仅体现在操作系统的多样性上,而且,即使相同的操作系统,对应不同的处理器,其组成也是千差万别的。为了生成用户定制的具体操作系统,根据用户输入选择的操作系统类型,在上面解析处理生成的关系图中,选择出度为O的结点(即为原子级模块对应的结点)映射到不同的操作系统实体,再根据不同编译器、链接器能识别的规则,生成不同的makefile文件、config文件和资源文件。可以说,各种配置文件的生成标志着操作系统定制过程的完成。

       2 基于嵌入式Linux的配置剪裁器的实现

       使用定制过程的通用模型,我们实现了一个嵌入式Linux的配置剪裁器。该配置剪裁器作为一个工具集成到基于嵌入式Linux的PDA手机开发平台中。配置剪裁器使用构件库管理器作为其可选抽象模块的容器,而其输出的配置文件则提供给项目管理器,由后者提交给编译器和链接器进行操作系统生成。三者的关系如图6所示。

       下面是三个工具的功能说明。

 PDA手机开发平台结构


       (1)配置剪裁器
   
       ①显示从构件库获得的已有模块信息。
   
       ②根据用户选择,配置新的模块,并将模块信息存入构件库,供下次定制时作为已有模块使用。
   
       ③定制特定应用开发所需的操作系统:用户可以选择构件库中已存在的不同粒度的模块进行配置。在需要编译连接生成可下载到目标机的目标代码时,生成对应的配置文件,传给项目管理器。

       (2)构件库管理器
   
       保存操作系统抽象模块信息,供配置剪裁器查询和使用。查询内容包括:①可以配置的模块名,供配置剪裁器提取出显示在用户界面上,供用户配置选择;②每个模块对它下一层的映射信息。根据此映射信息,可以进行递归往下查找,因而支持配置剪裁器中对每个模块的层次解析和操作系统映射功能。


www.55dianzi.com        (3)项目管理器
   
       项目管理器管理应用程序的开发,因而项目管理器向配置剪裁器提供应用开发者编制的应用程序的源文件路径信息。 嵌入式 软件的最大特点就是应用程序往往不是独立存在的,它最终和 操作系统 一道作为二进制目标代码下载到目标机。所以,配置剪裁器需把从项目管理器获得的源文件路径信息写入对应的Makefile文件中。
   
       以用户的应用程序开发配置所需的应用级模块为例,将配置剪裁器工作步骤说明如下:
   
       ①选择构件库中已有的应用级模块,定制操作系统,将配置文件路径保存在构件库管理器中。
   
       ②当收到项目管理器获得具体操作系统配置文件的请求时,查找构件库,得到保存的特定应用的配置文件路径。根据此路径和文件名,打开文件进行解析,获得应用所包含的应用级模块的个数和模块名,生成初始的关系图。
    
       ③根据应用级模块的个数和模块名,查找构件库,得到每个应用级模块的配置文件名和路径。解析文件得到对应的功能级模块,将功能级模块和对应拓扑关系添加在关系图中。
   
       ④以此类推,直到找到对应的原子级模块,最终生成一个完整的关系图。
   
       ⑤根据关系图查找构件库,把原子级模块映射到定制的操作系统实体上。本系统利用Linux自带配置系统,通过修改Linux的源码系统中已有的Makefile和kconfig文件,来编译内核,生成用户定制的操作系统内核。因此原子级模块对应于特定操作系统的实体信息就是kconfig文件中需添加的配置项,如选择了网络模块对应的实体信息,即“CONFIG_NET=y”配置项。

       结语
   
       通过对操作系统定制技术进行研究,抽象出操作系统定制过程通用模型OSTAILOR,并结合863项目“面向PDA手机的嵌入式软件开发平台”实现了一个嵌入式Linux的配置剪裁器。用户可以使用本工具友好的图形化界面对Linux内核组件及应用模块进行操作系统定制,自动生成各种配置中间文件,避免了手工编写修改这些文件的繁琐,从而演示了使用此模型来实现嵌入式操作系统定制过程的通用化的可行性。但是在本模型中,应用开发者定制了特定的操作系统,就必须使用该操作系统提供的应用编程接口(API)。若需修改定制的操作系统,就必须替换应用程序中对应的API。如何在操作系统定制过程中,满足应用开发的操作系统无关性,将是本课题进一步研究的方向。

上一页  [1] [2] 


本文关键字:嵌入式  操作系统  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术