Linux嵌入式系统开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 新型的嵌入式操作系统

除以上几种常见的嵌入式操作系统外,下面还引入介绍两种新型的嵌入式操作系统,该两种嵌入式操作系统在未来的嵌入式设备开发中具有不可估量的作用。

1.5.1 Android

(1)Android的定义

Android平台是一组面向移动设备的软件包,它包含一个操作系统、中间件和关键应用程序。开发人员可以使用AndroidSDK为这个平台创造应用程序。应用程序使用Java语言编写并在Dalvik内运行。Dalvik是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在Linux内核上层。

Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序,为移动电话工作所需的全部软件。Android为谷歌企业战略的重要组成部分。

(2)Android平台的组成分析

Android不仅是一种操作系统,它更是一个开源的体系架构。Android平台大量应用了开源社区的成果,并将其针对移动设备进行了优化。该平台包含以下重要功能特性:

■ 经过Google剪裁和调优的LinuxKernel。

■ 经过Google修改的Java虚拟机DalvikVM。

■ 大量立即可用的类库和应用软件,例如,浏览器WebKit,数据库SQLite。

■ Google已开发好的大量现成的应用软件,并可直接使用很多Google的在线服务。

■ 基于Eclipse的完整开发环境。

■ 优化过的2D和3D图形系统。

■ 多媒体方面对常见的音频、视频和图片格式提供支持。

■ 支持GSM、蓝牙、EDGE、3G、WiFi、摄像头和GPS。

(3)Android的架构

Android平台的架构从上到下包含5个部分:应用程序、应用框架、开发库、Android运行时环境及Linux内核。

■ 应用程序:Android将包含一套核心应用程序,其中包括E-mail客户端、短信程序、日历、地图、浏览器、通信录等。所有的应用程序都是由Java语言完成的。

■ 应用框架:开发人员可以跟核心应用一样,拥有访问框架APIs的全部权限。该应用框架包括了一套可视化对象,一个资源管理器,一个消息管理器,一个活动管理器及可以通过协议来分享的数据。

■ 开发库:Android包含一套C/C++开发库,开发库包括:libc、Media Framework、WebKit、

SGL、OpenGL、ES、FreeType、SQLite等。它们被用于Android系统的各种组件中。这些功能通过Android应用框架展现给开发人员。

■ Android运行时环境:每一个Android应用运行在自己的进程里,使用该应用自己的Dalvik虚拟机实例。Dalvik可以让一个设备高效的运行很多个VM。Dalvik虚拟机执行DalvikExe-cutable格式的文件,该格式的文件经过优化,占用很小的内存。通过名为“dx”的工具可以将Java编译器生成的class格式转换为.dex格式。

■ Linux内核:Android基于Linux2.6内核提供系统的核心服务,如安全机制,内存管理,进程管理,网络堆栈和驱动模型。内核还作为硬件和其余的软件应用之间的一个抽象层。

从总体构架中看,Android相比其他平台显示出了自身的特点,如集成了WebKit浏览器、Dalvik虚拟机等模块。这些模块的应用也成了Android的焦点,开发者可以充分利用Androd提供的这些模块的接口,开发出更具有特色的应用程序。

(4)Android的API

Android的API主要包含了Views、Intents、Activity、Permissions、Resource Types、Services、Notifications、ContentProviders及XML支持。比较重要的如Views用于提供界面设计的接口;Services提供了运行在后台的服务;Content-Providers定义了一组系统级的数据库;Notifications为用户提供提醒功能的API等。相信在未来几年中,GoogleAndroid将对移动产业带来较大的影响,Android会变得更加强壮和易用。

1.5.2 MontaVista

MontaVista是MontaVistaSoftware于1999年7月推出的,目前最新的版本是3.0。它使用的是标准Linux内核2.4.2,是针对嵌入式设备量身定制的实时的、专业的嵌入式操作系统。考虑到嵌入式设备处理器、存储器资源有限的情况,在不减少新内核对嵌入设备有利特性的基础上,MontaVista公司对内核部分进行了高度裁减、配置,使MontaVistaLinux3.0系统性能具备稳定、突出等特点,同时还配备了一个由优先级驱动的实时调度器,从而使客户对实时性的要求得到更大的满足。

MontaVista已经拥有超过两千多用户和数以千万计的产品在市场上销售,它们覆盖从智能手机、高清电视、机器人、无线网络设备到3G电信服务器等各种嵌入式应用。

MontaVista具有以下几个特征:

■ 具有更短的抢占延迟,反映速度是标准内核的200倍。

■ 采用优先级线程实现中断服务程序的调度。

■ 提供三种选择模式进行实时性的配置。

■ 行业板级平台支持。

■ 支持8种不同体系结构的处理器。

■ 支持10种类型的32/64位处理。

■ 高级I/O支持。

■ 高级处理支持。

■ 高级实时性支持。

■ 高性能多线程设计。

■ 改进的调试功能。

■ 增强的开源开发工具的集成性。