当前位置:Linux教程 - Linux - 嵌入式Linux:挑战与发展共存

嵌入式Linux:挑战与发展共存



        

    何丽

    ---- 嵌入式操作系统是操作系统领域的一个重要分支。由于Linux的独特优势,使越来越多的企业和科研机构把目光转向嵌入式Linux的开发和研究上。本文主要分析了嵌入式Linux的优势以及所面临的挑战,并提出了相应的改进办法,最后还阐述了嵌入式Linux的发展和应用前景,旨在推动其在国内的应用。

    嵌入式Linux的优势

    ---- 嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。高实时性是嵌入式系统的基本要求,其次,还要求代码尽可能小,运行速度尽可能快,可靠性尽可能高。嵌入式Linux(Embeded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几十万字节或几十亿字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。与其他的嵌入式操作系统相比,Linux具有一些独特的优势。

    ---- 首先,Linux系统是层次结构且内核完全开放。Linux是由很多体积小且性能高的微内核和系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行改造,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统。

    ---- 其次,强大的网络支持功能。Linux诞生于因特网并具有Unix的特性,这就保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。

    ---- 第三,Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。一般开发嵌入式操作系统的程序调试和跟踪都是使用仿真器来实现的,而使用Linux系统做原型的时候,可以绕过这个障碍,直接使用内核调试器来做操作系统的内核调试和查错。

    ---- 第四,Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux最通常使用的微处理器是Intel X86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的Strong ARM CPU等处理器系统,这意味着嵌入式Linux将具有更广泛的应用前景。

    嵌入式Linux面临的挑战

    ---- 目前,嵌入式Linux系统开发正在蓬勃兴起,并且已经开辟了很大的市场,除了一些传统的Linux公司,像RedHat、VA Linux等正在从事嵌入式Linux的研究之外,一批新公司(如Lineo、TimeSys等)和一些传统的大公司(如IBM、SGI、Motorola、Intel等)以及一些开发专有嵌入式操作系统的公司(如Lynx)也正在进行嵌入式Linux的研究和开发。但就目前的技术面言,嵌入式Linux的研究成果与市场的真正需求还有一段差距。因此,要开发出真正成熟的嵌入式Linux,还需要从以下几个方面进行努力。

    扩充Linux的实时系统

    ---- 我们知道,高实时性是嵌入式操作系统的基本要求。由于Linux是一种通用操作系统,而不是一个真正的实时操作系统,内核不支持事件优先级和抢占实时特性。所以,在开发嵌入式Linux的过程中,首要问题是扩展Linux的实时性能。一般来说,对Linux实时性的扩展可以从两方面进行: 向外扩展和向上扩展。向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多。目前的开发所面向的设备一般仅限于较简单的有实时要求的串/并口数据采集、浮点数据计算等,而像实时网络这样实时系统的高级应用还需进一步的发展。向上扩展是扩充Linux内核,从功能上扩充Linux的实时处理和控制系统。如嵌入式系统RT-Linux,它的基本原理是将Linux的内核代码做一些修改,将Linux本身的任务以及Linux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务,即在实时任务存在的情况下运行实时任务,否则就运行Linux本身的任务,实时任务不同于Linux普通进程,它是以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在的,需要运行实时任务的时候,将这个实时任务的内核模块插入到内核中去,实时任务和Linux一般进程之间的通信通过共享内存或者FIFO通道来实现。

    改变Linux内核的体系结构

    ---- Linux的内核体系采用的是Monolithic,在这种体系结构中,内核的所有部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高了系统的响应速度,实时性好并提高了CPU的利用率,但在系统比较大的时候体积也比较大,与嵌入式系统容量小、资源有限的特点不符合。而另外一种内核体系结构MicroKernel, 在内核中只包括了一些基本的内核功能如创建和删除任务、任务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等部分都是在用户内存空间运行。这种结构虽然执行效率不如Monolithic内核,但大大减小了内核的体积,同时也极大地方便了整个系统的升级、维护和移植,因此更能满足嵌入式系统的特点需要。为此,为使嵌入式Linux的应用更加广泛,可以考虑将Linux目前的Monolithic内核结构中的部分结构改造成MicroKernel体系结构。通过这种折中办法,可以使得到的Linux既具有很好的实时性,又能满足嵌入式系统体积小的要求。

    完善Linux的集成开发环境

    ---- 提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。在Linux系统中,具有功能强大的gcc编译器工具链,使用了基于GNU的调试器gdb的远程调试功能,一般由一台客户机运行调试程序调试宿主机运行的操作系统内核; 在使用远程开发时还可以使用交叉平台的方式,如在Windows平台下的调试跟踪器对Linux的宿主系统做调试。但是,Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距。因此,要使嵌入式Linux在嵌入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和完善。

    嵌入式Linux的发展及应用前景

    ---- 根据一家专门进行嵌入式Linux系统信息发布的网站http://www.Linuxdevices.com的调查,有52%的用户决定在未来24个月内使用Linux作为嵌入式系统的开发原型,而只有21%的人仍然使用专有操作系统,19%的人仍然使用Windows系列操作系统做嵌入式系统开发。这充分说明了利用Linux开发嵌入式系统的生命力。由于Linux嵌入式系统的强大的生命力和利用价值,越来越多的公司和大学都不同程度地表现出对它的研究兴趣。

    ---- 蓝点软件公司已经将嵌入式应用确立为公司未来的业务发展方向,并且成立了蓝点软件(北京)研发中心,主要研发方向是为互联网接入设备、机顶盒、Web TV和瘦客户机开发嵌入式操作系统,目前蓝点软件公司已经为Intel、美国国家半导体、Cirrus Logic、Winbond和Toshiba等厂商提供了蓝点嵌入式Linux操作系统。

    ---- 博利思公司是专门开发嵌入式Linux操作系统的厂商,目前是为IA设备和信息家电的嵌入式芯片提供操作系统。2001年,博利思的主要研发目标是优化该操作系统,重点是为系统增加实时的电源管理功能和嵌入式浏览器,并且提供完善的开发工具。

    ---- 共创软件联盟是嵌入式Linux操作系统应用领域中不可忽视的一股力量,该联盟由国家“863计划”智能计算机专家组牵头,联合国内数十家软件企业、科研机构和大专院校,目标产品是机顶盒和PDA。该联盟非常明确地将自己定位于Linux操作系统供应商,继2000年推出CC-Linux 1.0版之后,2001年将推出2.0版。国外的开发如火如荼,国内的开发也不甘示弱。“863计划”重点支持项目中就有使用Linux作为嵌入式系统开发的方向。除此之外,中科红旗、中软等公司也同样将嵌入式系统的开发作为自己的主要发展方向之一。

    ---- 由于Linux具有对各种设备的广泛支持性,因此,它能方便地运用于机顶盒、IA设备、PDA、掌上电脑、WAP手机、寻呼机、车载盒以及工业控制等智能信息产品中。与PC相比,手持设备、IA设备以及信息家电的市场容量要高得多,因此,众多Linux厂商把发展的重点放在嵌入式应用领域也就不足为奇了。相信嵌入式Linux在不久的将来将成为嵌入式系统领域的一朵奇葩。

    发布人:netbull 来自:微电脑世界