- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 13
Maemo手册(5.1-5.3小节)参考译文
计53班 特力更
体系结构
本文从应用程序编程人员的视角出发描述了Maemo平台的高层体系结构(参考第3部分来得到更多的细节描述)。本文还包含Maemo与流行的Ubuntu和Debian桌面Linux发行版本之间的比较。
简介
Maemo是基于Debian GNU/Linux这种继承自Unix体系结构的操作系统的开发平台。Linux,GNU和Debian是开源的项目(或者是包含了多个独立项目的项目),他们都支持共享源代码,共同协作以及开放编程模型。Maemo同样提倡这些做法,它通过共享源码并直接向上游软件项目做出贡献提供了完整的基于开源软件的移动设备平台。
关键部件
Maemo基于Linux操作系统内核。Linux是支持多种硬件平台的独立内核并且可以升级来支持更宽范围更多种类的设备,其支持的设备可以从腕表到大型的服务器系统。现在所有基于Maemo的设备都有OMAP芯片组,其包括通用目的的ARM处理器和DSP单元。Maemo设备目前运行2.6版本内核。
用户空间软件与标准的GNU C语言库接口进行链接。除了一些使用了一些进行过大小优化的C语言库(例如uClibc)的最小化的嵌入式系统之外,目前大多数主要的Linux发行版本都包含了GNU C语言库。GNU C语言库是保持POSIX兼容的,而Maemo旨在与主流Linux兼容,尽可能地降低移植应用程序和应用程序引擎的工作量,并且尽可能地引进最好的移动计算的开源解决方案。
Maemo的包管理框架,文件系统层次,和通用设计方案来自于Debian发行版本。Maemo旨在尽可能地遵循Debian的设计方法。到目前为止Debian发行版本拥有最大的开发社区;到2007年9月,Debian支持十多个不同的硬件架构,并且拥有多于18000个软件组件可供使用。
Maemo的用户接口结构基于GNOME框架,尤其是GTK+部件集。GNOME是最主要的桌面Linux系统的应用框架。Maemo从GNOME项目中继承了很多核心组件,包括比如GTK+,GStreamer多媒体框架,GConf配置管理,和XML库。Maemo通过提供移动桌面Hildon扩展来扩展GTK+/GNOME。
开发环境
Maemo使用了基于Scratchbox的交叉编译环境。在Linux系统中交叉编译并不完善,因为通常其生成脚本利用了自动工具,而自动工具还未被设计完善以适用于交叉编译。所以,许多的Linux发行版本都回避了交叉编译的问题,并且使用专用硬件来运行本地交叉编译。这是一个很大的限制,因为有时本地硬件生成环境搭建起来很困难。并且即使它是可以使用的,那么通常生成脚本过程运行起来也会比交叉编译慢数倍。Scratchbox完全分离了目标和主机环境从而解决了这个问题。基于自动工具的生成脚本可以不经修改地运行于Scratchbox,从而在拥有不同于目标系统的硬件平台的主机系统上生成目标平台的二进制程序。
官方的Maemo API提供的是C语言的。Maemo的核心API还有C++和Python版本的。还存在使用于其他语言和环境的非官方的版本
软件层
这一部分简短地描述了Maemo的软件层。在下一部分会给出一个更加详细的描述(软件分解视角)。
操作系统层和启动引导
引导装载程序需要关注一些硬件细节的初始化,然后在启动过程的早期阶段装入操作系统内核。Maemo系统基于Linux 2.6操作系统。在内核引导过程的最后阶段,InitFS(一个小的JFFS2文件系统镜像)将会被映射。InitFS将在引导阶段被用作根文件系统,并且在通常的设备操作中被映射到/mnt/initfs。最终的根文件系统在JFFS2镜像之上,而这个镜像是在InitFS引导脚本运行结束以后被映射的。
InitFS上的应用程序会连接uClibc库,这是一个体积很小的C语言库的版本,可以减少空间的占用。设备状态管理实体(dsme)也在InitFS中。Dsme守护进程的存在是至关重要的,因为它也用于检查硬件监视程序。
Linux内核是系统的核心软件部分。它为系统的设备提供硬件抽象层、内存管理、进程管理、还有包括链路和传输层协议例如TCP/IP的网络服务、包括文件系统的文件管理以及多种其他的服务。
内核的一部分在功能上可以被实现为动态加载的内核模块。一个内核模块可以在运行时被加载或者被移除。例如设备驱动、网络协议、或者文件系统等内核功能都可以被实现为内核模块。
在Maemo设备上的基于ARM/OMAP的Linux内核在内核核心的虚拟服务层之上实现了一些针对特定硬件的设备驱动和总线驱动。这些设备驱动包括USB、LCD、WLAN、摄像头和音频等。而总线驱动包括了Flash总线、SPI、I2C和串行总线等。
系统库
Mae
文档评论(0)