QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1491|回复: 3

嵌入式Linux技术

[复制链接]
发表于 2004-4-29 17:15:51 | 显示全部楼层 |阅读模式
操作系统是管理计算机上的资源,为用户使用计算机及其外部设备提供最基本接口的程
序。
自从计算机诞生以来,随着计算机、网络技术的快速发展,操作系统一直处于不断发展
和改进之中,人们将越来越多的功能加入到操作系统中,导致操作系统越来越大。但是,
随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及
可裁减性,一种以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统
对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统---嵌入式操作系统便随
之延生。
嵌入式Linux是按照上面所说的嵌入式操作系统的要求设计的一种小型操作系统。由一个
kernel(内核)及一些根据需要进行定制的系统模块组成。其Kernel很小,一般只有几
百K左右,即使加上其它必要的模块和应用程序,所需的存储空间也很小,有多任务多进
程的系统特征,有些还有具有实时性。
一个小型的嵌入式Linux系统只需要下面三个基本元素:
1. 引导程序
2. Linux微内核(由内存管理、进程管理和事务处理构成)
3. 初始化进程
如果要让它有更多的功能且继续保持小型化,可以加上:
1. 文件系统(可以在ROM,RAM,FLASH或Disk Onchip中)
2. TCP/IP网络支持
3. 存储更多数据用的磁盘。
4. 提供设计精简的应用程序。
由于嵌入式Linux操作系统的高度灵活性,开发者可以很容易地对它进行定制或作适当开
发,来满足实际应用需要。
Linux在嵌入式系统中的优势:
嵌入式操作系统主要有 Palm OS,Windows CE,EPOC,LinuxCE,QNX,高端嵌入式系统要
求许多高级的功能,如图形用户界面和网络支持 。很多高端RTOS供应商已经提供了这些
功能,但其价格也很高端,一般人难以接受。微软的Windows CE也有此类功能,却不具
备大多数嵌入式系统要求的实时性能,而且难以移植,也曾经有人想以DOS为基础用单独
的第三方工具拼凑一个系统,但这种努力将是白费。众所周知,Micro$oft的东西向来都
是以昂贵和不稳定出名,而现在需要的是一个便宜、成熟并且提供高端嵌入式系统所必
须特性的操作系统。嵌入式Linux操作系统以价格低廉、功能强大又易于移植而正在被广
泛采用,成为新兴的力量,所以,众多商家纷纷转向了嵌入式linux。
Linux为嵌入操作系统提供了一个极有吸引力的选择,她是个和Unix相似、以内核为基础
的、完全记忆体保护、多任务多进程的操作系统。支持广泛的计算机硬件,包括X86,Alp
ha,Sparc,MIPS,PPC,ARM ,MOTOROLA,NEC等现有的大部分蕊片。程式源码全部公开,任
何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行,这样,开
发人员可以对操作系统进行定制,再也不必担心像M$ windows操作系统中“后门”的威
胁(后门不是我们常说的走后门,是指嵌入到软件中的一个特殊程序,它有一些不道德
的额外功能,例如可以把使用者的数据送到指定的地址)。同时由于有GPL的控制,大家
开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Interne
t向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。
Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到
了Linux上。Linux还提供了强大的网络功能,有多种可选择的窗口管理器(X windows)
,如KDE,GNOME, Tiny-X等。其强大的语言的编译器如gcc、g++、也可以很容易得到,不
但完善、而且易于使用。
嵌入式linux操作系统与硬件设备的关系
运行嵌入式Linux的CPU可以是 X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM。与这
些蕊片搭配的主板都很小,与一张PCI卡大小相当,有的甚至更小!
嵌入式linux所需的存储器不是软磁盘、硬盘、ZIP盘、CD-ROM、DVD这些众所周知的常规
存储器,它使用Rom,CompactFlash,M-Systems的DiskOnChip,SONY的MemoryStick,IB
M 的MicroDrive等体积极小---与主板上的Bios大小相近,存储容量不太大的存储器。它
的“内存”可以使用普通的内存也可以使用专用的RAM。
PC平台上通常有键盘、鼠标、显卡、显示器等输入输出设备及各种存储设备,有ISA、P
CI、AGP、USB等接口。在嵌入式系统中,往往不需要上述设备和接口的支持,而使用嵌
入式系统特有的接口和设备,如PCMCIA接口、LCD显示屏、触摸屏,DOC(DiskOnChip)等。

