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

发布者:逍遥游侠最新更新时间:2006-09-11 来源: 21control关键字:软件  复用  通用  模型 手机看文章 扫描二维码
随时随地手机看文章
引言

  目前嵌入式系统开发已经成为了计算机工业最热门的领域之一,嵌入式系统应用渗透到信息家电、工业控制、通信与电子设备、人工智能设备等诸多领域。嵌入式操作系统的引入大大提高了嵌入式系统的功能,方便了嵌入式应用软件的设计,但相应也占用了宝贵的嵌入式系统资源。同时,因为嵌入式应用系统配置差别较大,I/O操作也没有标准化,这部分驱动软件常常由应用程序提供,这就要求在开发环境中能够对用户选定的实时操作系统进行剪裁和扩展,并和应用程序绑定在一起生成一个可运行在目标环境下的应用系统。所以针对不同应用需求裁减掉不需要的操作系统模块,配置特定的嵌入式操作系统是降低系统硬件成本, 减少系统资源消耗,提高系统灵活性的关键。

  嵌入式操作系统大多采用构件化、模块化的设计思想,以搭积木的方式通过互连构造软件因而是可配置的。但是由于操作系统的多样性,不同操作系统提供的配置方式迥异且繁简不一。例如:风河公司的VxWoks操作系统,其开发环境Tornado提供的配置工具可以对操作系统模块进行选择和删除,但其配置主要还是通过用户对目标系统目录树下相关配置文件进行手工编辑和修改来完成的;科银京成公司。Delta OS的配套开发环境Lambda Tool,可以简单对内核参数、文件系统参数和网络系统参数进行设定。由于硬 件平台的多样性,即使是相同操作系统,其配置也是有差别的。应用程序开发者必须熟悉不同的硬件平台和不同的操作系统才能进行可行的应用的开发,增加了应用开发的难度。

  对于嵌入式应用的行业开发,往往提供了多种操作系统供应用开发者选择。如果能提供一套统一的操作系统配置工具,那么应用开发者不必因为选择不同的操作系统而重新学习使用新的配置环境,必然能提高开发效率,这在行业开发中有着重要意义。

  本文将软件复用技术用于嵌入式操作系统的定制过程,提出了一个嵌入式操作系统定制过程的通用模型(OSTAILOR),并在此基础上研究设计了基于嵌入式Linux的配置剪裁器。
  1 嵌入式操作系统配置通用化模型

  以操作系统抽象模块作为操作系统配置的基本单位,在此基础上得到了嵌入式操作系统配置通用化模型OSCFG。

  1.1 模型概述

  如图1所示,虚线框表示建立的操作系统配置模型。左边的两个实线框表示对于操作系统配置模型的输入:选择配置的操作系统类型和选择配置的操作系统抽象模块。右边的实线框表示输出的配置生成结果:特定的配置文件。


  操作系统配置模型的关键在于通用性,即对不同的操作系统,能够在逻辑上对操作系统所划分出来的物理模块保持透明性,因而,建模要点在于以下两点:

   ①对各式各样的操作系统模块进行抽象,使之成为对应于配置模型的抽象模块。抽象模块以模块属性文件的形式存放在构件库,供配置选用。

   ②抽象模块最后能映射为对应于不同操作系统的实体信息。

  在上述前提下,构建了如图2所示的操作系统配置过程模型OSTAILOR。图中阴影部分实现了配置的操作系统无关性,可以称为操作系统抽象层。 图2 O$1AII一0R过程模型对于具体的操作系统模块实体,首先经过模块抽象,封装成对应用可见的操作系统抽象模块。每一个操作系统模块包含两个关键属性:①抽象出来的模块名。根据此模块名,应用开发人员可以知道此操作系统模块具有的基本功能。②模块层次,隶属于不同层次的模块具有不同的模块粒度。一般而言,越靠近底层的模块,粒度越细。在配置完成以后,根据用户输入选择需要映射的特定操作系统,根据此输入选择,模块配置完成以后,才能选择特定的操作系统映射算法将抽象的模块映射到具体的操作系统功能上。



  图2中抽象模块配置层完成的功能还包括可根据用户选择,将操作系统抽象模块配置成更高层次,更大粒度的模块,供本次操作系统生成或下次定制使用。在这个操作系统定制模型中,抽象模块配置层以下层次完成的功能是根据模块配置层的配置结果和用户对操作系统类型的选择,完成对具体操作系统的映射。这部分因为与具体嵌入式操作系统相关,因而具有特殊性。为了实现配置的通用性,也就需要考虑如何把特殊性降低到最小。

  1.2基本工作原理
  1.2.1配置基本流程


  定制的基本流程如图3所示。用户浏览器查询构件库,并对用户显示出可选模块,然后接收用户对模块的选择,将选择结果送至文件解析器。从构件库获得对应模块的属性文件。通过解析,将解析结果生成模块结构映射关系图。模块结构关系图中的模块均以抽象逻辑形式存在,可以通过查找构件库得到它以文件形式存在物理实体信息。根据模块结构映射关系图和每一个模块的物理实体信息。生成对应的Makefile或其它一些相关配置文件,把它提供给对应的Make工具(编译器、链接器等),最后生成系统的可执行文件。


   1.2.2模块抽象的层次划分

  一般说来,模块的粒度越大,每一个模块所包含的功能越多,其可配置性就越低;而模块粒度越小,配置复杂度越高〔5〕。为了达到配置的灵活性和方便性,并将配置中涉及到操作系统特殊性的地方降到最小,我们将模块抽象出来,并将其划分为多级结构,不同层次的模块封装其下层模块,形成不同的配置粒度。现以3层结构进行描述,如图4所示。


  图4中最下层是原子级模块,它抽象了操作系统的基本功能,包括任务(task)、I/O驱动(driver)、定时器(timel)、信号量(sernaphore)、消息队列(quecue)、事件(event group)、邮箱(mailBox)、管道(pipe)等。除此之外,还包括一些基本的应用功能。之所以取名为原子级模块,是为了表明它是不可再分的基本模块,是配置其它层次模块的基础。

  原子级模块的粒度存在于目标代码或库文件级,因为它映射的物理实体以目标代码或库文件存在。虽然在图4的层次结构中,它也是作为抽象的逻辑模块存在,但是它是和物理实体联系最紧密的一层,也是模块粒度最细的一层。因而在配置过程结束以后,通过这层映射到不同的文件,产生不同格式的配置文件,达到配置不同操作系统的目的。原子级模块完成的只是某一特定功能的一部分,或者只是某一特定功能一个子功能,必须和其它原子级模块相结台才能发挥应有的作用。因而在它的上层提出了功能级模块的概念。

  功能级模块由原子级模块配置生成。通过把不同的原子级模块结合在一起,完成某一特定功能,并加大了模块粒度。例如,配置无线上网的功能模块,除了要选择无线上网本身这个原子级模块,还需要选择操作系统中支持上网功能的原子级模块,比如TCP/IP协议栈。

  通过把功能级模块组装在一起,完成更强大的功能,就构成了应用级模块。每一个应用级模块都是一个功能模块集,也是粒度最大的一层模块。对于应用程序开发者,为了开发特定的应用程序,如果不想选择细粒度的模块,可以直接选择应用级模块来配置操作系统。

  这种模块化的分层结构,能为开发者提供不同的模块粒度,使用户可以根据需要,选择不同层次的模块,以便增强定制过程的灵活性;而其最大的优点是,对于每一次定制需求的改变,不必由最细粒度的原子级模块配置重新做起,而是可以对需求改变进行分析,替换掉恰当粒度的模块,保持其它部分不变,简化了配置过程,减少了配置时间。

  1.2.3模块层次的解析

  模块解析和模块配置过程正好相反。模块配置是从最底层开始,逐层构建出高层模块;而模块解析则从最上层开始,层层向下,直到寻找到最下层的映射关系,同时构造出对应的关系图。基于对模块的封装,每层模块只关心和它紧密联系的下层模块的映射关系,即它是由下层的什么模块所构成的。为此,我们在配置生成每一个模块时,将它对下层的映射关系保存在数据库中。

  逐层解析时,我们把模块名作为关系图的顶层结点,并在数据库中查找它对下层模块的映射关系。根据映射关系中涉及的下层模块,如果关系图中不存在它对应的结点,在关系图中添加新的结点,每个新结点对应一个下层模块名。根据映射关系,添加图中的拓扑关系。再将每个新结点作为一个新的顶层结点,重复刚才的过程,直至最终映射到原子级构件,则构造出一个完整的关系图。可以说,关系图生成的过程也就是整个映射的过程。算法描述如图5所示。


  1.2.4配置的最终完成

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

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

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


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

  (1)配置剪裁器

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

  (2)构件库管理器

  保存操作系统抽象模块信息,供配置剪裁器查询和使用。查询内容包括:

  ①可以配置的模块名,供配置剪裁器提取出显示在用户界面上,供用户配置选择;

  ②每个模块对它下一层的映射信息。根据此映射信息,可以进行递归往下查找,因而支持配置剪裁器中对每个模块的层次解析和操作系统映射功能。

  (3)项目管理器

   
