Inder Singh 访谈

我第一次见到 Singh 博士是在纽约市参加 LinuxWorld 的时候。他非常热情、说话轻声细语且知识渊博。他对工作的热情显而易见。在早餐时,我们讨论了嵌入式 Linux 的未来、BlueCat Linux 1.0 的发布以及一般的 Linux。Singh 博士是 LynuxWorks 的首席执行官兼董事长,该公司专注于为 OEM 和更广泛的领域提供嵌入式应用。我在七月初与他谈了关于当前和未来嵌入式 Linux 世界的状况。
LJ: 是什么让您选择了 Linux?您希望看到 Linux 添加哪些工具/开发?
Inder: 在 LynuxWorks(前身为 Lynx Real-Time Systems),我们一直都是实时和嵌入式系统领域开放标准的坚定支持者。我们最初从头开始实现了一个实时操作系统 (RTOS) LynxOS,它与 UNIX 高度兼容(就像今天的 Linux 一样),并且我们在 POSIX 标准化工作中发挥了先锋作用。我们是第一个实现 POSIX 实时扩展和 POSIX 线程的公司,这些扩展和线程在今天的大多数 UNIX 系统中都得到了广泛应用,而 LynxOS 是第一个获得 POSIX 认证的非 UNIX 系统。
现在,Linux 已经崛起成为我们都希望 UNIX 成为的样子,一个 POSIX 兼容的开放系统,它可以从众多供应商处获得,并在各种硬件平台上使用,并迅速获得广泛的软件支持。
因此,Linux 对我们来说是一个巨大的机遇,也是我们开放系统战略的自然演变。LynxOS 已经是一个 POSIX 兼容的、硬实时的操作系统,可以扩展到非常小的 footprint(最小代码大小 32 KB)。而且 LynxOS 在许多方面都比任何其他 RTOS 更接近 Linux。作为一个 POSIX 认证的 RTOS,它在源代码级别上与 Linux 高度兼容。
此外,LynxOS 使用与 Linux 相同的开发环境,因为两者都基于 GNU 工具链。LynuxWorks 的客户经常使用来自 Linux 环境(以及来自其他 UNIX 系统,如 Solaris)的大量应用程序代码,并将它们移植到 LynxOS。这通常只需要很少的移植工作,只需重新编译和构建即可。同样,Linux 设备驱动程序也很容易移植到 LynxOS 上运行。
LynxOS 内核提供了一个高度可扩展、完全可抢占的硬实时内核,专门为实时嵌入式系统设计。然而,LynxOS 发行版的大部分非内核部分都是基于开源技术的,并且已经非常接近 Linux。这包括 GNU C/C++ 编译器工具链、X-windows、TCP/IP 网络软件、大量 BSDI 实用程序、Samba 和 Apache。LynuxWorks 已经深入参与并非常熟悉开源模式。
因此,对于我们来说,成为第一个拥抱 Linux 的成熟 RTOS 供应商是一个自然的步骤。作为我们去年 11 月宣布的 Lynx Linux Initiative (L2I) 的一部分,我们推出了 BlueCat,这是一个专门为嵌入式应用量身定制的 Linux 版本,它建立在我们过去十年服务嵌入式客户的经验和基础设施之上。与此同时,我们决定发展我们的 LynxOS 技术,将 Linux 的多方面优势带给 LynxOS 用户。未来版本的 LynxOS 将具有与 Linux 的完全二进制兼容性。此举的目标是确保在 Linux 上运行的二进制可执行文件可以直接加载并在 LynxOS 系统上执行(当然,在相同的 CPU 架构上),而无需重新编译或移植。
LJ: 您能否简要谈谈使用 Linux 的优点和缺点?
Inder: 对于嵌入式领域来说,它非常分散,并且充斥着专有的操作系统解决方案,Linux 首次提供了开放的、多供应商平台的潜力,并拥有爆炸式增长的软件和硬件支持基础。
开源社区的开发模式,以及 Web 在其中发挥的关键作用,一直是 Linux 质量和健壮性以及其受欢迎程度的关键,这将继续是一个主要的优势。在嵌入式市场中,免版税的性质使其对高产量、成本敏感的应用(如许多新兴的“后 PC”设备类型的产品)非常有吸引力。源代码的广泛可用性和庞大且不断增长的基于 Web 的开发者社区,有助于快速支持新的半导体设备,包括移植到新的 CPU 架构。这使得 Linux 成为跟踪技术曲线的重要工具。
越来越多的精通 Linux 的程序员、顾问和服务机构是一个很大的优势。
Linux 内核本身是为通用用途而开发的,其持续开发很可能受到服务器领域需求的驱动,特别是与 Solaris 和 NT 竞争的向上扩展能力。因此,像 LynuxWorks 和其他公司这样的嵌入式 Linux 供应商将负责提供为嵌入式用途量身定制的发行版。这些供应商正在解决交叉开发环境、嵌入式系统工具以及对嵌入式世界特有的各种硬件配置的支持等领域。这种嵌入式版本的 Linux 将满足嵌入式应用的重要子集的需求。然而,许多嵌入式应用需要硬实时性能或更小的 footprint,而这些一直是专有 RTOS 的领域。对于一个为不同目的而设计的实现,你只能做这么多。LynuxWorks 正在通过其独特的支持 Linux API 和 ABI 的 LynxOS 方法,将 Linux 的优势扩展到此类应用,LynxOS 从一开始就是为此类应用而开发的。开放标准的最好之处之一是,你可以拥有来自不同供应商的多种实现,以满足不同群体的需求。
LJ: 您希望看到 Linux 添加哪些工具/开发?
Inder: 一个定义明确的硬件抽象层 (HAL) 将使 Linux 更容易移植到各种不同的 CPU 架构和硬件平台。这对于嵌入式系统尤为重要,但对于服务器领域也很有帮助,因为世界正在超越 Wintel 架构。在 LynxOS 中,我们使用我们称之为 CSP/BSP(芯片支持包/板级支持包)的架构,它将与 CPU 相关的硬件依赖代码以及板级支持外围设备的代码,与操作系统其余部分的硬件独立代码分离开来。
LJ: 你们最近将公司名称从 Lynx 改为 LynuxWorks。为什么?您如何解释独特的拼写?
Inder: 名称更改清楚地表明了我们对 Linux 作为我们公司战略方向的承诺。有趣的是,我们之前的名称 Lynx,在 Linux 之前就存在了,通过添加一个 “u” 变成了 Lynux。独特的 “y” 拼写强调了我们对当前 LynxOS 技术的持续承诺,这是我们将 Linux 的优势带入嵌入式世界战略中不可或缺的重要组成部分。
我们对嵌入式 Linux 采取了独特的方法,为我们的客户提供了两种内核选择:BlueCat,这是我们为嵌入式应用量身定制的开源 Linux 发行版;以及 LynxOS,我们与 Linux 兼容、符合 POSIX 标准的世界一流的实时操作系统 (RTOS) 技术,在要求苛刻、任务关键型应用中拥有十年的良好记录。
双操作系统方法为我们的客户提供了选择和灵活性,使我们能够将 Linux 的大部分优势带给广泛的应用,包括传统上仅由嵌入式 RTOS 服务的应用。
从嵌入式的角度来看,你可以从两个方面看待 Linux:
作为一种优秀的开源操作系统技术,可以适应许多嵌入式应用;以及
作为软件的开放标准平台,该软件可以在 Linux 上运行,由 Linux API 和 ABI 定义。这两个方面对于 Linux 当前和未来的成功都非常重要。
前者与 Linux 今天的地位有很大关系,但后者,即 Linux 作为不断增长的开源以及商业应用平台,特别是,将使 Linux 对计算机行业产生最大的影响,尤其是在嵌入式行业。
Linux 保持其势头并在计算机行业产生许多支持者所希望的巨大影响的关键在于,它被广泛接受为应用程序的开放标准平台。
Linus Torvalds 选择实现 UNIX 接口而不是简单地创建一个新的操作系统,以及 Linux 在很大程度上符合 POSIX,这在很大程度上促成了它的流行,并进一步巩固了其作为开放标准的地位。
在嵌入式世界中,Linux 的这一方面尤其重要,因为这是一个如此分散的行业,没有任何类型的标准或领先平台。大约一半的嵌入式设计仍然使用内部操作系统,而领先的商业 RTOS 产品仅占新嵌入式设计的一小部分。因此,嵌入式世界缺少像围绕 DOS 和 Windows 为桌面开发的软件行业那样强大的软件行业。嵌入式开发者做了很多重复发明轮子的工作,并且从头开始开发更多的软件,而不是像他们的主流同行那样在现有工具和应用软件的基础上构建。
Linux 作为开放标准,有可能成为促进嵌入式软件行业发展的缺失平台。随着嵌入式应用变得越来越复杂,嵌入式应用和主流应用之间的界限正在模糊。因此,越来越多在 Linux 上可用的主流软件已经对嵌入式开发者有用。
LJ: 祝贺您被任命为最近成立的嵌入式 Linux 联盟的董事会成员。您认为自己将在联盟中扮演什么角色?是在技术方面发挥更大的作用,例如开发标准等,还是在营销/推广方面发挥更大的作用,例如让 OEM 考虑将嵌入式 Linux 作为平台?
Inder: 谢谢。
我坚信 Linux 在嵌入式领域可以发挥巨大且有益的作用。事实上,Linux 最终将在嵌入式系统中发挥比在服务器中更大的作用,而且我相信嵌入式 Linux 联盟可以发挥非常有影响力的作用。
ELC 的初始重点主要放在推广、营销和传播领域,以提高人们对 Linux 优势的认识并创造市场势头,但它无疑会根据成员的意愿而发展。
对于嵌入式 Linux 社区来说,避免重蹈 “UNIX 战争” 的覆辙非常重要。ELC 可以在引导嵌入式 Linux 社区团结起来支持标准活动(如 Linux 标准库和 POSIX)方面发挥关键作用,尽管 ELC 目前不打算直接参与标准的开发。
LJ: 考虑到嵌入式 Linux 系统提供商之间也存在竞争,他们需要在哪些问题上达成一致?
Inder: 即使我们彼此竞争,也要避免碎片化,这确实是最重要的问题,我在回答您之前关于这个主题的问题时已经涵盖了。关键是将 Linux 确立为应用程序的开放标准平台,以促进围绕 Linux 的嵌入式软件行业的发展。广泛同意在 POSIX 和 LSB 组织的标准制定工作基础上构建,而不是创建新的 API 或标准来偏袒单个供应商,并认识到即使我们竞争并增加我们自己独特的价值,支持 Linux 作为开放标准而不是专有的单供应商解决方案符合我们的共同利益,这是我们都应该努力的方向,以避免重演过去十年发生在 UNIX 身上的事情。
对于嵌入式 Linux 提供商来说,成为开源社区的优秀成员也很重要,为开源代码库做出有意义的贡献,并遵守开源规则的字面意思和精神。我对此深信不疑,即使在 LynuxWorks,我们既提供开源产品,也提供授权产品。
LJ: 关于嵌入式 Linux 部署:考虑到目前对 Windows CE/Windows Pocket PC 等操作系统的偏好,手持设备领域的嵌入式 Linux 前景如何?LynuxWorks 已经或计划利用的其他主要嵌入式 Linux 领域有哪些?
Inder: 尽管 PalmOS 目前占据主导地位,并且微软大力推广 Windows CE 和 PocketPC,但我仍然相信 Linux 可以在手持设备领域占据重要地位。整个 “后 PC 设备” 领域仍处于不断变化的状态,在未来一两年内,各种新型互联网连接设备即将涌入市场。作为一个由众多供应商支持的开放系统,Linux 是一个非常有吸引力的候选者,事实上,我们正在合作的许多大型供应商正在围绕 Linux 设计许多下一代产品。低廉的版税成本(不能再比零更便宜了!),不受单一供应商支配的自由,以及庞大的潜在附加软件开发者社区,使 Linux 成为非常有吸引力的选择。
除了这个后 PC 设备领域中新兴的应用之外,我们还在利用我们基于 Linux 的力量来解决汽车、销售点终端和无线市场,以及广泛的互联网和通信基础设施领域、航空航天和军事工业以及仪器仪表领域。事实上,我对 Linux 在我们一直关注的所有市场中获得的广泛兴趣感到惊喜。
LJ: Linux 的标准 C 库是 GNU C 库,或 glibc,它相当大。(我电脑上的 libc-2.1.3.so 几乎有 900K,而静态链接的 “hello world” 超过 200K。)嵌入式 Linux 供应商如何在保持嵌入式代码小巧的同时,保持大量贡献者和测试者的优势?
Inder: 这是嵌入式 Linux 供应商可以通过提供更多可配置性和更大 footprint 控制的工具来增加特殊价值的领域之一。正如您的问题清楚表明的那样,这不仅适用于内核,还适用于编译器、库和环境的其他部分。在库的情况下,目标是仅包含给定系统所需的最小代码量,并减少加载任何不需要的代码。
LJ: 每个人都在谈论防止碎片化,以至于防止碎片化的策略似乎也在碎片化。防止碎片化的唯一真正方法是什么?
Inder: 一个操作系统的成功更多地取决于它产生的应用程序支持,而不是任何其他单一因素。因此,我认为防止碎片化的唯一真正方法是整个行业坚定地致力于确保对 “Linux 应用程序” 的构成有明确的定义,并且应用程序开发者确信,他们的应用程序的单一版本将在任何 Linux 系统上运行。
Linux 标准库 (LSB) 项目,其具体目标是 “开发和推广一套标准,以提高发行版之间的兼容性,并使软件应用程序能够在任何兼容的 Linux 系统上运行”,旨在防止这个问题。它值得应用程序开发者和用户的强烈支持。
LJ: 有大量的廉价板卡、免费的开发者工具和关于嵌入式 Linux 的互联网讨论。这简直就是一个虚拟玩具店。如果我是一个 Linux 爱好者,想要制作一个很酷的玩具,比如一个用于汽车的嵌入式互联网立体声音响,或者一个用于我的模型飞机的自动驾驶仪,我应该从哪里开始?
Inder: 首先,我将查看我尝试构建的整个系统的要求是什么。然后,我将选择一个基本的硬件平台和一个嵌入式 Linux 版本。
对于爱好者应用,我建议从一个廉价的奔腾 PC 主板开始,也许是许多外形尺寸更小的变体之一。对于商业应用,人们还会探索其他架构,包括片上系统 (SOC) 解决方案,这些解决方案提供了各种不同的辅助处理功能(即,通信控制器、显示控制器等),这些功能正在添加到核心芯片上,并满足各种嵌入式系统需求。
接下来,继续关注商业应用而不是爱好者应用,我将找到一个 Linux 供应商,该供应商使用他们的嵌入式 Linux 产品充分测试了这种处理器技术。在标准 PC 上的可用测试得到了很好的支持,但在其他架构上则更 “零星”。我还会关注供应商的长期稳定性,以及他们是否通过了 ISO 9001 质量流程认证。此外,我还会关注供应商在未来十年内继续存在以提供支持和 Linux 产品的其他升级的可能性。大多数嵌入式系统的生命周期比标准 PC 的生命周期长得多。为长期解决方案找到合适的软件供应商通常对项目的成功至关重要。因此,在某些情况下,选择合适的处理器可能来自您首选软件提供商支持的平台列表。
我还将使用 Web 作为工具来查找解决方案所需的其他组件,例如数字调谐器和 Linux 驱动程序,以支持所需的硬件组件。这是使用 Linux 的巨大优势之一——基于 Web 的社区以及所有可用的有用硬件和软件解决方案,以及建议。
LJ: TiVo 在其产品手册中印刷了一份通知,声明任何想要获得其修改后的 Linux 内核副本的客户都可以写信到某个地址获得。这对于公司来说,既是履行其在 GPL 下的义务,又是建立黑客邮件列表的好方法。这是其他包含 Linux 的设备供应商将采用的计划吗?
Inder: 对于使用 Linux 作为其嵌入式软件操作系统的设备制造商来说,这是一个合理的解决方案,可以遵守 GPL 要求。只有在他们对 Linux 内核本身进行修改时,他们才需要这样做。如果他们只是使用像 LynuxWorks 这样的供应商提供的嵌入式 Linux 产品(如 BlueCat Linux),并在其上构建他们的嵌入式应用,而没有对内核进行任何更改(这是常态),那么这对他们来说就不是问题。嵌入式 Linux 操作系统供应商有责任提供为嵌入式应用定制 Linux 所做的所有更改的源代码。我们通过在我们的发行版中包含源代码来做到这一点,并且我们计划在我们的网站上提供源代码。
LJ: Linux 内核开发者正在努力解决可以即插即拔的设备问题,如 PCMCIA 卡和 USB 设备。您认为支持这些设备是否会使内核对于嵌入式系统来说过于复杂?您认为 “主流内核” 对嵌入式 Linux 开发者的需求有多大的响应?
Inder: 您将看到 USB 和 PCMCIA 接口和设备在嵌入式系统中的使用越来越多。支持此类设备的动态插拔至关重要,特别是对于嵌入式产品,您永远不应该需要重置或重启系统。对于嵌入式系统来说,重要的是要确保,与其他许多设施一样,这是可配置的,并且无论您是否需要该设施,您都不会携带代码。
这个问题比 USB 和 PCMCIA 更广泛。任何嵌入式系统的动态重新配置都是可取的,无论是用于检测系统启动时的设备,还是能够即插即拔设备。这通常允许系统开发者拥有一个核心内核(用于系统支持和配置控制方面的考虑),特别是在客户可能需要最小内存 footprint 的嵌入式设备中。在这种情况下,只有在检测到时,才将所需的内核驱动程序和应用程序添加到系统中。在某些情况下,嵌入式开发者正在考虑将所需的驱动程序放在插入的硬件上,并且在设备安装时,驱动程序从硬件中提取并安装到系统中。这种级别的动态重新配置提高了整个系统的实用性。
LJ: 是否有计划资助更多可以供嵌入式 Linux 开发者使用的开源软件?例如,媒体压缩和解压缩或语音和手写识别等工具将会派上用场。
Inder: 我们最近宣布将我们的 LynuxWorks Messenger 技术贡献给 BlueCat Linux 开源社区,以建立分布式和高可用性 (HA) 系统中高级 CompactPCI 板间消息传递的新标准。LynuxWorks Messenger 作为内核扩展和相关的应用程序编程接口 (API) for messaging 实现,该技术使 CPU 板(系统板和非系统板)能够在 CompactPCI 背板上以对等方式交换信息。
我们还向开源社区贡献了多线程扩展到 GDB 调试器。
我们完全打算继续支持开源软件社区并做出重大贡献。
LJ: 非常感谢您抽出时间。

Don Marti 是Linux Journal的技术编辑。可以通过 dmarti@linuxjournal.com 联系到他。