操作系统是管理计算机上的资源,为用户使用计算机及其外部设备提供最基本接口的程序。
自从计算机诞生以来,随着计算机、网络技术的快速发展,操作系统一直处于不断发展和改进之中,人们将越来越多的功能加入到操作系统中,导致操作系统越来越大。但是,随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及可裁减性,一种以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统---嵌入式操作系统便随之延生。
嵌入式Linux是按照上面所说的嵌入式操作系统的要求设计的一种小型操作系统。由一个kernel(内核)及一些根据需要进行定制的系统模块组成。其Kernel很小,一般只有几百K左右,即使加上其它必要的模块和应用程序,所需的存储空间也很小,多任务多进程的系统特征,有些还有具有实时性。
一个小型的嵌入式Linux系统只需要下面三个基本元素:
引导程序
Linux微内核(由内存管理、进程管理和事务处理构成)
初始化进程
如果要让它有更多的功能且继续保持小型化,可以加上:
文件系统(可以在ROM,RAM,FLASH或Disk Onchip中)
TCP/IP网络支持
存储更多数据用的磁盘。
提供设计精简的应用程序。
由于嵌入式Linux操作系统的高度灵活性,开发者可以很容易地对它进行定制或作适当开发,来满足实际应用需要。
Linux在嵌入式系统中的优势
嵌入式操作系统主要有 Palm OS,Windows CE,EPOC,LinuxCE,QNX,ECOS,LYNX,高端嵌入式系统要求许多高级的功能,如图形用户界面和网络支持 。很多高端RTOS供应商已经提供了这些功能,但其价格也很高端,一般人难以接受。微软的Windows CE也有此类功能,却不具备大多数嵌入式系统要求的实时性能,而且难以移植,也曾经有人想以DOS为基础用单独的第三方工具拼凑一个系统,但这种努力将是白费。众所周知,Micro$oft的东西向来都是以昂贵和不稳定出名,而现在需要的是一个便宜、成熟并且提供高端嵌入式系统所必须特性的操作系统,嵌入式Linux操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,所以,众多商家纷纷转向了嵌入式linux。
Linux为嵌入操作系统提供了一个极有吸引力的选择,她是个和Unix相似、以核心为基础的、完全记忆体保护、多任务多进程的操作系统。支持广泛的计算机硬件,包括X86,Alpha,Sparc,MIPS,PPC,ARM,NEC,MOTOROLA等现有的大部分蕊片。程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行,这样,开发人员可以对操作系统进行定制,再也不必担心像M$ windows操作系统中“后门”的威胁(后门不是我们常说的走后门,是指嵌入到软件中的一个特殊程序,它有一些不道德的额外功能,例如可以把使用者的数据送到指定的地址)。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。
Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器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,IBM 的MicroDrive等体积极小---与主板上的Bios大小相近,存储容量不太大的存储器。它的“内存”可以使用普通的内存也可以使用专用的RAM。
PC平台上通常有键盘、鼠标、显卡、显示器等输入输出设备及各种存储设备,有ISA、PCI、AGP、USB等接口。在嵌入式系统中,往往不面要上述设备和接口的支持,而使用嵌入式系统特有的接口和设备,如PCMCIA接口、LCD显示屏、触摸屏,DOC(DiskOnChip)等。
在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统的嵌入式系统工作模式,它可以被Linux支持。因此嵌入式系统可以没有磁盘。许多嵌入式系统没有磁盘或者文件系统。Linux不需要它们也能运行。有多种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计。
[1] [2] 下一页
在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,红旗,还有一些一开始就开发嵌入式Linux公司,如网虎,博利思等,其中,博利思于5月份最先推出其中文嵌入式Linux操作系统。
为了适应更广的语言和文化习俗,软件有必要在设计结构和机制上支持多语言的扩展特性,这一过程称为国际化,。越来越多的软体开发者了解到, 如果他们设计的产品一开始就考虑到多语环境的使用, 这些产品将用更少的花费, 更快达到全球市场, 比那些照 "糟糕的老方法" 设计的产品更成功。有了国际化,你不需要一个日文版的 Netscape 去浏览日本的网页. 你能使用英文的, 法文的或者任何版本的Netscape 来浏览日本的网页, 反之亦然,而实现这些的唯一条件只要有适当的字库支持。
Linxu的国际中最主要的是X windows 的国际化,早期的X11R4版本中,仅仅含有支持单字节和双字节字体的函数,所以它不能算是国际化的函数库. 此后,一个叫做"mltalk"的X协会成立并着手研究X窗口系统的国际化问题. 众多的X窗口系统供应商也 参与了该组织。
按国际化的级别来分,下列几种情况都属于国际化:
语言可以切换. 在系统启动时可以设置某种语言
使用不同语言的软件可以同时使用,在应用软件启动时可以设置某种语言
使用不同语言的软件可以同时使用,而且应用软件的语言可以动态切换
使用不同语言的软件可以同时使用,而且在应用软件中可以同时使用不同语言
最新的X11R6 解决了X11R4中存在的问题,主要的变化有,
定义了标准的输入协议、Locale数据格式定义
只采用了一种国际化工具的样本应用模块 在输出上,X11R6增加了从由到左的的书写方式,以支持阿拉伯语和希伯来语等,增加了从上到下的书写方式,以支持中文和日文等的书写方向
支
(出处:http://www.sheup.com)
上一页 [1] [2]
Linxu的国际中最主要的是X windows 的国际化,早期的X11R4版本中,仅仅含有支持单字节和双字节字体的函数,所以它不能算是国际化的函数库. 此后,一个叫做"mltalk"的X协会成立并着手研究X窗口系统的国际化问题. 众多的X窗口系统供应商也 参与了该组织。
按国际化的级别来分,下列几种情况都属于国际化:
语言可以切换. 在系统启动时可以设置某种语言
使用不同语言的软件可以同时使用,在应用软件启动时可以设置某种语言
使用不同语言的软件可以同时使用,而且应用软件的语言可以动态切换
使用不同语言的软件可以同时使用,而且在应用软件中可以同时使用不同语言
最新的X11R6 解决了X11R4中存在的问题,主要的变化有,
定义了标准的输入协议、Locale数据格式定义
只采用了一种国际化工具的样本应用模块 在输出上,X11R6增加了从由到左的的书写方式,以支持阿拉伯语和希伯来语等,增加了从上到下的书写方式,以支持中文和日文等的书写方向
支
(出处:http://www.sheup.com)
上一页 [1] [2] [3]