嵌入式Linux操作系统的广泛应用分析
现在Linux广泛用于各类计算应用,不仅包括微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、瘦客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。让我们看一下Linux用作嵌入式系统需要提供哪些功能,以及它在目前可用的选择中最具吸引力的原因所在。
linux操作系统文章专题:linux操作系统详解(linux不再难懂) 嵌入式系统的出现
用于控制设备的计算机,也叫做嵌入式系统,它的历史几乎和计算机自身的历史一样长。它们最初于六十年代晚期在通讯中被用于控制机电电话交换机。由于在过去的十多年里,计算机产业不断朝着更小的系统方向发展,嵌入式系统也与之一起为这些小型机器提供了更多的功能。渐渐地,就需要把这些嵌入式系统连接到某种网络上,因而也就产生了对网络栈的要求,这提高了系统的复杂程度并要求更多的存储器和接口,还有,您猜对了,操作系统的服务。
七十年代晚期出现了用作嵌入式系统的现成的操作系统,现在有许多可行的选择方案。其中,一些主要的竞争者开始崭露头角,比如,VxWorks、pSOS、Neculeus和WindowsCE。
在嵌入式系统中使用Linux的优点和缺点
虽然大多数Linux系统运行在PC平台上,但Linux也可以作为嵌入式系统的可靠主力。Linux流行的“back-to- basics”方法使得它的安装和管理比UNIX更加简单灵活,这对于那些UNIX专家们来说又是一个优点,他们已经因为Linux中有许多命令和编程接口同传统的UNIX一样而赏识了。
典型的压缩包装Linux系统经过打包,在拥有硬盘和大容量内存的PC机上运行,嵌入式系统可不要这么高的配置。一个功能完备的Linux内核要求大约1MB内存。而Linux微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用PentiumCPU系统的100K内存。只要有500K的内存,一个有网络栈和基本实用程序的完全的Linux系统就可以在一台8位总线(SX)的Intel386微处理器上运行的很好了。由于内存要求常常是需要的应用所决定的,比如Web服务器或者SNMP代理,Linux系统甚至可以仅使用256KBROM和512KBRAM进行工作。因此它是一个瞄准嵌入式市场的轻量级操作系统。
与传统的实时操作系统相比(RTOS),采用象嵌入式Linux这样的开放源码的操作系统的另外一个好处是Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其它协议。例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口和串口驱动程序。
闪存
快闪 RAM 内存是大多数 Palm 设备用来存储操作系统的专用的存储器。它具有允许操作系统升级的优点,还可以用于数字式蜂窝电话、数字式照相机、LAN 交换机、PC 卡、数字式机顶盒、嵌入式控制器和其它小型设备。嵌入式系统,如嵌入式 Linux,不要求有磁盘驱动器,尽管可能使用其它的内存组织方式。因此如果,打个比方,Linux 用完了闪存,它就可以将其中一部分作为只读的文件系统来存储额外的程序和静态数据。
核心 Linux 操作系统本身的微内核体系结构相当简单。网络和文件系统以模块形式置于微内核的上层。驱动程序和其它部件可在运行时作为可加载模块编译到或者是添加到内核。这为构造定制的可嵌入系统提供了高度模块化的构件方法。而在典型情况下该系统需结合定制的驱动程序和应用程序以提供附加功能。
嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用。Linux 可以在外设范围广泛的多数微处理器上运行,并早已经有了现成的应用库。
Linux 用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特性使 Linux 具有了伸缩性。因而设计人员可以选择在双处理器系统上运行实时应用,提高整体的处理能力。例如,您可以在一个处理器运行 GUI,同时在另一个处理器上运行 Linux 系统。
在嵌入式系统上运行 Linux 的一个缺点是 Linux 体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。
另一方面,现成的 RTOS 完全是为实时性能而设计的,它通过在由用户而非系统级进程启动时分配给某个进程以高于其它进程的优先级的方式来实现可靠性。进程在操作系统看来就是在内存里或硬盘驱动器上执行的程序。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)