Red Hat 公司 Michael Tiemann 访谈

作者:Dan Wilder
An Interview with Red Hat's Michael Tiemann

Red Hat 首席技术官 Michael Tiemann 因其在 g++gdb 方面广泛而重要的工作而闻名。Michael 是 Cygnus Support 的创始成员和前任 CTO,在 Red Hat 收购 Cygnus 时加入了 Red Hat。他现在担任 Red Hat 的 CTO。

LJ:请谈谈 Red Hat 和嵌入式系统。

Michael:首先,请允许我谈谈我今年所做的一个主题演讲。它是基于 Jared Diamond 的著作 Guns, Germs, and Steel (《枪炮、病菌与钢铁》),我不知道您是否听说过这本书。它在 1998 年获得了普利策奖。他是一位集人类学家、语言学家和生物学家于一身的学者。他运用其广泛的科学方法来解答有趣的问题,例如“为什么是西班牙人扬帆前往新世界并征服了大型文明,而不是反过来?”

关于嵌入式系统,我今天思考最多的问题是,“开源会改变嵌入式,还是反过来?” 这个问题之所以有趣,是因为开源所具有的活力——易于下载的软件,一个庞大的开发者社区共享可以轻松下载、安装和修改的软件——与我们在传统的嵌入式系统世界中所认为的非常不同,在传统的嵌入式系统世界中,程序存储在 ROM 等介质中。有趣的问题将是,“嵌入式系统世界的约束将在多大程度上改变开源的编程方法?” 在这个方向上有很多有趣的事情正在发生。或者,反过来:开源实际上会改变人们设计嵌入式系统的方式吗?我可以给您举几个正反两方面的例子。

其中一个例子是 eCos,即嵌入式可配置操作系统 (Embedded Configurable Operating System)。eCos 的设计旨在高效地适应嵌入式系统的各种约束。我们为 eCos 提供的配置技术实现了源代码级配置。这意味着,开发者无需接触实际的源代码来使其符合他们的需求,而是可以使用工具来控制 200 多个不同的配置点。结果是,您可以交付一个实时操作系统,其内存占用大小取决于应用程序的需求和假设。

有些应用程序已经实现了自己的协作式线程模型,并且已经实现了其他类似于当今传统实时操作系统提供的资源分配例程。在应用程序完成所有工作并且他们只需要硬件抽象层的情况下,eCos 可以以小于 1,000 字节的内存占用交付该功能。但是,如果您想启用内核的调度功能,或者您想启用内存管理,或者您想启用文件系统的存在等等,您可以逐步且很大程度上独立地完成所有这些操作,并将其扩展到通常在高端达到 100 或 200 千字节。

我们有客户无法将传统的专有实时操作系统配置到小于约 55 千字节的大小。在 eCos 中,在这种确切的客户情况下,客户的设计要求是 24K 的内存占用以适应片上 ROM,eCos 通过利用其源代码级可配置性实现了 11K。

因此,在嵌入式系统的要求正在改变开源形态的情况下,我们为 eCos 构建了形状改变技术。

LJ:这种形状改变技术实际上是 eCos 基础开源版本的一部分吗?

Michael:是的。我想是上个月,我们宣布了 CDL(配置描述语言 Configuration Description Language)的开源可用性。

现在,从另一个角度来看,看看开源是如何改变嵌入式的,我看到人们对传统专有实时操作系统的兴趣发生了巨大转变,转向使用嵌入式 Linux。事实上,我可以告诉您,直到去年九月,我所交谈的客户的概况与 IDC 对整个市场的概况分析方式完全相同。换句话说,X% 的人对专有实时操作系统“A”感兴趣,Y% 的人对专有实时操作系统“B”感兴趣,而我与客户交谈时对市场进行的统计抽样与 IDC 在其厂商数量报告中报告的内容非常吻合。

自从去年九月多家公司宣布商用嵌入式 Linux 可用以来,我与零位正在使用专有操作系统设计新嵌入式设备的人员交谈过。

LJ:这真是一个巨大的变化。

Michael:是的。这并不是说人们没有为遗留应用程序购买这些操作系统。我继续与许多人会面,他们抱怨改变有多么困难。但就新设计而言,这简直是天壤之别。

LJ:这包括 WinCE 和 PalmOS 吗?

Michael:我从来没有和任何对 WinCE 感兴趣的人谈过话。我不了解 Palm。

我想说,如果您只是想用嵌入式 Linux 替换专有实时操作系统,只是为了更换插槽中的实时操作系统,那并没有什么太大的意义。真正有趣的是,如果您不仅认识到 Linux 附带的开发社区,而且还认识到该平台的可扩展性和开放性。随着创建新型计算设备的能力,这些设备非常有效且非常有效地模糊了正在逐渐消失的传统桌面模式与正在兴起的普遍后 PC 模式之间的界限,嵌入式 Linux 看起来很可能成为这个新的后 PC 世界中一直缺失的要素。

