技术开发 频道

Intel和Nokia的oFono独家深入解析

   【IT168 技术文档】日前,诺基亚与英特尔联手推出了一个名为oFono的平台,中国大陆的对其十分关注。其中的一个重要的原因是,诺基亚是全球先进大手机厂商,而英特尔是世界领先的半导体制造商。

对oFono的关注主要集中在几个方面:

  • oFono是一个基于Linux的手机平台
  • oFono有意对抗其他手机平台乃至手机联盟
  • oFono有可能引领诺基亚进入上网本等领域

  迄今为止,关于oFono的资料还很稀少,包括其源代码也没有向公众公开。在留心中国大陆方面的对oFono的关注和集中报告的同时,技术人员更应该从技术的角度审视oFono的本质是什么。

关于oFono的官方介绍:

oFono是什么?

  在oFono的官方网站上www.ofono.org上,oFono.org是一个使开发人员共同设计移动电话(GSM / UMTS)应用的场所。oFono.org在GPLv2许可下授权。它包括了高层的D-Bus API,可以让电话应用在各种许可下使用。oFono.org同样也包括了底层的插件式的API,这可以方便集成各种开源和第三方的电话协议栈、蜂窝调制解调器和存储后端。这些插件API的功能模仿公共标准,特别是符合3GPP的Ts 27.007的 “AT命令集的用户设备”。

oFono有什么不同?

  oFono的目的是提供一个简单易用的接口,可用来创造丰富的电话应用,而不需要一个能够深入了解的技术和它的局限性。为了做到这一点, oFono提供语言无关名D-BUS API,它是非常容易使用,不需要生成的绑定或其他'脏'的步骤——使用基于IPC的的API。

这些API遵循以下四个原则:

一致性
最小化
容易使用
完整

oFono的本质是什么?

  从技术的角度分析oFono官方的介绍,可以看出和媒体的报道有很大的区别。从现有的角度来看,oFono是一个电话程序的框架。它包含了三层:中间层是oFono的核心协议栈,它对上提供oFono的API,对下则是插件的接口;下层是各种Modem的插件;上层是电话方面应用程序。

从嵌入式软件的角度,oFono使用了比较典型的层次结构,需要说明的几点是:

1. oFono并不是一个手机平台?

  在架构上,oFono并不是一个手机平台,它只是一个电话程序的框架。虽然手机的主要功能是打电话,但目前手机,尤其是比较高级的手机和智能手机的架构并不仅仅是打电话。在目前的手机设计中,电话功能只是其中比重不大的一部分,除此之外还包括了GUI系统,多媒体,连接,能源管理,资源管理等多方面的内容。从现有的手机平台中看,无论成功与否,它们大都是具有全面手机功能特性的平台。oFono目前仅仅具有电话相关的功能,还并不能算作一个手机平台。

2. oFono是否基于Linux?

  目前Linux在开源领域有着非常重要的地位,目前很多的手机“操作系统”也都是基于Linux平台的。从oFono公布的资料中,没有明确表明它是基于Linux的。oFono的系统架构图也相当模糊,没有体现Linux操作系统内核空间和用户空间的界限和关系。

  但是从oFono内部结构和模式上来看,很有可能是基于Linux的。从长远来看,oFono也很有可能用于别的平台。

3. D-bus的作用是什么?

  oFono的资料中,主要强调了D-Bus的使用。实际上D-Bus在Linux的计算机领域是一个非常普通的技术,主要目的是通过D-Bus可以把各种服务挂在其中,客户端通过D-Bus来访问服务,用于没有动态库直接连接的问题,由此可以避免软件许可带来的问题。

  从技术角度看,oFono对D-Bus使用的方式很典型,并无特殊之处。

oFono的目标是什么?

  关于oFono的目标,媒体主要提到的两点是诺基亚进军上网本市场,以及对抗其他手机平台。

  从目前的状况来看,oFono还是一个较小的项目,仅仅按照目前的软件架构,即使从头开始,也不过需要太长的时间。关于媒体所提到的oFono的两点目的,似乎都还有待商榷。

  从上网本等设备的角度,oFono提供的却是一个电话协议栈,电话功能目前显然还不是上网本、移动上网装置的核心内容。虽然不排除它们电话功能发展的可能性,但目前oFono提供的较为简单电话架构还显然不足以对上网本等设备的走向作出冲击。

  从手机平台的角度,可以肯定地是,oFono并不是一个手机平台,显然也不太可能“对抗”任何手机平台。对于低端手机,实现电话功能很容易,并不需要使用一个通用的“电话功能框架”;而对于高端手机,电话功能只是其中一小部分,oFono不足以构建手机平台。

  作为一个开放的项目,参与oFono来学习还是很有价值的,这也是oFono.org所提到的。

oFono和Qt Extended的结合

  对于诺基亚的手机平台,尤其是Linux平台,很容易让人联想到诺基亚通过收购奇趣(Trolltech),所获得的Qt Extended平台。就像媒体所说的那样,从技术的角度,oFono和Qt Extended进行结合也是有可能的。

  Qt Extended并不仅仅是QT一个GUI功能核心库,它也是一个多层的软件结构,下层是操作系统,中间层是QT的GUI库以及其他的核心库(包括图像、数据库、网络、多媒体、电话、连接等多个方面),上层是基于QT API的应用程序。

   虽然Qt Extended并不是一个完整和成功运作的手机平台,但是它的内容还是很多的,目前也是开放项目,有众多人员的参与。可以肯定的是,Qt Extended的内容远远多于目前oFono,如果融合,也应该是以Qt Extended为主,oFono为辅。
 

1
相关文章