收缩包装巨头之战

作者:Don Marti

嵌入式 Linux 发行版有很多共同之处。不仅仅是因为它们都基于 Linux 内核和常用的自由软件;在嵌入式 Linux 成为商业现实的短暂时间内,许多供应商都添加了令人印象深刻的专业功能集。

虽然有数十种专注于特定领域的嵌入式 Linux 发行版,但在此次综述中,我们关注的是通用软件包,它们包括开发工具,并支持多种目标架构,旨在用于开发不仅仅一种产品类别。我们将在以后的文章中更仔细地研究针对单一任务或单一 CPU 的发行版。

所有嵌入式供应商的一个重要竞争对手是自制方法——从 PC Linux 开始,进行交叉编译、打补丁和精简,使其满足嵌入式需求。为什么要选择嵌入式发行版?这取决于您,但许多嵌入式发行版确实提供了增强的功能。

镜像构建器

嵌入式 Linux 发行版的核心功能之一是镜像构建实用程序,它在主机系统上运行,让您可以为目标构建镜像,该镜像由您开发的软件包和发行版供应商提供的库存软件组成。与普通 Linux 发行版上的软件包管理器一样,这些实用程序看起来可以节省时间。

集成开发环境支持

嵌入式 Linux 发行版针对为传统上基于文本的 Linux 开发提供 IDE 的挑战,采取了几种不同的方法。您的开发团队在 IDE 方面的技能可能是决定是否选择提供熟悉 IDE 插件、许可专有 IDE 或开源 IDE 的发行版的关键因素。

一些嵌入式发行版旨在通过提供类似的开发环境,吸引传统操作系统(嵌入式和非嵌入式)的前用户。

实时内核增强

标准的 Linux 2.4 内核专为高性能 Web 服务和其他服务器应用程序而设计。(我们可以感谢 1999 年的 Mindcraft 报告,它将核心 Linux 开发团队的注意力集中在服务器性能上。)一些嵌入式应用程序对此没有问题,但许多应用程序需要可预测的实时行为,以至于所有主要的嵌入式 Linux 竞争者都提供某种实时增强功能——无论是底层的实时内核还是对常规内核的修改。我们将在即将发表的文章中详细介绍实时技术,其中许多技术可以作为内核补丁免费获得。

调试工具

一个在主机系统上运行并通过串行端口调试目标的 GUI 应用程序已成为嵌入式 Linux 开发的清单功能。无论是基于 GDB 还是源自 Linux 之前的开发人员软件包,嵌入式 Linux 发行版都包含某种形式的这种潜在的节省项目时间的工具。

板级支持包

许多开发和评估板的预组装软件包可以帮助您快速启动开发环境。查看供应商网站以获取支持的板列表,因为他们每天都在添加更多。板级支持包包括从板的内核镜像到提示清单的所有内容。

开发者支持

每个嵌入式发行版都提供开发者支持站点以及培训和合同开发等附加服务。当然,如果不实际使用现代嵌入式 Linux 发行版进行开发项目,并了解供应商做出的不同选择如何影响您的实际工作,就很难评估像它这样复杂的东西,因此请关注未来的期刊,了解基于您正在考虑的嵌入式发行版的开发者成功案例。

嵌入式 Linux 发行版

发行版: BlueCat 公司: LynuxWorks URL: http://www.lynuxworks.com/products/whatisbcl.html 主机: Linux; Windows 98, ME, NT, 2000 目标: x86, PowerPC, SH-3, ARM/SA, XScale, MIPS

BlueCat 与公司较早的专有操作系统 LynxOS 共享许多开发工具,因此对于从该环境转向 Linux 的开发人员来说,这可能是明显的选择。对于高可用性 CompactPCI 系统,BlueCat 提供 Messenger TCP/IP over PCI 工具包。BlueCat 还包括免费/开源 Java 实现 Kaffe。