在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多
数传统的嵌入式系统工作模式,它可以被Linux支持。因此嵌入式系统可以没有磁盘。许
多嵌入式系统没有磁盘或者文件系统。Linux不需要它们也能运行。有多种途径可以消除
对磁盘的依赖,这要看系统的复杂性和硬件的设计。
在PC机上都需要Bios ,当CPU启动的时候,它开始在预先设置的地址上读取指令,执行了
一些低水平的CPU初始化和其它硬件的配置。再由BIOS继续引导操作系统,由操作系统引
导其它应用程序。实际上,这非常复杂,但对我们的目标来说也非常重要。在PC上运行
的Linux也要依靠PC上的BIOS来启动。
与PC机不同的是,嵌入式系统里经常没有这种BIOS。这样你就要提供同等的启动代码,这
看起来使系统的引导启动变得更加复杂。幸好,嵌入式系统并不需要PC 机Bios引导程序
那样大的灵活性,因为嵌入式设备的硬件配置通常是不变的,嵌入式引导程序只需要处
理一种硬件的配置。这使代码更简单也更枯燥。它只是一指令清单,将固定的数字塞到
硬件寄存器中去。然而,这是关键的代码,因为这些数值要与你的硬件相符而且要按照
特定的顺序进行。所以在大多数情况下,一个最小的通电自检模块,可以检查内存的正
常运行、让LED闪烁,并且驱动其它必须的硬件以使主Linux OS启动和运行。这些启动代
码完全根据硬件决定,不可随意改变。
要选择与嵌入式Linux系统相结合的硬件产品是一个复杂的工作,不但要考虑到硬件的成
本,体积,可靠性,还受到其他非技术因素的影响,如政治、偏见、传统等等。这一工
作必须严肃对待,因为它也是开发的重点。
嵌入式linux 的技术发展
嵌入式系统的商品化操作系统在70年代后期才出现,许多是用汇编语言写成的,并且只能
用于特定的处理器,更换新处理器,它的操作系统就必须更新以适应新的系统。当C语言
出现时,操作系统编写的效率、稳定性、可移植性都有了很大的提高。这一点在管理上
立刻表现出来,它为微处理器被淘汰时保护软件投资带来了希望。对于市场来说这是一
个好消息。用C语言写成的操作系统今天越来越普遍。一般来说,可重复使用的软件已经
占了主导地位并越做越好。
许多嵌入式系统根本没有操作系统,只有循环控制。对于一些简单设备这是足够的,但
是随着系统越来越复杂,更多嵌入式系统需要与各类网络联接,因此需要网络功能。增
加网络功能将导致系统复杂程度提高以致要求操作系统。
传统的嵌入式系统是基于单片机的,而新一代的嵌入式系统将以如下为特点:以IP核模
块(Intellectual Property Kernel知识产权核模块)为核心,用混合ASIC/CPLD/FPGA
生成的硅片直接构成整块的单片嵌入式产品(SOC)。
随着嵌入式操作系统的快速发展,应用的范围不断扩大,使用者日益增加,一个非常关
键,必须解决的重大问题出现了。
很久以前, 一般的编程语言,编译,开发只能支持英文的,不能支持它国语言,比如拿
一个只支持英文的浏览器去访问中文的网站,显示出来的东西将是混乱不可阅读,嵌入
式Linux也同样不能避免这种问题,它直接影响到系统开发的路线。
为了使Linux支持中文,国人做了许多的努力,基本上解决了中文支持的问题。1999年是
中国Linux发展和普及过程中最重要的一年,其中涌现了许多制作中文 Linux发布版本的
公司,加速 Linux的中文化过程并推动Linux在中国的普及。如今这些公司又纷纷转向了
中文嵌入式Linux操作系统的开发,如Turbo,红旗,还有一些一开始就开发嵌入式Linu
x公司,如网虎,博利思等,其中,博利思于5月份最先推出其中文嵌入式Linux操作系统

