什么是嵌入式系统?嵌入式系统是结合了硬件和软件,针对某特定应用领域和特定功能而定制的专用系统。所谓专用系统,是按照应用需求量身定制的系统,且这种定制包含了硬件和软件两方面的定制。嵌入式系统与通用系统相对应,就是其针对性强,不会造成资源的浪费,便于成本的控制。
嵌入式系统无论在其表现形式、大小上都是多种多样的,常规的嵌入式系统具有以下一些特点:
● 包含有一个处理引擎,如常规的微处理器。
● 为特殊应用或目标而专门设计。
● 有简单的用户界面,或没有用户界面,如自动引擎点火控制器。
● 资源有限,如只有很小的存储器空间,通常没有硬盘。
● 电源的电力有限,通常只有在电池供电的情况下工作。
● 通常不会采用通用目的计算平台。
● 嵌入了应用软件在系统中,软件不是由用户选择的。
● 系统中事先集成了所有应用硬件和软件。
● 预制应用,没有用户介入。
基于以上特点,嵌入式系统开发遇到的最大挑战就是资源有限,因此在有限资源的情况下要求嵌入式软件代码尽可能小,运行速度尽可能快,可靠性尽可能高。Linux内核的组件化构成与模块化特性,使Linux内核易于裁剪来适应应用需求,经过裁剪后的内核,可固化在容量只有几十万字节或几十亿字节的存储器芯片或单片机中。Linux内核所具有的独特性能,使Linux成为嵌入式操作系统首选。
Linux内核是全组件层次结构,内核完全开放。Linux内核由很多规模小且性能高的微内核和组件组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要对内核进行改造,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统。
Linux诞生于Internet应用,并具有UNIX的特性,这就保证了它支持所有标准Internet协议;Linux网络体系结构的可配置性和可扩展性,保证可在Linux内核网络协议栈基础上将其开发成为嵌入式的TCP/IP网络协议栈以支持嵌入式系统的网络应用。
Linux具备一整套工具链,容易建立嵌入式系统的开发环境和交叉运行环境,一般开发嵌入式操作系统的程序调试和跟踪都是使用仿真器来做,而使用Linux系统做原型的时候,可以绕过这个障碍,直接使用内核调试器来做操作系统的内核调试和查错。
无论是RISC还是CISC,32位还是64位等各种处理器,Linux都能运行。Linux除支持最常用的微处理器Intel X86芯片家族外,它同样能运行于Motorola公司的68K系列CPU平台;IBM、Apple、Motorola公司的PowerPC 体系结构的CPU以及Intel公司的Strong ARM CPU等处理器系统,这意味着使用Linux作为嵌入式操作系统将具有更广泛的应用前景。