嵌入式linux中文站向广大嵌入式linux爱好者介绍一下Meego操作系统的新特点。MeeGo作为面向“互联计算”的开放式操作系统平台,MeeGo由诺基亚和英特尔公司共同支持、Linux基金会管理。它针对上网本、平板电脑、手持设备、车载信息系统等,为用户提供丰富的高品质移动互联体验。
Meego平台的特点
英特尔亚太研发有限公司总经理兼英特尔中国软件与服务事业部总经理梁兆柱表示,英特尔会为MeeGo在Atom平台上进行优化,也支持其他厂家和开发人员为其他硬件或软件平台优化MeeGo。对于Meego会不会出现类似Android设备操作界面不统一给用户带来困扰,梁兆柱表示,Meego 在不同的移动智能设备应该需要不同的界面。
对于开发者而言,MeeGo支持不同硬件架构的最广泛设备种类,只需编写一次程序便可以让应用程序运行于不同的设备平台上,从而帮助设备开发商有效地节省开发成本、降低市场风险。这是英特尔紧密携手产业合作伙伴基于英特尔架构推动下一代智能手机、上网本、平板电脑、车载信息系统等硬件创新的同时,立足于加快软件及应用创新的重要举措和实际行动。
英特尔公司副总裁,软件与服务事业部总经理詹睿妮表示:MeeGO这个平台是基于不同的应用改变模块,是一个核心的开发平台,关键的API都是一样的,而且这将会帮助开发人员能够来进行英特尔平台上的创新和开发,而且进一步的降低成本,针对于不同设备开发的成本,而且是基于英特尔平台的。
詹睿妮称这样一个软件发布的平台,它对开发者来讲是一种革命性的工具,跟原来的比例分配是很不一样的。而且,它的不同之处在于人们能够嵌入一系列的应用,它放在合作伙伴的商店里面,这样人们可以创建一个社区,它包括很多凌动的应用,应用于电话、应用于上网本、应用于电视等的开发,我们可以结合在一起,把它们进行确认,把它们放到不同的商店环境当中,而且是在整个的生态环境当中实现。
下面先看一下Meego的框架,从整体角度了解一下Meego平台:
▲图:Meego框架
MeeGo平台被精心设计多个必要的组件,以便为提供最好的用户体验。MeeGo分为三层:
1,MeeGo操作系统基础层,包含Linux内核及其核心服务,以及为MeeGo支持多种平台的硬件适配模块。其中核心服务包括配置数据库GConf,系统库,消息总线和平台信息。
2,MeeGo 中间层,包括网络服务(蓝牙、语音、即时通讯、电话、连接管理),互联网服务(WebKit、网络服务库、地理信息),虚拟图形图像服务 (3D[OpenGL]、2D[Cairo]、界面展现[Pango,Qt]、X窗口系统等)、媒体服务(媒体框架[GStreamer]、摄像、编解码器[GStremer插件]、音频、UPnp),数据管理(打包管理等),设备服务(设备健康、资源管理、感应、备份还原),个性化服务(PIM、设备同步等)。在这些服务上面,有一层MeeGo API层,用于程序员的开发。
3,MeeGo用户体验层,为多个平台提供基本的用户体验,主要包括UI框架和程序,MeeGo为手持电话、上网本以及其他平台提供支持。
MeeGo操作系统基础,作为连接应用程序与实际数据处理的桥梁,需要每个硬件平台的制造商提供一下三种扩展:
1,内核驱动,如Windows一样,各个设备的厂商提供驱动程序,如USB、蓝牙等设备。
2,体系架构扩展包,用于支持某些特定硬件架构特性的软件,如ROM上的固化代码。
3,内核配置文件,这个文件不仅被MeeGo初始提供,硬件生产商也需要使用这个文件,这个文件描述了各个设备的配置和选项,比如处理器类型,网络支持能力,内核调试选项等。
X窗口系统,又称X11或简称X,提供了图形框架及其接口,硬件厂商需要提供两类扩展:
1,核心体系框架扩展,这些扩展包用于提供特定的架构特性,比如图像控制、显示和加速。
2,X配置文件:这个文件用于提供X窗口系统初始化时的配置和运行参数,如果硬件存在设备相关的被X窗口系统使用到的配置,则需要写到该文件里面,比如显示的分辨率。
Meego开发工具
Meego为开发人员提供了一整套工具,以便于开发人员能够轻松、迅速的创建各种新的应用。Meego将Qt平台的开发技术融合进来,使用 Qt*和Web runtime作为应用程序开发,Qt基于原生的c++,Web runTIme基于Web应用程序(HTML,JS,CSS等等)。Qt和Web runTIme带来了跨平台开发,使应用程序可以实现跨越多个平台。Web开发工具的插件为标准的Web开发工具,包括Aptana*和 Dreamweaver*。
▲Nokia’sQt4.7 App Framework
Meego的开发工具有开源和非开源之分,其中开源工具包含:Meego*Image Creator,能够启动创建各种格式的自定义系统镜像。GNU*工具(gcc,gdb,·······)。PowerTOP*(IA only),属于平台级的功耗分析和优化工具。非开源的工具为英特商业开发工具(英特尔架构专用),其中包括:英特尔C/C++编译工具,英特尔JTAG 和应用程序调试工具,英特尔集成性能基元(英特尔IPP)以及Vtune性能分析器。
Meego的工作模式
关于Meego的工作模式分为几大模块,包括上游的开源项目,Meego开源项目,而中间则是有编译环境、Meego核心、netbook参考框架、IVI参考框架、MID参考框架,逐步推送到操作系统厂商,操作系统厂商结合不同的解决方案设计构成的商业方案,最终研发出不同的设备。
Meego更注重图形的处理,其中有一个中间层为可视化服务,包括3D图形,基于OpenGL*/OpenGL ES进行3D图形渲染的实现,并支持硬件加速,针对不同平台定制的硬件加速功能。2D图形层提供了支持硬件加速的先进的2D绘画功能。国际化渲染组件支持国际化的布局和文本渲染。X.org提供了一个对X Windows系统的实现,包含针对架构特定的驱动程序、补丁以及根据需要进行的配置。
MeeGo OS中间层的各个服务
1,网络服务:管理声音和数据的连接,业务形式上管理的是蜂窝电话和IP电话以及数据的传输,具体的连接技术包括WiFi、3G、WiMax和蓝牙。具体可从以下四方面入手研究:
1,连接管理(ConnMan)
2,电话API(oFono)
3,IP、VOIP、IM、Pres
4,蓝牙(bluez)
2,互联网服务:展现Web内容,提供Web运行库支持,与Web交换数据,以及位置服务,具体可从以下四方面研究:
1,排布引擎(WebKit)
2,Web运行库(WebKit)
3,Web Service(libSocialWeb)
4,LocaTIon(GeoClue)
3,虚拟现实服务:提供2D和3D的图形图像服务,包括描绘国际文字以及利用硬件进行图像加速的功能,可从以下四方面研究:
1,3D(OpenGL)
2,2D(Cairo QPainter)
3,i18展现(Pango、QtText)
4,X窗口系统
4,媒体服务:提供音频/视频的回放,主要关注音视频数据的获取、分流、解码、编码、定位等等,可从以下五方面研究:
1,媒体框架(GStreamer)
2,摄像机(GStreamer插件)
3,编解码器(GStreamer插件)
4,音频(PulseAudio)
5,UPnp(GUpnp)
5,数据管理:数据管理子系统提供元数据文件的释放和管理,比如媒体文件的元数据,设备上下文、安装包等。可以从以下三方面研究:
1,内容框架(Tracker)
2,上下文框架(ContextKit)
3,打包管理(PackageKit)
6,设备管理:设备管理子系统,提供一系列服务,管理设备状态,包括一切使设备安全的状态,设备数据交换、数据传感、数据同步、数据备份和还原。
7,个性化服务:管理设备上用户的数据,包括私人信息管理(日历、联系人、任务等)以及web service的用户帐号管理。
其他需要硬件厂商提供的支持
1,启动加载器:启动加载器的工作是为操作系统提供必要的硬件初始化以及准备工作,它提供的是主板/处理器相关的代码,启动加载器是ROM代码和内核的粘合剂。
2,图像设备格式化工具:提供了怎样往设备上写入图像的细节,这个工具被用来创建一个以恰当格式运行的设备对象。
3,猫的支持:为特定蜂窝电话提供支持的电话插件。
4,硬件相关的媒体编解码器。
MeeGo安全机制架构
MeeGo提供一个可扩展的安全机制架构,它提供一种基于角色的准入控制,这种方式被很多系统广泛使用,这种方式使用一种可扩展、可更新的策略,由软件堆栈德关键部件实现。
MeeGo的安全机制不是MeeGo 1.0版本的一部分。
MeeGo API
MeeGo API提供应用程序开发的接口,当前的版本包括Qt4.6.2,其他特性正在开发,更多的细节可参考Meego API page。
Qt
Qt为程序员提供了艺术般的图形界面开发功能,Qt完全面向对象,易扩展,真正允许组件式编程。包括的组件有:QtGui, QtCore, QtDBus, QtMulTImedia, QtNetwork, QtOpenGL, QtScript, QtSql, QtSvg, QtWebKit, QtXml, Qt3Support, QtDeclareative, QtHelp, QtScriptTools, QtTest, QtXmlPatterns.