《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 专家观点:你必须了解的嵌入式Linux特性

专家观点:你必须了解的嵌入式Linux特性

2009-08-04
作者:来源:电子工程专辑

    如今,Linux正广泛应用于各种嵌入式设备的开发中,如数字电视、视讯转换盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和网络网关。它尤其适合具有先进网络功能、大量设备驱动程序的数字家庭和家庭网络。除了嵌入式设备,Linux还支持企业级设备,如服务器和路由器。

 

    此外,Linux在行动设备中也获得了青睐。市调机构In-Stat的报告显示,到2012年,中国基于行动Linux的智能手机出货量将达到中国智能手机总出货量的25.4%。


    相较其它典型的专有商用OS,Linux蓬勃发展的原因在于其是开原始码、成本低、使用快速安全。与其它OS相较,它能够更好地进行‘剪裁’,且只占用较小空间。利用Linux,再加上来自开放原始码社群的持续支持,工程师能够使用和控制原始程序代码。开放原始码社群是由熟悉Linux的工程师组成的大型社群。


不断改进的Linux核心


    然而,在面对特定嵌入式应用时,Linux仍存在许多挑战,如内存空间有限,或是需要实时确定性以及高安全性能的应用。而工具链的改善、新的除错工具和性 能、不断演变的标准化努力等,都继续提升Linux对于所有嵌入式应用的价值。在这其中,Linux核心的不断改进异常重要。


    Linux 核心是应用软件采用的标准Linux API和处理器系统(应用软件执行其上)底层硬件结构之间的接口。该核心是内部组件和外部可加载模块的复杂组合,为应用程序的执行提供全面和稳定的处理环 境,提供安全消除软件缺陷、在某种程度上防止硬件故障的能力。在开机循环期间,核心必须及时发现,并正确初始化核心系统处理器、系统内存、硬件驱动、视频卡、USB端口、网络卡和音讯处理器,而且要在开机循环期间提供是否成功的足够指示。


    维持如此复杂的程序代码收集很明显是一个 严峻的挑战。核心原始程序代码被划分为标准‘树’结构,这样子系统就能够更好地彼此隔离,有助于实现几个关键核心维护工作的分布。这种分工可大幅减少核心某 一部份产生重大变化对其他部份产生的影响。每个后续子系统的变更都将传达给主要维护者,最终到达Linux核心最上游的维护者。这些变更通常称为‘外挂程 式’,在标准格式下制作和应用。


    供货商和开发人员将他们的知识反馈到开放原始码社群以改进核心。Linux开放、分散的本 质,再加上背后强大的社群支持,使基于Linux的OS成为培养创新的良好选择。由于供货商和开发人员不断分享他们所学到的知识,因此存在这样的可能:当开发人员需要实现某种功能时,可以在Linux社群生态系统中找到并予以采用。


    商用Linux供货商做了很多工作使Linux成为嵌入式应用中更加可行和吸引人的操作系统。


商用vs.开放原代码


    当选择Linux OS时,嵌入式Linux开发人员有两个主要选择:‘免费’版本,开发人员可以下载有开放原代码授权的对象/原始程序代码;商业发行版,由不同公司维护和支持的商用产品。


    目前,大多数开发人员使用的都是免费发行版。市场研究公司VDC一份针对目前Linux使用者的2007年调查中有这样一个问题:请问您将在下一个项目中使用哪种Linux OS?结果高达71%的嵌入式系统工程师表示,愿意采用免费发行的Linux版本。

 


    图1:为下一个项目计划的Linux操作系统。

(资料来源:VDC/2007)


    由 于众多嵌入式开发人员将在下一个设计项目中选择Linux,因此,让他们体认到免费发行版本固有的局限性非常重要。这些局限包括:缺乏丰富的Linux工 具;相较竞争的实时OS来说占用更多空间;为满足实时要求最佳化Linux所面临的挑战;支持以及开发工具有限。也就是说,‘免费’意味着不花钱使用,但 并非零成本。


‘免费’≠‘零’成本


    除了决定使用商用或免费Linux版本,开发 人员还必须认识到其除错/开发工具的能力和局限。嵌入式SoC领域任何有意义的设计,都要求针对嵌入式领域的高度整合的软件开发工具。从编译器到应用各个 环节的开放原始码工具,都期望能创造良好的生产品质。开发人员期望这些工具能与更短的学习曲线无缝结合。


    充分发挥嵌入式 Linux免费发行版的优势,已经成为消费产品领域被广泛接收的现实。在这些市场上,产品执行率非常高,对程序代码的增加非常频繁,而且产品的销售成本至关 重要,所有这些都使得开放原始码模式极具吸引力。但是,人们通常希望开放原始码工具能够与生产品质密切相关,‘免费’和‘商用’并不同义。必须对核心和 SoC组件互动有深刻的了解,才能整合开放原始码/免费软件,并为处理器核心提供无缝除错环境的工具。因此,需要专业知识才能使目前的开放原始码工具顺利 工作。


    现在有若干种‘免费软件’除错解决方案,设计人员必须全面了解其局限性。例如,针对Linux核心最受欢迎的免费软件除错器是KGDB,但主要缺点是KGDB会要求重新编译核心。这对产品已经部署到现场的应用来说并不可行。修补核心还可能导入影响系统性能的程序代码变化。

 

    GDBServer 是另一个针对应用除错的颇受欢迎的免费软件除错器,但它也受到了严格限制。主要问题是缺乏对同时除错大量执行绪/进程的支持。随着除错的执行绪/进程数不 断增加,GDBServer性能迅速恶化,导致响应时间太慢,进而使目标系统出现故障。其它问题还涉及到:不能在相同的目标连接上除错驱动程序和应用;除 错设备驱动程序和除错共享库。了解特定应用的除错需求非常重要,应据此选择相应工具。


 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。