什么是嵌入式Linux?
Linux的性能、可靠性、灵活性和可升级性,与其支持多微处理器体系结构、硬件设备、图形支持和通信协议相结合,把Linux建成了一个日益流行的操作系统平台,它适用于大量的工程和产品。Linux的使用跨越了整个计算应用软件领域,从IBM的微型Linux手表,到手提设备(包括PDA和手提电话)、Internet上网工具、瘦客户机、防火墙、工业机器人技术、电话基础构造设备等,甚至是基于簇的超级计算机。
因为Linux的资源是开放的、免费的,所以很多变化、Linux的配置和它支持的软件部件都在发展,以此满足市场和适应Linux的应用软件的不同需求。现在有嵌入式版本和实时增强版本。尽管Linux最初是作为PC体系结构的操作系统,可现在它面向许多非x86 CPU,有或者没有内存管理单元,包括PowerPC、ARM、MIPS、68K甚至微控制器。而且更多的支持在一直在发展而会随时产生!
哪一个嵌入式Linux?
嵌入式Linux最有趣的一个性质是可充分选择。甚至是在一个给定的体系结构中,例如x86、MIPS或者PowerPC,选择范围也可能很广。因此,你怎样决定使用哪一种版本呢?
首先,认识到在同样的主题上,所有的Linux版本或多或少是有差异的,这很重要。也就是说,他们具有同样的基础部件,包括Linux内核、库、驱动程序、命令shells(命令处理器)、GUI、窗口框架和应用功能。
在这样的情况下,是什么使他们不同呢?版本间的差异通常集中在Linux包含哪些功能、增加了哪些模块和功能(开放资源的和私有的)、提供了哪些内核补丁和修改,以及如何管理安装、配置、维护和更新过程。这有多简单,例如,怎样建立一个与你的应用软件的独特需求相匹配的嵌入式Linux系统?
付费,还是不付费……
这是商业软件对抗非商业软件(开放资源)的问题。这对你和你的公司都可能是个重要的哲学论题。你(或你的公司)可能想限制与Linux相关的活动来使用专有的开放资源软件,因此没有许可的限制或权威的需要,或者因此你可以为你的消费者灵活供应源代码。你也可以采取更实际的方法,使用(有时候是许可的)与你的应用软件需求最匹配的任何软件部件--无论私有还是开放资源。
无论你决定使用纯开放资源,还是混合开放和私有软件部件,在嵌入式应用软件中使用Linux的每种方法都未必是完全"免费"的。你需要花费时间和资源来创建自己的执行版本,或花钱购买工具和/或者已得到许可的成分,或为外部设备和支持耗费金钱。
也就是说,你可以免费下载大量优秀的开放资源工具和功能,而且,如果你选择使用优秀的私有工具和功能,你必须获得许可或从提供者那里购买。记住:提供"商业的"嵌入式Linux版本的公司通常拥有高级的专门技术和训练有素的职员,准备和等待帮助你完成你的计划--有偿的。
付钱给一个"商业的"嵌入式Linux提供者有许多好处,包括开发工具、有用的强大的功能。当然,大多数嵌入式Linux版本的商业提供者正忙于投资开发工具和服务,以区别他们的Linux产品,这是为了提高他们作为建立基于Linux的嵌入式应用的公司的合作者的身份。在很多情况下,这些商业嵌入式Linux版本提供商也对有限的开放资源作出了重要的贡献。
寻找解决方案
整体来看,有很多选择--开放资源和私有资源--他们都属于以下类型:
Linux内核执行 - 广泛的Linux外形和尺寸,包括减少脚本执行、不需要内存管理单元(MMU)的版本、为性能敏感的应用软件(例如媒体播放机、IP电话和机器人技术)增进和增加支持"硬"、"严格"或"软"实时响应。
窗口和图形环境 --支持嵌入式应用软件的图形显示需要的模块、增加、驱动程序和功能,包括图形用户接口(GUI)工具包、窗口管理器和大小、外观、特性和容量可变的浏览器。
驱动程序和功能 --支持独特的硬件、软件和基于Linux的嵌入式应用软件的功能需求的软件,包括电话设备、多媒体设备、移动计算机、无线性能、数据获得和控制等。
工具 -- 简化和自动生成Linux配置过程(这个过程调整了特殊嵌入式系统的需求)的软件,帮助开发者调试和调整系统配置,提供远程系统维护和支持等。