嵌入式系统就是用于控制设备的计算机。它们最初于60年代晚期在通讯中被用于控制机电电话交换机。在过去的十多年里,计算机产业不断朝着更小的系统方向
发展,嵌入式系统也与之一起为这些小型机器提供了更多的功能。渐渐地就需要把这些嵌入式系统联接到某种网络上,提高了系统的复杂程度并要求更多的存储器和
接口,因而也就产生了对操作系统的服务的要求。70年代晚期出现了用作嵌入式系统的现成的操作系统,如,VxWorks,pSOS,Neculeus和 Windows
CE。
目前Linux的发行版本(distibution)众多,各有优缺点,集各家之长,建立一套自己的嵌入式Linux,只要根据适当的方法就可以。以
Redhat7.1的发行版本来看,完整安装服务器的版本,约需1.3
Gbyte以上的空间,这不包含一些特别的套件。在众多的软件中,我们只要其中的一小部分,可能在10 Mbyte到30
Mbyte之间。进行的方式必须有效率地建立系统,基本可行的方法有2种:(1)从其中一个发行版本中把不必要的部分全部删掉,留下我们想要的系统;
(2)把系统所有的功能依规定重新建立。
如前所述,必须对现系统功能规格清楚了解,才能进行缩减系统的动作。从图1可见,使用方法1会有多达
几百M byte不必要的数据;使用方法2则可以很直接地建立一个从2 M Mbyte到16 M
Mbyte的嵌入式系统。因此使用重建的方法是较好的选择,使用此方式前,需明确系统功能的规格、使用的软件套件、目标平台的规格,三者之间互相关联,就
是从3个不同的角度去定义系统,使其更加准确。 3 开发的环境 在清楚了解准备建立的系统后,便可开始利用Linux打造嵌入式的设备了。首先我们必须区分开发平台与目标平台。目标平台就是程序最后被移植及执行的地方,因为资源有限,开发与除错的环境都集中在开发平台上。表3和表4列出了2个平台上的主要开发工具。
要建立一个最基本的开发环境,必须具备一套跨平台的开发工具(Cross Development
Kit),包含有编译器、连接器、出错器等。另外还要准备制作文件系统所需的程序。而目标平台上,只需准备一段系统开机程序,如etherboot,
reboot等。此程序可以在除错阶段时,从网络取得映象后启动,或是直接从快内存储器,把系统启动。一旦启动后,就进入Linux的操作系统,同时也可
使用GDBserver作为远端除错的工具。
使用Linux作为嵌入式操作系统是一件有实际意义的事情,因为使用者与贡献者遍布世界各地,他们都贡献出自己的成果,各种主要平台上都有支持的版本。
可是在资源众多的情况下,却没有一个很好的集成环境。在嵌入式Linux中,尽管各个独立的开发工具,都已经功能完备有兼备图形使用界面。然而集成环境的
发展,尚在起步阶段。与嵌入式操作系统VxWorks的开发环境相比,功能还相差甚远,即使是以Linux为主的厂商如Lineo[3]的Embedix和MontaVista[4]的HardHat
Linux等,都提供有不错的开发工具,唯独缺乏一个功能强大的图形集成化环境。集成环境在功能上应以跨平台的开发环境为最重要的方向,辅以网络在线除错
功能,动态执行模块,实时图形显示执行状态等。我们认为这就是开放式软件一直以来所面对的同样问题,如果得到解决,嵌入式Linux的应用必会快速发展。 参考文献
[1] DARRICKAddison.嵌入式Linux应用[EB/OL].http://www.pocketix.com.cn,2002,01-16.
[2] 嵌入式系统以及如何构造一个嵌入式系统概览[EB/OL].http://www.embed.com.cn/,2001,11-12.
[3] The Swiss Army Knife of Embedded Linux[EB/OL].http://busybox.lineo.com,2002,02-05.
[4] The Redhat Embedded Debug and BootstrapFirmware[EB/OL].http://sources.redhat.com/reboot,2001,12-24.
[5] The Linux KernelArchives[EB/OL].http://www.kernel.org,2001.12-24.
[6] 殷茜,温平川,应俊.嵌入式软件调试环境的对等协议的设计与实现[J].重庆邮电学院学报(自然科学版),2002,14(2):70-74.