嵌入式 Linux 软件包概览

作者:Rick Lehrbaum

由于 Linux 以源代码形式公开且免费提供,因此为了满足广泛的市场和应用需求,Linux 发行版演变出了许多变体和配置。其应用范围从包括 PDA 和手机在内的手持设备,到互联网设备、瘦客户端、防火墙、电话基础设施设备,甚至超级计算机集群。有小尺寸版本和实时增强版本。尽管 Linux 起源于 PC 操作系统,但现在已经移植到许多非 X86 CPU 上,无论是否带有内存管理单元,包括 PowerPC、ARM、MIPS、68K 甚至微控制器。而且,还在不断涌现新的支持!

关于嵌入式 Linux 最有趣的特性之一是选择的丰富性。即使对于给定的架构(例如 PowerPC),也往往有大量的可用替代方案。那么,您如何决定使用哪个发行版呢?这取决于具体情况。

首先,重要的是要认识到所有 Linux 发行版或多或少都是同一主题的变体。也就是说,它们往往是相同基本组件的集合,包括 Linux 内核(当然)、驱动程序、命令 shell(命令处理器)、GUI 和窗口框架、实用程序和库。

那么,是什么使它们与众不同呢?发行版之间的区别通常围绕着包含数百个 Linux 实用程序中的哪些、添加了哪些模块或实用程序(包括开源和专有)、内核补丁和修改,以及安装、配置、维护和升级过程的管理方式。例如,构建一个与您的应用程序的独特需求紧密匹配的小尺寸 Linux 系统有多容易?

然后是专有开源软件的问题。这对于您或您的公司来说可能是一个重要的哲学问题。您(或您的公司)可能希望将您与 Linux 相关的活动限制为仅使用开源软件,这样就不会有许可限制或版税要求,并且您可以向您的客户提供源代码。或者,您可能更喜欢务实的方法,使用(有时需要许可)最符合您的应用程序需求的任何软件组件——无论是专有软件还是开源软件。

无论如何,无论您决定使用纯开源,还是混合使用开源和专有软件组件,在嵌入式应用中使用 Linux 都不太可能完全“免费”。您要么投入资源来创建自己的实现,要么花钱购买工具和许可组件,要么支付外部服务和支持费用。

也就是说,当然有各种各样的优秀开源工具和实用程序,您可以免费下载;而且,也有优秀的专有工具和实用程序,您需要获得许可或购买。此外,请记住,提供“商业”嵌入式 Linux 发行版的公司通常拥有高水平的专业知识,并拥有训练有素的员工,随时准备在您的项目中为您提供帮助。向“商业”嵌入式 Linux 供应商之一付款可能有很多优势,包括开发工具、有用的实用程序——当然还有支持。专有嵌入式 Linux 供应商公司正在积极投资开发工具和服务,以使其 Linux 产品与众不同,和/或提升其作为构建将内置 Linux 的嵌入式应用程序的公司的潜在合作伙伴的地位。在许多情况下,他们也在为开源软件的整体资源库做出贡献。

总的来说,在以下这些通用领域中,有许多选择——包括开源和专有——

  • 用于自动化和简化生成针对特定嵌入式系统要求进行调整的 Linux 配置过程的工具。

  • 图形用户界面 (GUI)、窗口环境和浏览器,它们在大小、外观、功能和能力方面各不相同。

  • 支持各种应用特定需求的驱动程序和实用程序,包括电话设备、多媒体设备、移动计算、无线功能等。

  • Linux 内核增强功能和附加组件,支持诸如流媒体、IP 电话、机器控制等应用的“硬实时”、“固实时”或“软实时”性能要求。

接下来是许多当前可用的商业和非商业嵌入式 Linux 解决方案来源的简要描述。请记住,新的项目和产品几乎每天都在涌现。因此,LinuxDevices 维护了一套不断更新的在线嵌入式 Linux 快速参考指南,可供公众免费访问。