LJ:我认识的一些开发人员感到他们正处于跑步机上,为了跟上硬件加速变化的步伐,他们的问题之一是必须不断重写设备驱动程序以适应替换不再可用的旧芯片的新芯片。我了解到 Linux 的吸引力之一是其他人正在编写大量的设备驱动程序。

Michael:是的。其他人正在编写设备驱动程序。而且,为 Linux 编写设备驱动程序的人们通常会将这些驱动程序开源。

LJ:正是如此。eCos 也发生了同样的动态吗?

Michael:当然。这是一个我们越来越看到的动态。eCos 经历了许多实时操作系统所经历的过程,即我们在两年前在圣何塞举行的 Embedded Systems West 大会上宣布了它。它经历了一个孕育期。当然,总会有创新者和早期采用者积极地接受新事物,但总的来说,人们会等待看看 eCos 是否会迎来它的第一个周年纪念日,现在是第二个周年纪念日。我们注意到的一件事是,随着我们迎来它的第二个周年纪念日,设计数量呈指数级增长。随着这些设计而来的是开发社区中越来越多的参与者。这意味着新的板级支持包、到新架构的端口、设备驱动程序等等。换句话说,它真的开始达到临界质量。

LJ:那么,您现在看到的“设计成功案例”的数量是多少?

Michael:这有点棘手。您可能会在收到关于我们将在 ESC West 上发布的公告的预先简报的人员名单中。但我不能透露太多细节。

LJ:我只是想了解一个大致范围。十个可靠的成功案例,还是一百个?

Michael:我认为我们已经有大约几十个可宣布的成功案例。

LJ:您能否比较和对比嵌入式 Linux 与 eCos 的应用领域?

Michael:eCos 真的适用于那些想要非常简单的内存占用的设备,即您有一个微控制器和一个要控制的设备的经典嵌入式系统设计。eCos 为您带来的好处是可以使用开源可用性,以及将特定设计压缩到比 Linux 更小的空间的能力。

例如,我们之前宣布的一个成功案例是 Brother 2400cen 打印机系列的操作系统。这些打印机的工作是成为将墨水应用到纸张上的外围设备。用户不太可能希望在其打印机上运行高容量 Web 服务器。人们也不太可能希望将他们的打印机用作其他用途的额外计算设备。当然,我相信 SETI@Home 的家伙们会很乐意通过在彩色和黑白打印机的未使用周期中运行来将其监听能力提高一倍。但认真地说,eCos 更适合为特定用途的设备而设计。

Linux 似乎正在成为互联网设备领域(包括服务器和客户端领域)真正 runaway 的成功故事。上个月,我们宣布了与 Ericsson 的一个设计成功案例,Ericsson 实际上已经演示了一个运行在 Red Hat 嵌入式 Linux 之上的屏幕电话平台。我们希望我们至少能有一张这款手机的照片(如果不是模型)在会议上展出。这是 Ericsson 为客户端的新型、更丰富、完全连接的设备所做的努力。服务器端也有很多活动。

有服务器设备、住宅网关服务器、小型办公室/家庭办公室服务器,在这些服务器中,您不想运行完整的 Linux 桌面发行版,也不一定想将其作为完整的 Linux 服务器运行,但您需要一些功能,例如 Web 服务或防火墙或电子邮件或文件服务等等。您希望更窄地配置这些设备的原因是,它可以大大降低管理的复杂性。

LJ:带回家并插上电源即可使用。

Michael:如果您想做一些不同的事情,您可以只下载不同的配置文件,它将具有这些属性。当您有一个普通的 Linux 服务器执行许多不同的作业时,它会增加您对了解网络安全的人员的需求,这也意味着您必须做出更复杂的资源分配和监控决策。

LJ:自由伴随着责任。

Michael:正是如此。

LJ:您提到了 Red Hat 嵌入式 Linux。目前这是一个独立的发行版吗?

Michael:它是一个工具包。它使用我们的图形用户界面技术,名为 Source Navigator,作为前端,而我们现在拥有的是由该图形用户界面配置的标准 Red Hat 发行版。因此,它不是像 eCos 那样的源代码级配置,事实上,嵌入式系统市场是否会改变 Linux 以使其更支持源代码级配置,这仍然是一个悬而未决的问题。目前的想法是“否”,但对未来的思考是不确定的。如果我们没有源代码级配置,那么我们仍然有模块级可配置性,而这正是 Red Hat 的图形用户界面所提供的。

LJ:这是一个独立的 Red Hat 产品吗?

