您的位置:首页 > 运维架构 > Linux

Moblin 概述和基本工作原理

2008-04-15 13:03 337 查看
市场上出现了一种新的设备,它能够访问Internet上丰富的内容,同时没有与PC相关的复杂性。这些设备以各种形式出现,从移动互联网设备(Mobile Internet Devices,MID)、便携式媒体播放器(PMP)到个人导航设备(PND)、数码机顶盒(STB)到笔记本电脑。
Moblin.org项目由Intel于2007年7月正式启动,它的目的是推动此类设备所需的最新技术的发展。Moblin.org项目最初主要集中于开发MID软件系统,但随着时间的推移,现在已经包含了其他产品种类。
本文将描述Moblin项目背后的动机,它的目标、关键项目和技术,以及演变过程。
 

Moblin愿景

2006年,Intel发布了第一代超级移动电脑(UMPC),此时设备制造商表示,他们迫切需要更多的操作系统,能满足以下更高水平的要求:程序、硬件
l         可从多个供应商处获取
l         成本低,使这些设备能够以消费者能够接受的价格卖出
l         向最终用户提供丰富的Internet和多媒体体验
l         可定制,允许在各种设备和制造商特有的品牌上进行部署
l         能更好地支持无线网络技术(WiFi、Bluetooth、GPS、3G、WiMax)
l         能进行优化,以降低能耗、延长电池寿命、更有效地利用系统资源,比如内存和存储器
l         系统软件和内置应用程序符合消费者习惯、直观、易于使用
l         为提高软件可用性和方便开发人员,利用x86软件系统
l         启用更具吸引力的新用户模型和用户界面图
从这些要求来看,基于Linux*的操作系统可以作为突破口。实际上,许多成功的移动产品和家电都使用Linux作为核心操作系统。但是,开源社区总是会主动推动这些设备所需的新技术的发展。
基于以上原因,Moblin.org项目的想法诞生了。Moblin.org项目的目的如下:
l         开发新技术,填补对MID和其他面向消费者的设备使用Linux的空白
l         启动支持这些新设备所需的软件系统

Moblin试图解决的主要问题是什么?

因为第一代MID基于标准的移动PC硬件,Intel项目团队很容易将桌面/笔记本PC Linux部署到MID平台,执行一些早期研究,帮助定义Moblin项目的范围。完成该步骤后,一些问题很快暴露出来:
l         标准的Linux桌面用户界面(UI),比如GNOME和KDE更适合有经验的计算机用户,并不适合于新手。Linux的“幕后运行”对于最终用户应该透明。
l         标准PC Linux部署的应用程序GUI编写在MID上运行不佳,MID的主要输入方法是触摸屏,主要输出方法是横向屏幕,比标准宽度(800*480)要短。屏幕按钮太大或者在屏幕上的位置不正确。很多情况下,您甚至无法看到按钮,因为它们超出屏幕范围了。
l         内存和磁盘占用太大。标准PC Linux部署的大小有几G,占用512 MB以上的内存。由于成本问题,MID的内存通常在512 MB以下,板载闪存通常有4-8 GB。如果占用太多存储空间,将没有多余的空间供用户使用,并且运行时的性能可能不佳。
l         电源效率不高,这可能是Linux更多的关注其他基础问题,而忽视了对这个重要问题的关注。
l         Linux的软件开发通常在本身的系统上进行,这意味着软件可以在同一个系统上进行编辑、编译、测试和调试。但由于MID使用的处理器功能较低(为了适合小功率),与功能强大的多核笔记本或桌面工作站相比,它们可能不适合进行软件开发任务。
这个原型确定了Moblin.org的重点项目,即开发“适合MID”的应用程序框架、适合消费者的应用程序和用户界面、能耗优化、平台配置工具和开发环境。
同时,Moblin团队意识到嵌入式Linux操作系统有很多优势:
l         操作系统高度模块化,允许平台开发人员能细粒度控制哪些组件可以安装到目标平台。不利方面在于,平台开发人员需要详细了解上千中软件包才能开发出需要的最终用户使用模型。
l         由于嵌入式OS在处理能源、内存和存储方面存在诸多限制,因此都进行了高度优化。
l         嵌入式Linux的软件开发模型是“主机/目标”模型,大部分开发(代码编辑、编译、构建)都在主机上完成,然后将得到的OS图像下载到目标,并从主机PC远程进行调试。
Intel Moblin团队认为可以吸取桌面Linux和嵌入式Linux两家之所长。
Moblin团队处理的第一个问题是如何让平台开发人员轻松地配置目标Linux OS图像,而无需详细了解目标设备图像中需要哪些软件包。解决方案是创建了一个成为关键Moblin项目之一的内容,“Moblin Image Creator”。

Moblin Image Creator概述

