下载本文的PDF版本 PDF

嵌入式系统的真相
George Neville-Neil,Queue 顾问委员会成员

嵌入式系统在几个方面与其他软件环境不同。它们运行的硬件通常在内存和处理器周期方面都受到资源约束,但这些系统仍然必须实时响应。它们控制着汽车的刹车、飞机的襟翼、交通信号系统、医疗设备和其他生命攸关的设备。对于许多系统工程师来说,像对待生死攸关的事情一样进行编程是一个全新的概念。

在过去的10年中,嵌入式计算领域已从其在军事、航空航天和工业自动化应用中的传统角色扩展到网络设备和消费市场。这是许多软件工程师现在首次接触嵌入式系统的地方。无论是为 PDA、手机、路由器还是机顶盒构建应用程序,在这种新环境中工作都需要不同的设计和实现思维方式。

本期 将嵌入式系统工作中的挑战带给更广泛的受众,并试图为设计师和实现者在与计算领域的这一部分互动时遇到的问题进行阐述。

在嵌入式系统工作中遇到的一个障碍是,编程模型与大多数程序员所学的不同。嵌入式系统通常缺乏进程模型和虚拟内存的安全性。程序可以看到并修改其他程序的私有数据、全局变量和程序指令,这意味着行为不端的程序可能会覆盖正常工作的程序,并导致整个系统崩溃。我在“无保护编程”中探讨了这些问题。

通常使用嵌入式系统作为大型系统的一小部分。它们可能位于路由器的线卡、视频卡或 RAID 的控制处理器中。这些类型的系统在一组协作处理器之间分配工作,或者具有混合系统,其中中央控制系统是传统的操作系统,而专用设备运行嵌入式操作系统 (EOS) 或根本不运行操作系统。Ivan Godard 在“嵌入式系统中的劳动分工”中探讨了设计和实现这些专用分布式系统中的挑战。

在非嵌入式环境中,程序员可能对其软件运行的硬件知之甚少或一无所知,而在嵌入式软件中,嵌入式软件的存在通常仅仅是为了支持特定的硬件。最初在软件中实现的功能需要快速转移到硬件中。Homayoun Shahri 在“硬件和软件之间模糊的界限”中讨论了这些问题。

交付嵌入式系统不仅仅是编写单个应用程序。这是一个需要集成不同的硬件和软件的过程——其中一些是你构建的,一些是你购买的——并使它们作为一个连贯的整体协同工作。在“整合一切”中,Rolf Ernst 向我们展示了完成项目最后 20% 所需的工作,这部分工作占用了 80% 的时间,重点是获得你在设计系统时期望的性能。

过去,嵌入式设计通常放在大型单板计算机或一组计算机上。随着片上系统 (SoC) 技术的出现,相当强大的计算机的整个主板都可以存在于单个芯片上。这种缩小有几个副作用。Telle Whitney 和我在“片上系统:软件、硬件、噩梦还是幸福”中讨论了这些问题。

Jim Ready 在嵌入式系统领域工作了二十多年。他围绕硬实时内核和与之相关的工具建立了一家完整的公司 Ready Systems。现在他是 MontaVista 的总裁兼首席执行官,该公司正在将 Linux 引入嵌入式世界。Randy Harr 采访了 Ready,以了解他对嵌入式世界的未来走向的个人看法,特别是 Linux 将在这个世界中扮演什么角色。

嵌入式系统几乎涵盖了计算机科学和软件工程的方方面面。我们希望这组多样化的文章能够为您开始使用它们提供所需的启动。


GEORGE NEVILLE-NEIL,[email protected],在各种环境中从事网络和嵌入式操作系统方面的工作。

acmqueue

最初发表于 Queue 第 1 卷,第 2 期
数字图书馆 中评论本文





更多相关文章

Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes - Borg、Omega 和 Kubernetes
尽管人们对软件容器的广泛兴趣是相对较新的现象,但在 Google,我们已经大规模管理 Linux 容器十多年了,并且在此期间构建了三个不同的容器管理系统。尽管每个系统的开发原因不同,但它们都深受其前身的影响。本文介绍了我们从开发和运营它们中学到的经验教训。


Rishiyur S. Nikhil - 硬件系统设计中的抽象
软件工程的历史是不断发展抽象机制以应对日益增长的复杂性的历史。然而,硬件设计并没有那么先进。例如,两种最常用的 HDL 可以追溯到 20 世纪 80 年代。标准的更新落后于现代编程语言的结构抽象,例如类型、封装和参数化。它们的行为语义甚至更加落后。它们是根据在单处理器冯·诺依曼机器上运行的事件驱动模拟器指定的。


John R. Mashey - 通往 64 位的漫长道路
莎士比亚的话语常常涵盖超出他最狂野梦想的环境。即使人们提前计划,辛勤工作和麻烦也会伴随重大的计算转型。为了校准“今天的明日遗产”,我们应该研究“昨天的明日遗产”。明天的许多软件仍将受到数十年前的决策驱动。过去的决策会产生意想不到的副作用,这些副作用会持续数十年,并且可能难以消除。





© 保留所有权利。

© . All rights reserved.