项目管理器管理应用程序的开发,因而项目管理器向配置剪裁器提供应用开发者编制的应用程序的源文件路径信息。嵌入式软件的最大特点就是应用程序往往不是独立存在的,它最终和操作系统一道作为二进制目标代码下载到目标机。所以,配置剪裁器需把从项目管理器获得的源文件路径信息写入对应的Makefile文件中。

  以用户的应用程序开发配置所需的应用级模块为例,将配置剪裁器工作步骤说明如下:

  ①选择构件库中已有的应用级模块,定制操作系统,将配置文件路径保存在构件库管理器中。

  ②当收到项目管理器获得具体操作系统配置文件的请求时,查找构件库,得到保存的特定应用的配置文件路径。根据此路径和文件名,打开文件进行解析,获得应用所包含的应用级模块的个数和模块名,生成初始的关系图。

  ③根据应用级模块的个数和模块名,查找构件库,得到每个应用级模块的配置文件名和路径。解析文件得到对应的功能级模块,将功能级模块和对应拓扑关系添加在关系图中。

  ④以此类推,直到找到对应的原子级模块,最终生成一个完整的关系图。

  ⑤根据关系图查找构件库,把原子级模块映射到定制的操作系统实体上。本系统利用Linux自带配置系统,通过修改Linux的源码系统中已有的Makefile和kconfig文件,来编译内核,生成用户定制的操作系统内核。因此原子级模块对应于特定操作系统的实体信息就是kconfig文件中需添加的配置项,如选择了网络模块对应的实体信息,即“CONFIG_NET=y”配置项。

  结语

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