Microsoft Visual Studio 用户可以安装名为 VisualLynux 的插件,以便在 Visual Studio 中为 BlueCat 进行开发。VisualLynux 包括一个应用程序向导,可以自动创建骨架 C 或 C++ 项目,并为您提供希望开发以 Visual Studio 为中心的灵活性。甚至还有一个用于 GDB 的 TotalDB GUI 前端。

发行版: Embedix, Embedix RealTime 公司: Lineo URL: http://www.lineo.com/products/embedix/ 主机: Linux, Windows NT 目标: ARM, StrongARM, MIPS, Hitachi SH, x86, PowerPC

Lineo 提供多种 Linux 版本选择:Embedix、Embedix RealTime 或用于无 MMU 目标的 µClinux。Embedix RealTime 使用 RTAI(实时应用程序接口),它基于 RTLinux 方法,即具有单独的实时层。截至撰写本文时,Lineo 是唯一一家获得许可使用 Victor Yodaiken 的 FSMLabs 专利的双内核方法的全功能发行版。(该专利也已免费授权给根据 GPL 分发的软件。)

详尽的“Embedix RealTime 编程指南”解释了 RTAI 的内部结构,并以手册页的风格记录了其功能。

Embedix 镜像构建器,称为 Target Wizard,提供了使用 Lineo 的 LIPO 工具来分析系统上所有二进制文件中从共享库使用的符号,并从库中删除任何未使用的符号的选项。

虽然其他发行版记录了这样一个事实,即您仅仅为嵌入式 Linux 开发应用程序不会违反 GNU 通用公共许可证,但 Lineo 提供了一个名为 GPL Compliance Toolset 的工具,它将检查您的项目以审核是否符合 GPL 和其他自由软件许可证。

用于 Windows 的 Embedix SDK 包括 Metrowerks IDE,并且还提供用于 Linux 主机的 CodeWarrior。

发行版: Hard Hat Linux 公司: MontaVista Software URL: http://www.mvista.com/ 主机: Linux, Solaris, Windows (在 VMware 下运行 Linux) 目标: x86, PowerPC, StrongARM, XScale, MIPS, SH, ARM

Hard Hat Linux 是多项创新的发源地,除了 MontaVista 著名的抢占式内核补丁之外。Hard Hat 提供了广泛的 Linux GUI 环境选择,包括 Embedded Qt、Microwindows 和常规 X。MontaVista 还提供 IBM 的 VisualAge Micro Edition,这是一款功能齐全的 Java IDE,作为一种选择。

Hard Hat 基于订阅的开发者网站 Hard Hat Zone 提供最新的文档和关于板级支持、从传统嵌入式操作系统移植以及其他更新的注释。Hard Hat Linux 还支持用于将传统 Wind River pSOS 和 VxWorks 代码迁移到 Linux 的模拟环境。

Hard Hat 拥有令人印象深刻的基于 GDB 的工具集合,包括 ddd(数据显示调试器)和 kgdb(内核源代码级调试器)。

发行版: REDICE Linux 公司: REDSonic URL: http://www.redsonic.com/ 主机: Linux 目标: x86, PowerPC, StrongARM, ARM 7, MIPS

REDICE Linux 的调度器分为两个部分:内核空间中的调度程序和可以在内核空间或用户空间中的分配器。分配器实现调度策略,单个系统可以为需要不同调度策略的进程提供多个分配器。用于替换和开发新分配器的框架为需要特定调度策略的开发人员提供了灵活性。

一个名为 RED-Probe 的监控工具可以帮助绘制任务的执行时间,并验证您选择了正确的调度策略。RED-Builder,软件包管理工具,与开源 KDevelop IDE 集成;您可以轻松地将库存软件包与您在 KDevelop 下开发和构建的软件包结合起来。

Don Marti 是 Embedded Linux Journal 的主编以及硅谷 Linux 用户组的副总裁。他是 pigdog.org 的 “当你在技术辩论中失败时要说的话” 中的第八项。

电子邮件:dmarti@ssc.com

加载 Disqus 评论