嵌入式软件的PC化趋势
2009-01-20何小庆
何小庆
摘要:文章叙述源自PC的虚拟化软件和开源软件正在逐渐渗透到嵌入式系统各个方面。
关键词:嵌入式软件;虚拟化;移动互联网;标准化;Linux
随着移动互联网应用渐渐走热,Intel嵌入式X86芯片重返市场,传统的嵌入式系统平台、软件开发方式和操作系统都在发生着变化。一方面,互联网需要更多已经在PC使用的应用软件能够在各种移动终端上使用,另一方面,计算密集和数据密集的趋势要求嵌入式系统具有越来越强的处理能力,PC化则是解决这些问题的途径之一。
嵌入式系统和PC的融合
嵌入式系统和PC一直有着难解之缘,由ISA总线标准发展起来的PCI04,是嵌入式PC至今依然大量使用的工业标准。DOS/Borland C是深受喜爱的嵌入式PC操作系统和开发工具之一。20世纪90年代以后,在摩尔定律推动下,Intel和微软联手推动了一轮又一轮的PC升级换代之路,也使得嵌入式系统和PC越走越远,以单片机(MCU)为代表的嵌入式处理器技术成熟,RTOS(嵌入式操作系统,如uC/OS—II,VxWork)和IDE(Keil、IAREW)的嵌入式软件开发模式已经形成,获得了广泛的认可和成功。
2000年以后,嵌入式Linux和 PC SoC嵌入式平台给嵌入式系统带来了革命性的变革,比较起传统的MCU平台,一个典型ARM2410单板、嵌入式Linux2.4、Qf图形界面,它包含设备驱动、网络、文件、图形和丰富应用,是一个完整的OS和交叉开发环境,非常接近人们熟悉的PC环境,可以适合多数消费电子、通讯、工业控制嵌入式系统应用要求。但是面对高性能计算、互联网以及多媒体应用的移动互联网设备、数字多媒体中心、网络存储和超便携上网笔记本等应用时,基于交叉编译的ARM/Linux/WinCE系统,比起X86/Linux/WindowsXP系统,开发时间和难度要大得多,在设备端重新移植成熟应用和测试过程耗费了大量的时间和人力;在服务器端,由于待测试的各种终端的种类、OS、浏览器不一,所以许多网络应用的厂家只能支持有限数量的终端和,浏览器版本,所以,PC Windows/IE就成为多数网络应用支持的对象。
ARM、Adobe和Canonical合作将把Ubuntu和FlashPlayerlO移植到ARM上,这无疑是嵌入式软件和PC融合的重要信号。Flash Player是目前网络上最为流行的浏览和播放软件,也运行在X86/Windows/Linux平台,它对于ARM体系结构的支持将大大提高ARM芯片在互联网终端的地位。Ubuntu是国际上成功的Linux开源桌面操作系统,最近发表的8.10版本,加强了对3G移动网络的支持,计划支持超低功耗的ARMv7(CortexA8/A9)处理器,将扩展Ubuntu操作系统在移动互联网终端上的地位,同时也为嵌入式系统开发提供了一种标准的PC环境。其实Ubuntu因为尺寸小巧,已是嵌入式X86/PC厂家主要支持的嵌入式Linux平台之一。无论是Intel嵌入式X86,还是ARM的SoC技术,都在引领行业向着满足高性能计算要求的软硬件PC化方向发展。
嵌入式虚拟化软件
PC化的嵌入式软件具有通用、开放的特点,但是要完全满足安全性、实时性和可继承性的需求还有距离,虚拟化软件正好是一个补充。虚拟化在服务器上已经取得了成功,正在进军桌面和嵌入式系统。著名的vmware最近宣布将推出智能手机的虚拟化软件版本。虚拟化软件可以在多核、单核高性能处理器上运行。一是解决安全性问题,比如构建一个在安全操作系统和开放操作系统环境下的手机,以保证移动网上银行的安全支付。二是解决软件再用问题,比如大量已经验证了的通讯代码和专用的RTOS,通过虚拟化和通用的操作系统(GOS)结合形成全新的高密度计算平台。三是解决实时性问题:专用的实时RTOS和GOS—Linux,Windows并存。四是解决多核编程问题,介于目前多核软件普遍滞后硬件芯片的情况,虚拟化可以帮助用户在不改变编程模式和设计思想的前提下,充分发挥多核芯片的性能。即在不同的核上运行不同的操作系统:运行RTOS的核完成通讯设备的网络数据流的处理和分析,运行Linux的核负责系统数据库管理和人机界面。虚拟化技术如果使用得当,它可以在嵌入式系统和PC化软件之间架起一座桥梁。嵌入式系统对于虚拟化技术有其特殊要求,比如非X86体系结构、尺寸和实时性等,目前开源项目Xen(www.xen.org)在这个方面还有差距,商业的产品有VirtualLogix的VLX,它提供支持通讯平台,移动终端和通用嵌入式系统的各个产品线方案,产品线丰富而成熟;OK-Labs是基于开源OKL4微内核的虚拟化软件,重点支持手机的虚拟化方案,风河公司近日也宣布将推出作为整个多核方案一个部分的虚拟化软件。
嵌入式软件的PC化趋势,目前体现在高性能计算要求的场合,但是也要看到,一个再复杂的洗衣机和电冰箱也不必需要一个800M主频的ARM SoC,或者Intel Atom处理器,单片机已完全可以解决问题了。嵌入式系统的多样性决定了各种芯片技术、通讯技术、软件、设计思想都可以在嵌入式系统找到自己的位置。