Michael:是的。我们称之为 Embedded DevKit。您实际上可以从我们的网站上以 199 美元(美元)的价格获得它。

LJ:您的嵌入式 API 提案 EL/IX 进展如何?

Michael:每当我谈到 EL/IX 时,我都会谈到 POSIX 1003.13。我在 LinuxWorld 上做了几次关于嵌入式 Linux 的演讲,我谈到了我们在 POSIX 委员会公开他们的 1003.13 建议前两周宣布 EL/IX 的事实。我们早就知道他们正在酝酿这件事,但我们也不确定时间表会是什么。因为我们知道他们在做什么,并且因为我们喜欢他们的方法,所以我们采用了我们认为是他们的想法。我们说,好吧,将会有四个配置文件,并且它们将具有这些功能包。

然后发生的事情是 1003.13 发布了,PE51、PE52、PE53 和 PE54 对应于我们选择的四个级别。如果 POSIX 发布了 13 个配置文件,或者 12 个、7 个或 2 个,那么我们的工作看起来就完全不像他们的了。但事实上,他们像我们一样选择了四个配置文件,并且这四个配置文件确实具有相当直接的对齐方式,这意味着我们正在支持 POSIX 1003.12 作为公认的国际标准,并且我们正在游说将更多我们认为是真正的嵌入式开发人员的观点纳入其中。例如,POSIX 对他们的信号模型感到非常自豪。但是,我交谈过的许多嵌入式开发人员并不太喜欢该信号模型。POSIX 信号在这些配置文件中不是一个选项。但是,在我们的配置文件中,它们是一个选项,可以包含也可以不包含。看待 EL/IX 的方式是四个配置文件:从最小控制器到最小实时,再到单进程,再到成熟的多进程系统。

第一,我们认为理论是正确的,但我们想为人们提供额外的配置选项。无论您是否拥有信号,无论您是否拥有网络支持,无论您是否拥有文件系统支持,都与这四个级别是正交的(或者可以是正交的)。

LJ:因此,您目前的精力都投入在支持 POSIX 工作,并将其向前推进并使其对嵌入式开发人员有用吗?

Michael:是的。

LJ:那么 EL/IX 的实现过程,无论是作为 eCos 之上的一个层,还是作为 Linux 内核中的附加元素,都需要等到 POSIX 1003.13 的最终确定吗?

Michael:不。需要等待的是 Linux 是否会支持源代码级可配置性的概念。就 POSIX 1003.13 中的内容而言,以及就我们想要提供的选项和配置包而言,我们相信我们的方法与 POSIX 正在做的事情是一致的。我们预计我们将提供一些符合 POSIX 标准的东西。它还将具有其他选项。您可以始终从 Linux 访问 POSIX 这一事实将使人们感到非常舒适。

LJ:所以您正在向前推进您的工作,预计会随着 POSIX 的发展而与之融合吗?

Michael:是的。我认为去年 Linus Torvalds 说他很高兴看到 POSIX 变得更加 Linux 兼容。

LJ:您目前的 EL/IX 流程正在向前推进吗?

Michael:是的。

LJ:您网站上的 EL/IX 草案标准 1.1 的日期是 1 月份。会有新的草案吗?

Michael:我希望如此。我们的人正在为 Embedded Systems Conference 努力工作。我不能做出任何承诺。但我们当然希望在九月展会上推出一些新鲜的东西。

LJ:Red Hat/Cygnus 整合进展如何?

Michael:进展非常顺利。合并的规模相当大。我们在今年年初就开始快速行动,再过十天我们将公布收益。上个季度,当我们发布收益公告时,Cygnus 通过关键客户的成功在一些非常明显的方面增强了 Red Hat 的业务,从那时起,我们公开宣布了与 Motorola 在高可用性嵌入式 Linux 服务器方面的关系,以及与 Ericsson 在屏幕电话方面的合作。我们可能还有其他公告即将发布。

如果我们是一家私营公司,我可以告诉您更多激动人心的细节。

LJ:您在最近的另一次采访中提到了《银河系漫游指南》(Hitchiker's Guide to the Galaxy)。您在那本书中最喜欢的角色是谁?

Michael:我认为那一定是 Ford Prefect。

LJ:为什么会是这样?

Michael:因为他对自己的荒谬之处毫不在意。

LJ:我猜这对我们大多数人来说都是一个很好的榜样。

Michael:我也很欣赏他的乐观精神。

LJ:非常感谢您,Michael,抽出时间与我们交谈。

Michael:谢谢您,Dan,我希望在 ESC West 见到您。

资源

Dan Wilder 是 SSC 的技术经理。可以通过 dan@ssc.com 与他联系。

加载 Disqus 评论