关键字:软件  复用  通用  模型 引用地址:嵌入式操作系统定制通用性研究

上一篇:嵌入式操作系统定制通用性研究
下一篇:PPCBoot在MPC8250上的移植方法

推荐阅读最新更新时间:2024-05-02 20:25

讯鸟软件推云计算呼叫中心金融行业解决方案
近日,中国金融客户联络中心与卓越服务高峰论坛在北京举行,该峰会由中国金融客户联络中心与BPO行业资讯网(51Callcenter)共同主办,是至今为止全国唯一的聚焦于金融行业的客户联络中心与卓越服务盛会,与会当天有数百位金融行业管理人员、呼叫中心行业资深人士及媒体记者参加。 作为国内领先的专业“云计算”呼叫中心系统和服务提供商讯鸟软件以赞助商的身份出席了该大会,并在大会上推出了针对金融行业电销服务的云计算呼叫中心金融解决方案,得到了众多金融客户与行业人士关注与认可。另外,广发银行信用卡中心电话营销渠道副总监廖上杰先生结合讯鸟软件的金融行业解决方案的深度应用,进行了“温馨提示-电话行销”的主题演讲,得到了业界的一致好评。 讯鸟软
[网络通信]
高清晰LED显示控制模型设计分析
1、控制系统的现状 21世纪, LED 大屏幕电子 显示屏 向更高 亮度 、更高耐气候性、更高的发光均匀比、更高的可靠性、全色化、多媒体的方向发展,系统的运行、操作与维护也向集成化、 网络 化、智能化方向发展。越来越多的场合需要高分辨率,高 显示 质量的超大屏幕 LED显示 产品。 目前,国内 全彩LED显示屏 的控制系统主要采用基于PC机显卡输出视频数据的 通信 控制系统。系统主要分成发送板,接收板,扫描板, 驱动 板等几大板块,而发送板采用的 接口 大多数是DVI数字接口。DVI接口是由1998年9月,在Intel开发者论坛上成立的数字显示工作小组发明的一种高速传输 数字信号
[电源管理]
高清晰LED显示控制<font color='red'>模型</font>设计分析
STM8单片机无线315&433脉宽自适应_通用解码程序
单片机源程序如下: /* RFINT不能用PA1 要改板 改在PC6 */ /* Includes ------------------------------------------------------------------*/ #define MAIN_C #include ALL.h void Delay(u16 nCount) { /* Decrement nCount value */ while (nCount != 0) { nCount--; } } //10ms定时中断初始 在PWM时可更改 void TIME1_CONFIG(void) { /* Init TIMER 1 *
[单片机]
自动驾驶数据集的生成模型之WoVoGen框架原理
1. 写在前面 最近自动驾驶数据集的生成模型很火,主要包括NeRF和扩散模型两类。其中扩散模型的难点在于保持世界范围内的一致性和传感器间的一致性。今天笔者为大家推荐一篇复旦大学最新的开源方案WoVoGen,可以根据车辆控制输入生成街区视频,还可以做场景编辑。 2. 摘要 生成多摄像头的街景视频对于增加自动驾驶数据集至关重要,解决了对广泛而多样的数据的迫切需求。由于多样性的限制和处理光照条件的挑战,传统的基于渲染的方法越来越多的被基于扩散的方法所取代。然而,基于扩散的方法的一个重要挑战是确保生成的传感器数据同时保持世界范围内的一致性和传感器间的一致性。为了解决这些挑战,我们结合了一个额外的显式世界体素,并提出了世界体素感知多摄像
[嵌入式]
自动驾驶数据集的生成<font color='red'>模型</font>之WoVoGen框架原理
基于MASTA软件电驱桥减速器齿轮的优化设计方案
随着汽车行业“新四化”趋势的不断深入,纯电动等新能源车型越来越普遍。在乘用车市场,三合一电驱动系统(EDU)的技术已比较成熟。近年来,针对商用车市场开发的整体式电驱桥产品(图1)成为1种新的技术路线,相比以传统动力整车架构为基础开发的前置电机通过传动轴直驱到传统后桥的布置方案,整体式电驱桥在承载式刚性桥壳上集成了电机和减速器,具有集成度高、传动效率高、总体方案质量轻等技术优势,而且为增大动力电池的布置空间提供了条件(图2)。 图1 某电动皮卡整体式电驱桥 图2 某电动皮卡架构布置方案对比 齿轮是整体式轻型电驱桥减速器动力传递的关键载体, 也是电驱桥减速器噪声产生的主要来源。近年来, 齿轮传动振动-噪声-平顺性(NVH)改善
[嵌入式]
基于MASTA<font color='red'>软件</font>电驱桥减速器齿轮的优化设计方案
罗克韦尔自动化推动通用工业协议 (CIP) 安全协定的广泛实施
罗克韦尔自动化以全新Proxy代理设备推动通用工业协议 (CIP) 安全协定的广泛实施 (2021年7月13日,中国上海)工业企业现在可以借助罗克韦尔自动化的Allen-Bradley CIP Security Proxy代理设备在他们的系统中广泛实施工业协议安全协定(以下统称“CIP Security”)。在过去,工业网络几乎不会内置安全性。如今,随着企业互联程度的提高,工业企业比以往任何时候都更需要考虑工业网络的安全性。借助 CIP Security Proxy,用户能够在其网络中的大多数设备上实现 CIP Security,从而帮助保护工厂运营,即便工厂使用老旧系统也是如此。 CIP Security Proxy 可
[工业控制]
香港大学计算机科学系衍生公司"Stellaris AI" 推出具有千亿参数的突破性语言模型"Stellaris GPT"
香港大学计算机科学系衍生公司 Stellaris AI 推出具有千亿参数的突破性语言模型 Stellaris GPT 香港 - Media OutReach - 2023年5月30日 - 香港大学(港大)计算机科学系衍生公司 Stellaris AI , 宣布推出具有千亿参数的突破性大规模语言模型 Stellaris GPT (SGPT) 。 该模型完全由Stellaris 人工智能团队自主研发,并不依赖于OpenAI或任何其他类ChatGPT系统,该突破性技术提供了一个没有版权或法律风险的人工智能驱动的语言模型/系统。 SGPT v2.5是由Stellaris从零开始自主研发的,研究团队包括港大-渣打慈善基金金
[网络通信]
香港大学计算机科学系衍生公司模型"Stellaris GPT"" />
Altera为Quartus II软件提供强劲引擎Spectra-Q
令FPGA和SoC设计快马 Altera公司(Nasdaq: ALTR)宣布为其业界领先、成熟可靠的Quartus II软件引入功能超级强劲的Spectra-Q 引擎,以提高下一代可编程器件的设计效能,缩短产品面市时间。Spectra-Q引擎的新功能创纪录地缩短了编译时间,提供通用、快速跟踪设计输入和置入式IP集成特性,延续了Altera Quartus II软件的领先优势,令基于FPGA和SoC的设计快马加鞭。现在,客户可以在更高抽象层面上进行设计并实现,极大地缩短了设计时间,解决了下一代设计面临的挑战。关于Spectra-Q引擎的更多信息,请访问www.altera.com.cn/spectraq网页。
[嵌入式]
Altera为Quartus II<font color='red'>软件</font>提供强劲引擎Spectra-Q
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved