移动终端操作系统的新趋势:Boot to Browser
七月初,Mozilla 的 Firefox OS 挾德国电信、Smart、Sprint、意大利电信、Telefonica 和 Telenor 等七大电信运营商,中兴和 TCL(Alcatel One Touch)两大设备制造商的支持隆重问世,一时间,评论不断,均在质疑在目前移动设备上 iOS 和 Android 平分天下已成定局,微软的 Window Phone 前景不明的的市场环境下,Firefox OS 还有没有机会呢?
Firefox OS 的前世今生
FireFox OS 的前身是 Mozilla 的 “Boot to Gecko(B2G)” 开源项目,于 2012 年的 7 月初更名为 Firefox OS。其主要的技术特征是以 Linux 为操作系统内核,采用 Mozilla 的浏览器应用运行时环境技术构建主要的中间服务层,人机交互的界面应用完全使用 HTML5 的 Web 技术。其原名 “Boot to Gecko” 十分形象的描述了这个操作系统的本质:系统启动后切换到 Gecko 的 HTML 5 运行环境。从 Boot to Gecko 技术文档上看, 系统分成三个层次。
- Gaia:用户交互层,Gaia 实现屏幕锁屏,主界面(Home Screen), 电话拨号应用,短信应用,摄像头应用等等。Gaia 完全使用 HTML、CSS、JavaScript 技术来实现,通过 Gecko 实现开放的 Web API 访问底层操作系统。Mozilla 在今年的加入 W3C 的 DAP 项目,携手标准化组织提供的是跨浏览器的标准化 “ 手机 ” 应用 API ,将智能手机设备上的各种能力和资源以标准化的语法开放,使应用可以运行在任意的标准浏览器系统中(只要浏览器支持了足够多和足够新的 Web 标准 API)。Firefox 的 Gaia,不是采用 Web 语法的应用框架、类库、微件(Widget),而是直接使用 ” 标准的 Web API ” , 在 Mozilla WebAPI 的官方网页上,可以看到 Mozilla 的 Web API,囊括了电话通信、震动 API(来自传感器)、短信 SMS、电源管理、WiFi 管理、联系人、蓝牙等等智能手机上各种能力。
- Gecko:B2G 系统的应用运行时环境,Gecko 实现了标准的 HTML、CSS、JavaScript 在操作系统上的解释运行,由相关网络协议栈、图形软件栈,布局引擎,JavaScript 虚拟机等部分组成。
- Gonk:Gonk 是 B2G 操作系统的底层核心,包括一个 Linux 的核心,以及一个用户空间的硬件抽象层(Hardware Abstraction Layer :HAL),Linux 内核、libusb 驱动、bluz 蓝牙驱动采用的是通用的开源项目,而用户空间的硬件抽象层(HAL)则部分来自 Android 的开源项目 AOSP(Android Open Source Project),例如:GPS、摄像头 Camera 等等。Gonk 可以看作是一个特别简单的 Linux 发布版本。
Firefox OS 运行的目标设备为 Android 的兼容设备,主要是 ARM 的手机终端设备。
浏览器功能与操作系统的直接结合
相对于单纯的目前的传统纯浏览器 Firefox ,Firefox OS 关键区别在于 Web 应用能够访问操作系统的硬件及软件各种资源,如何将系统的核心资源以安全而简单的方式向 Web 应用开放是一个核心的问题。在 Firefox OS 此功能主要由核心进程 b2g 以及内容进程 Content Process 完成。(以下描述内容来自于 Boot to Gecko 官方开发文档,由于是正在发展中的系统,可能会随着时间有所变化)。
b2g 具有最高优先级的系统权限,能够直接访问所有的硬件,例如控制 3G 通信的 Modem ,往显示设备的缓存绘制图像,与 GPS、摄像头、WIFI 模块等各种设备交互等。Content Process 是 b2g 派生出来的子进程,用于加载 Web 应用以及其他 Web 内容,Content Process 具有非常有限的系统资源访问权限。Content Process 通过进程间信协议描述语言 IPDL(IPC Protocol Definition Language)定义的远程接口与父进程 b2g 通信,以获得对系统受限资源的访问。
Web 应用加载在隔离的 Content Process 中,据此形成 “ 沙箱(SandBox)” 。每一个 Content Process 对应着一份权限列表,当 Content Process 向 b2g 进程发送 IPDL 消息要求访问某系统资源时,b2g 执行权限检查,如果超出 Content Process 对应的权限访问列表,则访问将被拒绝。
可以看出,b2g 进程在系统安全中的核心地位。
Boot to Browser 的移动手机操作系统
Boot to Browser 的操作系统是狭义的 Web OS ,指的是使用 Web 技术实现人机交互的设备操作系统。同类的操作系统除了 FireFox OS 还有 Chrome OS、Tizen 、以及 HP 的 WebOS 。现在看来,目前实现的 Web OS 的一个基本的技术特征是:“ Linux inside , HTML 5 outside ”。系统由 Linux 内核直接嫁接 HTML 5 的应用运行时环境而成,在操作系统内核启动之后切换到 HTML 5 的运行时环境,由基于浏览器的中间层代替原来的 “ 桌面系统 ” 接管了人机交互的界面。于是,” boot to browser “ 可以总结这类操作系统的运行特征,如果说 Firefox OS 是 “ boot to Gecko ” ,ChomeOS 是 “ boot to chrome ”,WebOS 就是 “ boot to webkit ”,甚至连 MAC OS X 目前也有 “ boot to safari ” 的方式 ( 目前的 “ boot to safari ” 在系统启动之后,就直接进入 Safari 的运行中,用户仅仅能够通过 Safari 进行上网操作 ) 。
“Boot To Browser” 类型的操作系统减少了从操作系统底层环境到 Web 应用的中间环节,俨然是未来其中一种移动操作系统的类型,目前初见端倪,可以猜测,伴随着 HTML5 的大热,每个浏览器都可能发展成操作系统。
Boot to Browser 新型移动操作系统的发展前景
目前, iOS 和 Android 平分移动操作系统的天下,应用生态系统也旗帜鲜明的分成 iOS 阵营和 Android 的阵营,目前大多数人悲观的认为 Firefox OS 出来的时机太晚,无法从成熟的市场上分一杯羹。
但是,作为 Boot to Browser 的操作系统 FireFox OS 能否带来区别于目前的移动智能操作系统不一样的操作体验,进而瓜分移动智能操作系统的市场呢?个人的看法是:也许可以提供手机终端上的 “云应用” 桌面。
将应用的程序代码以及数据均放在云端平台,用户开机后直接登录云端平台,应用就像目前的网页一般,使用时下载部分的当前需要的代码(HTML、CSS、JavaScript 等)进行展现,一边使用一边下载一边展现,充分发挥解释型语言的特点,仅仅是正在运行的程序一小部分局部占用着移动手机终端的存储以及计算资源。
这种云应用桌面最大的好处是简单、安全。首先,正如上网浏览网页一般,用户不需要有安装的概念,仅仅有购买和使用的概念。其次,可以解决部分的安全问题,如果某个应用被发现有安全的漏洞,在官方的云平台上发布升级,则马上可以在海量的终端上生效,如果某个应用被发现为恶意软件,在官方的云平台上卸载即可;再次,应用的跨终端使用,用户在任意一台支持 HTML5 的设备上登录云平台,均可以使用各种应用和内容,应用的中间状态在终端切换中能够得以保持。
这种云平台与瘦终端应用密切配合的交互方式,也许会为对云计算平台筹谋已久的产业大头所青睐。让我们拭目以待。