为了适应更广的语言和文化习俗,软件有必要在设计结构和机制上支持多语言的扩展特
性,这一过程称为国际化,。越来越多的软体开发者了解到, 如果他们设计的产品一开始
就考虑到多语环境的使用, 这些产品将用更少的花费, 更快达到全球市场, 比那些照 "
糟糕的老方法" 设计的产品更成功。有了国际化,你不需要一个日文版的 Netscape 去
浏览日本的网页. 你能使用英文的, 法文的或者任何版本的Netscape 来浏览日本的网页
, 反之亦然,而实现这些的唯一条件只要有适当的字库支持。
Linxu的国际中最主要的是X windows 的国际化,早期的X11R4版本中,仅仅含有支持单
字节和双字节字体的函数,所以它不能算是国际化的函数库. 此后,一个叫做"mltalk"
的X协会成立并着手研究X窗口系统的国际化问题. 众多的X窗口系统供应商也 参与了该
组织。
按国际化的级别来分,下列几种情况都属于国际化:
1. 语言可以切换. 在系统启动时可以设置某种语言
2. 使用不同语言的软件可以同时使用,在应用软件启动时可以设置某种语言
3. 使用不同语言的软件可以同时使用,而且应用软件的语言可以动态切换
4. 使用不同语言的软件可以同时使用,而且在应用软件中可以同时使用不同语言
最新的X11R6 解决了X11R4中存在的问题,主要的变化有,
1. 定义了标准的输入协议,Locale数据格式定义
2. 采用了一种国际化工具的样本应用模块 在输出上,X11R6增加了从由右到左的的书写
方式,以支持阿拉伯语和希伯来语等,增加了从上到下的书写方式,以支持中文和日文
等的书写方向
3. 支持国际化的高层库 OSF/Motif、Qt/kdelib、gtk+/gnome-lib、Perl、Java
4. 支持多语言的典型软件:如 Netscape浏览器 XEmacs编辑器、vim编辑器、rxvt终端
(与M$-DOS方式相似)、LaTeX/lyx排版软件、gimp图像处理工具
5. 支持Unicode的软件高级图形库函数 Qt 2.x 、Java 语言开发工具 JDK 编辑器 yud
it 专用的支持Unicode的 X 终端 、基于GTK+的文本处理器 Gscript
因为对国际化的研究开始不久,所以mltalk (X国际化协会)提出的了一个基本问题: 什
么是X窗口系统的国际化? 对它的解释也各不相同。 实际即使是现在,人们对国际化的
定义仍然存在分歧,分歧的焦点主要集中于对软件或系统怎样程度的国际化才算是真正
的国际化。但不管怎样,国际化的问题已经有了巨大的进展,这必将促进嵌入式Linux的
不断成长,成熟。
在Linux日益流行的同时,嵌入式Linux也渐渐得到许多程序员的关注。由于其用途之广
达到了前所未有的地步:从移动计算平台、 信息家电(机顶盒,数字电视)、媒体手机
、到工业、商业控制(智能工控设备,POS/ATM机)、电子商务平台、甚至军事应用!由
此可见,嵌入式Linux的吸引力是巨大的。同时嵌入式板的生产商得来了越来越多的引起
全世界注意的标准,许多厂商都注意到了嵌入式Linux的适用性之广,有不少公司正在开
发嵌入式Linux,想信不久,嵌入式Linux在嵌入式主板生产商中将大受欢。
在国外,发展成熟并且已经商品化的嵌入式操作系统可供选择的有VxWorks, pSOS, Nec
uleus,QNX,LYNX,ECOS,MICROWARE和Windows CE。目前,国内只有博利思,网虎,Turbo
这有数的几家公司推出了嵌入式Linux操作
发表于 2004-5-6 09:50:51 | 显示全部楼层
好文章
回复

使用道具 举报

发表于 2004-5-11 17:09:16 | 显示全部楼层
还不错 :-)
回复

使用道具 举报

发表于 2004-5-15 09:37:51 | 显示全部楼层
Good
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-21 23:30 , Processed in 0.049308 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表