主流嵌入式Linux动态扩展技术比较分析

2016-01-29 19:46 8 1 收藏

主流嵌入式Linux动态扩展技术比较分析,主流嵌入式Linux动态扩展技术比较分析

【 tulaoshi.com - Linux 】

 

  摘要:随着嵌入式技术的快速发展和嵌入式设备的普及,嵌入式应用发展的一个关键趋势是从静态的、固定的系统功能到动态的、可扩展的系统功能。本文主要进行嵌入式Linux系统内核动态扩展技术的讨论。首先,介绍嵌入式Linux系统的发展状况和研究嵌入式Linux动态扩展性的意义。然后,讨论目前几种主要的核心动态扩展技术,以及各种技术在嵌入式系统上的优缺点。最后,分析嵌入式Linux动态扩展性研究所面临的挑战和发展趋势。


  关键词:嵌入式Linux 内核动态扩展 LKM

  引 言

  嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术等先进技术和具体应用对象相结合后的更新换代产品。系统无多余软件,硬件亦无多余存储器,可靠性高,成本低,体积小,功耗少;可应用于家电、工业、通信、国防等领域。其产品形态丰富多样,市场潜力巨大。

  嵌入式Linux的出现,给整个嵌入式世界带来了无限生机。Linux具有内核可裁剪、效率高、稳定性好、移植性好、源代码开放等优点,还内含了完整的TCP/IP网络协议栈,很适合在嵌入式领域应用。与传统的实时操作系统(RTOS)相比,采用嵌入式Linux这样开放源码的操作系统的另外一个好处是,Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其他协议。例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多。因此,越来越多的公司和个人正在把Linux作为嵌入式操作系统的首选。

  嵌入式系统由于其工作环境、位置分布、与应用系统的结合方式等方面的原因,在系统的升级、修改方面存在着相当的困难,且费用高。目前大多数嵌入式系统内核只能在一定程度上进行静态扩展,这意味着修改某些内核属性值后要重新编译内核,对普通用户而言难以实现。通信的发展使得嵌入式操作系统的动态扩展成为可能,可以在远程控制的基础上增加嵌入式系统的灵活性,延长嵌入式系统的寿命;同时,由于嵌入式Linux的应用日益广泛,研究嵌入式Linux的动态扩展具有重要意义。

  动态扩展是指系统在运行状态下实现系统的升级和维护。动态扩展技术目前被广泛应用在软件系统开发的各个领域。组件、可扩展的数据库系统、主动网等多种技术都是动态扩展技术在各个领域的具体体现。在嵌入式操作系统领域,动态扩展技术研究的主要目标是实现内核抽象的扩展。实现操作系统内核抽象的动态扩展能够提高系统的灵活性、适应性,使系统能够根据应用的需求,提供特定的服务。然而,由于嵌入式系统硬件资源有限,这对研究嵌入式Linux系统核心的动态扩展性是一个极大的挑战。

  本文主要讨论嵌入式Linux系统中内核抽象的动态扩展技术。

  1、几种主要的内核动态扩展技术的分析

  当前应用于操作系统中的动态扩展技术主要有四种:微内核技术、可扩展内核技术、解释器技术/JOS技术和内核下载技术/LKM技术[1,2]。 这三种技术已经在桌面操作系统的不同环境中得到了充分的应用。嵌入式操作系统及其使用环境具有桌面操作系统所不同的特征,它在性能、地址空间、所需存储空间和底层访问频率等方面的特征,使得我们在扩展技术的选择上需要加以权衡。

  (1) 微内核技术

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

  在微内核操作系统中,内核中包括了一些基本内核功能(如创建和删除任务、任务调度、内存管理和中断处理等),部分操作系统抽象和关键服务(如文件系统、网络协议栈等),都是在用户空间运行的。这大大减小了内核的体积,同时也极大地方便了整个系统的升级、维护和移植。系统通过核心到用户层向上调用服务的方法来为应用程序提供服务。由于服务存在于用户层,用户可通过修改服务来获得不同的行为,因而也称为用户层扩展技术。由于所有的应用程序都要利用操作系统提供的API或系统调用,完成内存管理、进程管理、I/O、设备管理等,因此通过在用户空间监视并截获某个进程的系统调用,然后将扩展功能代码插入系统调用中,就可以扩展Linux操作系统功能。

  与内核空间功能扩展相比,在用户空间扩展安全性更强,对Linux操作系统和应用程序更加透明。用户层扩展技术的缺点在于,将服务提升到用户层使程序运行过程中核心态和用户态之间的切换和自陷次数增加,导致系统负载增加,系统性能下降。另外,微内核与传统的嵌入式Linux内核在结构上是完全不同的。在嵌入式Linux中,如果采用该技术来增加系统的动态扩展性能,需要对内核结构重新设计[2]。

  (2) 可扩展内核技术

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

  可扩展内核技术允许用户应用程序向内核植入(inject)代码以扩展其功能。由于被植入的代码是在核心态运行,从而避免了微内核技术中的系统性能下降的问题。被植入的代码是在核心态运行,需要有一个实时检查机制来验证代码的安全性,保证被植入代码不会导致系统的崩溃。程步奇等人[1]使用软件故障孤立技术来实现扩展模块的故障孤立,保证系统不受到扩展模块的破坏。 Bershad等人[3]也使用软件故障孤立技术来限制被植入代码可访问的内存地址范围。代码安全性检查无疑增加了系统的负担,问题产生的根

来源:http://www.tulaoshi.com/n/20160129/1510078.html

延伸阅读
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式Linux不能够象桌面Linux那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。 下面以uClinux为例,介绍在一个以模块方式出现的驱动程...
标签: PHP
1 引言 Linux由于其具有内核强大且稳定,易于扩展和裁减,丰富的硬件支持等诸多优点,在嵌入式系统中得到了广泛的应用。很多嵌入式Linux系统,特别是一些具有与用户强交互的嵌入式系统,往往需要配备一个特殊键盘,此时开发者需要根据实际情况,为自己的特殊键盘编写驱动程序。 2 Linux键盘驱动简介 Linux中的...
卧室衣柜 在卧室中有着举足轻重的作用,根据卧室装修的风格搭配不同款式的、不同色彩的衣柜,在保证 其本身的使用功能以外还有更好的装饰作用。在时下的家居装修中,衣柜设计也是多样化的,开放式衣柜、 嵌入式衣柜等等,个性化的设计也给卧室生活增加不少乐趣。  嵌入式衣柜的优点就是衣柜空间大,节省室内空间,并且可以随心所欲...
标签: 电脑入门
多媒体时代的电子文档、表格、演示,大量运用图片、图表、公式、声音、动画等嵌入式对象,在增添了作品的表现力的同时,也给作者的编辑工作带来了一定的难度。不过,您别急,WPS全新推出的校园版及在线升级过的抢鲜版集成了对象图层工具,可以助您一臂之力。 一、认识对象图层工具及按纽。您可以在插件工具栏中可以找到对象图层,也可以打开WP...
标签: PHP
初始化部分。这部分包括硬件层和软件层上的初始化。在本例中,需要先对矩阵电路和SN74hc164芯片所使用到的GPIO端口作配置,以使CPU可以对它们进行控制和访问。为了要将某个GPIO端口配置成输入输出或者是中断源,需要在对应的GPIO控制寄存器中设置正确的值,具体的值可以通过查阅S3C2410开发板手册来获得。比如,...

经验教程

692

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部