Moblin Image Creator(MIC)是一个以两种开发人员为目标的工具:负责创建运行在设备上的核心平台软件的平台软件开发人员;创建为核心软件堆栈添加价值的软件组件的开发人员。第二种开发人员通常创建中间件/库或者最终用户应用程序。
如果您是平台软件开发人员,MIC允许您轻松为目标设备创建图像,包含启用特定用户模型所需的所有软件组件。您不需要知道要配置上千种开源软件中的哪些来启用特定用户模型,只需要使用MIC从一组预定义的功能集合进行选择,即可轻松创建可以下载到目标设备的图像。
如果您是中间件或应用程序开发人员,MIC可以用来创建一个开发环境,它包含了隔离(chroot)环境中进行编译、测试和调试软件所需的所有核心组件。
MIC在运行Linux的主机开发PC上运行。在您希望在实际目标硬件上运行图像之前,所有的开发工作都在主机PC上完成。要运行时,特定于设备的图像将刻录到可擦写媒体(USB随身存储器、DVD等),从主机传输到目标并在目标上加载。因为主机和目标设备都是基于x86指令集的,因此不需要交叉编译和模拟。
要理解MIC的工作原理,首先要了解几个基本术语:
项目(project):项目是特定于平台的构建环境,它具有一个或多个目标。当创建一个项目时,MIC将在您指定的目录中创建一个完整的Linux文件系统。Chrooting到该目录将创建一个隔离环境,您可以为设备开发软件,而不会影响开发机器的根文件系统。该环境包含了很多工具,比如apt,您可以用来安装所需的工具包。项目目录包含了一个或多个目标,这些目标加载到<项目位置>/targets目录中。
平台(platform):平台是您的目标设备。创建项目时要选择平台。这确定了哪些内核、系统配置、设备驱动程序将可以用作项目中创建的目标的一部分。
目标(target):目标是特定于平台的Linux文件系统,在项目的/targets目录中创建。您通过目标创建图像。每个项目可以存在一个或多个目标。与项目类似,您也可以在创建图像之前chroot到此环境以从项目中配置和复制应用程序。
函数/功能集合(function/feature set,fset):函数(或功能)集合是一组包,表示Moblin Image Creator可以在目标上安装的函数区域。MIC中包含了很多预定义的fset,从最小的“核心”fset(将平台引导到命令提示行)到完整的MID堆栈fset(包括浏览器、媒体播放器和应用程序启动界面/主屏幕)。Fset与其他fset可能具有依赖关系。如果您选择安装依赖其他fset的fset,则首先可能会在目标上自动选择并安装先决fset。平台开发人员可以随意创建自己的定制fset,以满足各自的需要。

图像(Image):图像是一个从目标创建的大型(350-600多MB,取决于包含的fset数量)二进制文件。可以创建很多类型的图像,包括实时图像(OS运行于可擦写媒体,未安装到设备上)和安装图像(软件堆栈加载到设备的内置闪存或磁盘驱动器中)。创建图像后,可以在目标设备上安装它,或者从可擦写媒体(比如USB随身存储器或DVD-ROM)运行。
下图展示了项目、平台、目标、fset和图像之间的关系:

图字:
项目
目标
图像
n         开发环境的文件系统
n         开发库
n         目标设备文件系统(完全针对设备配置)
n         ISO或USB目标图像
n         实时或可安装图像
Moblin Image Creator提供GUI和命令行两种界面。下图是GUI界面。

 

创建目标后,平台开发人员可以在主机PC上编写、构建、测试和调试他们的软件。通过使用MIC和xephyr工具,需要在目标设备上显示的屏幕输出可以在本地工作站显示,大部分软件开发都不需要实际的目标设备。当然,特定于设备的软件,比如内核、设备驱动程序、硬件加速图形、多媒体编解码器和电源管理软件需要在实际目标设备上运行和调试。

下图是在xephyr下运行的应用程序启动界面/主屏幕。

Moblin.org技术

Moblin核心Linux堆栈基于经过Linux和其他开源社区考验的技术,由Moblin团队精心挑选,以启动MID和其他面向消费者设备的目标使用模型。这些技术包括:
图形、窗口设置、多媒体:X Window System、OpenGL、GStreamer、Helix、ALSA、Video for Linux、Matchbox窗口管理器
应用程序框架:GTK、Cairo、Pango、BlueZ、D-Bus、Avahi、Evolution Data Server (EDS)
核心操作系统:Linux kernel、芯片集驱动程序、特定于平台的设备驱动程序、核心库、完整的网络堆栈、USB堆栈、平台电源管理等。
Web浏览器:基于Mozilla的浏览器,全面支持可用的Linux插件,比如Adobe*Flash*

下图展示了Moblin软件架构的高级视图。

图字:
 

基于Linux的MID堆栈概貌
 

通信
(Internet、电子邮件、IM、VOIP)
娱乐
(音乐/视频流、移动TV、游戏、摄像机)
信息访问
(新闻/RSS、google 地图、目录、位置服务、office/企业应用程序)
移动核心堆栈
参考“主屏幕”UI
开源应用程序
可扩展的浏览器
媒体播放器
电源管理安全
Mozilla*核心
Flash* RP* PDF* Java*
媒体框架
 

编解码器 DRM
应用程序框架
核心操作系统
驱动程序
 

BIOS/EFI
 

LPIA HW
 

绿色栏中都是开源软件组件,大部分都经过了Intel和Moblin社区其他成员的优化,使用Moblin Image Creator构建目标设备图像时会包含这些组件。橙色栏中是可选的软件组件,有些不是开源的,创建完整的平台可能需要独立软件供应商(ISV)的OEM进行授权许可。
 

Moblin项目

Moblin.org包括了几个开源项目,侧重于开发MID和其他面向消费者的设备所需的关键技术。这些项目包括:


请点击此处下载,查看全文

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息