“商业”嵌入式和实时 Linux 发行版

Coollogic: Coollinux—Coollinux AE (Appliance Edition) 结合了嵌入式 Linux 和 Java 技术的强大功能,为下一代互联网设备提供操作系统。http://www.coollogic.com/

Coventive: XLinux—功能齐全的嵌入式 Linux 内核,可以配置为小至 143KB,适用于信息设备和嵌入式设备。支持:586、686、MediaGX、STPC、StrongARM、SH3/SH4、PA-RISC、ARM-7 等。http://www.coventive.com/

Esfia: RedBlue Linux—一种用于无线通信解决方案的嵌入式 Linux 发行版,源自预发布版 Linux 2.4 内核。它具有典型的内核,尺寸为 400K 字节,并且支持带或不带 MMU 的处理器。http://www.esfia.com/

FSMLabs: RTLinux—FSMLabs 提供基于 RTLinux 技术的实时 Linux 发行版,结合了 Linux 内核和相关软件。MiniRTL 是一种小尺寸(适合一张软盘)实现,适用于资源受限的嵌入式应用。http://www.fsmlabs.com/

KYZO: PizzaBox Linux—一种基于 Linux 和 Samba 的文件、打印和 CD 服务器,旨在从 486(或更高版本)CPU 上的 6MB Flash ROM 运行。http://www.jrcs.co.uk/

Lineo: Embedix—一种基于嵌入式 Linux 的软件解决方案,专为嵌入式设备独特的速度、内存和存储要求而设计。支持各种带或不带 MMU 的 CPU,包括 X86、PowerPC、ARM、MIPS 等。包括对小尺寸、实时(基于 RTAI 或 RTLinux 的选择)和高可用性解决方案的支持。http://www.lineo.com/

LynuxWorks: BlueCat—一种开源 Linux 发行版,经过增强以满足嵌入式开发人员的要求,经过工程设计,可以根据嵌入式开发的要求进行配置,从小型设备到大型多 CPU 系统和高可用性应用。支持各种 CPU,包括 X86、PowerPC、ARM、MIPS 等。http://www.lynuxworks.com/

Mizi: Linuette—一种移动 Linux 操作系统,为移动设备提供组件、开发工具和专用内核,旨在满足智能手机市场的小尺寸要求。目标硬件环境是 18MHz ARM7 处理器、240x120 像素 LCD 显示屏、触摸屏和串行接口。该操作系统仅需要 2MB DRAM 和 4MB 闪存。http://www.mizi.com/en/

MontaVista: Hard Hat Linux—MontaVista Software Hard Hat Linux 交叉开发套件面向广泛的嵌入式 CPU 架构板和系统级平台,适用于互联网设备、便携式设备、网络设备、电话接口或其他嵌入式和普及应用。http://www.mvista.com/

PalmPalm: Tynux—一种针对互联网设备优化的嵌入式 Linux 解决方案,包括 MP3 播放器、视频播放器、互联网电视、PDA/手机、互联网电话、视频会议设备、可视电话等。http://www.palmpalm.com/

REDSonic: RedIce-Linux—一种实时 Linux 发行版,为实时性能提供多项增强功能,包括 RTAI 以及对 Linux 内核的调度程序和抢占算法的增强。http://www.redsonic.com/

TimeSys: Linux/RT—一种实时 Linux 发行版,提供多种方法来提高实时性能,包括资源内核、RTAI、Linux 内核调度程序、抢占和服务质量增强功能。http://www.timesys.com/

“非商业”嵌入式和实时 Linux 实现

ART Linux—Linux 的实时扩展(由 Youichi Ishiwata 开发),灵感来自 RTLinux,但根据其开发人员的说法,“提供某些优势”。http://www.etl.go.jp/etl/robotics/Projects/ART-Linux/

Embedded Debian Project—Embedded Debian Project 的目标是使 Debian GNU/Linux 成为嵌入式 Linux 的自然选择。http://www.emdebian.org/

ETLinux—一个完整的 Linux 发行版,旨在小型工业计算机上运行,尤其是 PC/104 模块。http://www.etlinux.org/

KURT—一种实时 Linux 实现,允许以数十微秒的分辨率调度事件。位于堪萨斯大学。http://www.ittc.ukans.edu/kurt/

Linux Router Project—Linux 的“以网络为中心的微发行版”,使其易于构建/维护路由器、访问服务器、瘦服务器、瘦客户端、网络设备和嵌入式系统。LRP 可以放在一张软盘上。http://www.linuxrouter.org/

Linux/RK—Linux 的“资源内核”增强功能,基于可加载内核模块,为应用程序提供及时、有保证和强制访问系统资源。位于卡内基梅隆大学。www.cs.cmu.edu/~rajkumar/linux-rk.html

LOAF—“Linux on a Floppy”发行版,可在 386 上运行,并且是 Linux 的一种实现,由内核和一堆免费实用程序组成。LOAF 支持各种网络协议,包括 lynx 浏览器、ftp、Telnet 和 ssh。http://loaf.ecks.org/

Linux-SRT—Linux 内核的扩展,提高了“软实时”应用程序(如多媒体)的性能,但不适用于硬实时应用程序(如控制航天飞机或核反应堆)的关键定时要求。http://www.uk.research.att.com/~dmi/linux-srt/

Linux-VR—该项目的目标是在 NEC VR 系列设备上支持 Linux,这些设备最初大多设计为运行基于 Windows CE 的手持计算机。http://www.linux-vr.org/

uClinux—Linux 2.0 内核的衍生版本,旨在用于没有内存管理单元 (MMU) 的微控制器。支持越来越多的处理器,包括 Motorola DragonBall (M68EZ328)、M68328、M68EN322、ColdFire、QUICC;ARM7TDMI;MC68EN302;Axis ETRAX;Intel i960;PRISMA;Atari 68K;以及更多,而且还在不断增加!http://www.uclinux.org/

uLinux (又名 muLinux)—Linux 的“完全配置、最小化、几乎完整、以应用程序为中心的微小发行版”,在意大利制造,可放在一张软盘上。http://sunsite.auc.dk/mulinux/

PeeWeeLinux—一个面向嵌入式设备的小型 Linux 发行版。该发行版试图尽可能轻松地在嵌入式平台上配置和安装 Linux 操作系统。http://www.peeweelinux.com/

QLinux—Linux 内核实现,为多媒体、数据收集等应用中的软实时 Linux 性能提供服务质量 (QoS) 保证。位于马萨诸塞大学。http://www.cs.umass.edu/~lass/software/qlinux/

RED-Linux—Linux 的实时版本,实现了短内核阻塞时间、快速任务响应时间、模块化和运行时可替换的 CPU 调度程序以及通用调度框架。位于加州大学欧文分校。http://linux.ece.uci.edu/RED-Linux/

RTAI—一个全面的实时应用程序接口,可用于单处理器 (UP) 和对称多处理器 (SMP),允许在许多硬实时应用程序中使用 Linux。作为一种选择,RTAI 的“LXRT”允许从 Linux 内存保护的用户空间内控制实时任务,使用 RTAI 的所有硬实时系统调用,从而产生软实时与细粒度任务调度的结合。RTAI 项目位于米兰理工大学航空航天工程系 (DIAPM)。AtomicRTAI 是一种小尺寸实现,适用于资源受限的嵌入式应用。http://www.rtai.org/

RTLinux—一个硬实时迷你操作系统,它将 Linux 作为其最低优先级的执行线程运行。Linux 线程完全是抢占式的,因此实时线程和中断处理程序永远不会被非实时操作延迟。最新版本的 RTLinux 支持用户级实时编程。MiniRTL 是一种小尺寸(适合一张软盘)实现,适用于资源受限的嵌入式应用。http://www.rtlinux.com/

ThinLinux—一种用于嵌入式和专用应用的 Linux 发行版,旨在在最小的 Intel 和 PC 兼容硬件上运行。http://www.thinlinux.org/

用于嵌入式设备的 GUI 和窗口环境(商业和非商业)

Century Software: Microwindows PDA Operating Environment—一个功能齐全的屏幕顶层、Web 浏览器、终端仿真器、弹出键盘和手写识别系统,作为开发和执行基于 Linux 的应用程序的基础,适用于 iPAQ 和其他 PDA。http://embedded.centurysoftware.com/

Lineo: Embedix UI—一种低尺寸、基于 HTML 的用户界面解决方案,适用于嵌入式设备。提供了一种简单的方法来创建美观的界面,同时在各种设备中添加功能;它非常适合受控内容的嵌入式设备,包括网络平板电脑、信息设备、信息亭、屏幕电话、机顶盒、销售点终端、家庭娱乐设备、工业自动化等。http://www.lineo.com/

Compaq: The Open Handheld Program—Compaq 建立了开放手持设备计划,以刺激手持设备(例如 PDA)的创新和研究。这项工作以早期 Compaq “Itsy” 袖珍计算机项目的成果为基础。目前,Compaq iPAQ 的开发 Linux 端口可供下载。http://www.handhelds.org/

The Microwindows Project—一个开源项目,旨在将现代图形窗口环境的功能带到更小的设备和平台。Microwindows 应用程序在 Linux 桌面机上构建和测试,并交叉编译用于目标设备。http://www.microwindows.org/

The TinyX Project—一个用于嵌入式系统的小尺寸 X Windows 系统服务器实现。它由 XFree86 核心团队的 Keith Packard 开发,SuSE 赞助。目标是创建一种在小内存尺寸下也能良好工作的东西,并且重要的是,在接近内存不足的情况下也要稳健。基于 TinyX 的典型 X Windows 系统服务器可以在 X86 CPU 中容纳在小于 1MB 的空间内。http://www.xfree86.org/

Transvirtual Technology: PocketLinux PDA Framework—一个基于 Linux 的 PDA 软件环境,将 Kaffe(Java 的“净室”实现)与嵌入式 Linux 集成,并提供对 XML 的内置支持。PocketLinux 还包括一个集成的帧缓冲图形库,无需资源消耗大的 X Window 系统。http://www.pocketlinux.org/

Trolltech: Qt/Embedded—Qt/Embedded 具有与现有 Qt/X11 和 Qt/Windows 产品相同的 API。但是,Qt/Embedded 不是基于 X11 的,因此,它的内存需求比 X11 低得多。通过选择功能,内存需求可以在 ROM(Intel X86)中从 800KB 调整到 3MB。http://www.trolltech.com/

Trolltech: Qt Palmtop Environment—一个完整的 PDA Linux 软件包,包括窗口系统、窗口管理器、应用程序启动器、输入法(虚拟键盘等)、GUI 工具包和有用的应用程序集合,所有这些都使用标准 Qt API 编写——与 Qt/X11 和 Qt/Windows 上找到的 API 相同。http://www.trolltech.com/

The ViewML Project—一个免费提供的开源 Web 浏览器,专门针对嵌入式 Linux 平台。目前,ViewML 及其界面需要 2.1MB 的 RAM,磁盘映像仅为 760K。http://www.viewml.org/

A Survey of Embedded Linux Packages
Rick Lehrbaum (rick@linuxdevices.com) 创建了 LinuxDevices.com “嵌入式 Linux 门户”,该门户最近成为 ZDNet Linux 资源中心的一部分。Rick 自 1979 年以来一直从事嵌入式系统领域的工作。他共同创立了 Ampro Computers,创立了 PC/104 Consortium,并在启动嵌入式 Linux Consortium 方面发挥了重要作用。
加载 Disqus 评论