Webian: 基于 Mozilla 技术的 Web 桌面

June 8, 2011
This article was contributed by Nathan Willis
Webian: A Mozilla-based web desktop

翻译:李凯/林业

第一眼看到的时候像一个打字错误,但是webian的确是一个实验性的,开源的利用Mozilla和gecko做为它的内核的桌面环境。开发者Ben Francis上周第一次公开发布它,立即产生了与Google的ChromeOS项目的对比,并且引起了Mozilla将会激怒搜索巨人并试图进入其领域的猜想。但是Webian是Francis的私人项目,并没有被Mozilla认可或赞助。但是,它的确展示了一些浏览器制造商感兴趣想要宣扬的关键概念,那就是Mozilla的HTML5和开源的web标准将会是未来开发平台的信念。

实质上,Webian是一个在Mozilla的Chromeless工具包之上写的一个应用程序的小集合,这个 Chromeless 和 Google 的浏览器无关,Mozilla 用Chrome来称呼自己的用户界面层已经很长时间了(早在 Google 发布浏览器之前)。Webian 去除了整个的浏览器界面(包括firefox使用的XUL和XPCOM)并且用一个HTML,CSS和Javascript写出的层取代了它。Chromeless是一个Mozilla的几年前的Prism项目的演变,现在的版本和Firefox4有相同的 runtime。利用Javascript APIs calling浏览器的功能。Mozilla实验室已经发布了其他的基于Chromeless的项目,包括基本浏览器和从一个SkyWriter collaborative editor 取得的代码编辑工具。

0.1 release

上周,Mozilla实验室为 Francis的0.1版本webian shell——Weibian的简单桌面——发布,刊发了一篇 guest blog post。这个shell是一个集成的且不需要其它任何窗口管理和桌面装饰的网页浏览器。它在全屏模式下运行,提供了一个主界面和在底部的一排标签以及一个在顶部的URL-and-title-bar。Francis从2009年就开始活跃的开发Webian,基于他在大学期间所编制的设计概念。其设计概念文档阐述了比该项目wiki更多的关于范围和架构选择方面的细节:浏览器是唯一的应用程序,它包含了简装的工具去访问其它的功能(比如硬件和设置),而且只有从几年前的thick client桌面metaphor很小的借鉴。

0.1发布版本包括源代码,以及Linux,Windows和Mac OS X下的2进制格式。并不是所有的设计文档中描述的功能都已被实现;Webian Shell在一个全屏浏览器中工作,但是主界面目前只有时钟和一个关机按钮。并且仍然没有Francis的"stripe" UI元素:通知和查询水平的互相堆叠,将浏览器窗口内容往下压而不是放在最顶层。根据设计文档,其目标是在可能的地方移除2.5 Dimensions 概念并且真正的以2D的方式对待2D。

值得注意的是,设计的Webian Shell在你的已存在操作系统之上运行,虽然它的确是全屏运行的(对Linux来说,意味着它在X之上运行,并且不与窗口管理组件交互),它并不像ChromeOS一样是一个完整的OS,并且,如今,你可以把它作为浏览器和作为最终桌面系统的UI demo来运行,但并不是你当前环境的完全取代。作为一个浏览器,它运行的非常快,对我来说比Firefox 4更快。一方面是由于不载入Firefox插件,摆脱Firefox自身的界面似乎提供了一个值得注意的速度提升(安装了plug-ins,必须注意在Chromeless和Webian Shell中运行)。

Webian继承了来自于Chromeless的安全模式。最新的版本在out-of-process plugins和out-of-process tabs方面有所改进。所以一个页面崩溃不会造成整个程序崩溃。但是,Flash和Java在一个页面的中断会迫使用户为了重启一个崩溃的plug-in而重新载入其它页面。隐私管理是另外的一个问题,Chromeless和Webian可以像Firefox那样技术性的维护单独用户的数据,但是管理数据的界面在Webian Shell里尚没有实现。

令人不爽的是,现在一些high-profile Google web服务并不在Webian Shell里运行,这是由于一个Chromeless的攻击合并了X-Frame-Options HTTP header的页面的上游漏洞引起的。当然这个世界上有许多的web应用,所以使用(测试)Webian Shell进行日常浏览没啥问题。http://lwn.net/Articles/446614/

长期的计划涉及了在Shell之外的单独的应用程序。但是,这个项目是基于W3C小部件规范工作在主界面的桌面小部件之上的,但是,一个实现了标记和组织内容的本地接口的照片管理应用,仍然是一个连接的远程的,基于web的发布与存储的服务。这个选择最初是难以习惯的:类似ChromeOS的方法宁愿去写一个完整的服务器投递照片管理工具胜过去利用浏览器来投递它。

尽管Webian是作为浏览器和(潜在的)桌面环境,其范围非常有限,但还是不可避免的要和ChromeOS进行比较。Fancis发在Mozilla Labs上的帖子,其导致一些网络媒体把Webian描述成Mozilla项目----Francis很快把这个错误改正过来了。他曾经得到过Chromeless团队的帮助(包括运行在X-Frame-Options上的bug),但是这个项目没有加入到Mozilla里面去,他也不是里面的员工。

这个项目仍然紧密的和Mozilla的许多目标保持一致。Mozilla已经宣布终止对Gecko嵌入API的支持,它作为Chromeless的一个独立展示案例,为了保持平衡而扮演着越来越重要的角色(承担更多的任务)。

Mozilla也在抓紧推行前端的“可安装web应用”(通过apps.mozillalabs.com网站)。Firefox通过扩展来提供应用程序支持,嵌入瘦客户端桌面系统(比如Webian)的原生支持可以说是对其价值的更好的展示。Google Chrome团队已经独立开发出可安装的网络应用程序架构,但是给浏览器处理的是一个相似的但是并不兼容的表单格式....Francis说两个他都将支持,虽然他更倾向于把这两种统一为一种格式。

在Webian设计文档中讨论的另一个特点运行在Shell URL bar/text-line 部件里的命令行接口:支持搜索查询是其首要任务,但是算法,应用程序启动以及自然语言的问题也已经在邮件列表以及论坛里讨论过了。正如一些Webian社区的人指出的那样,这项功能已经在Mozilla Ubiquity中实现,所以在这里再一次与另一个基于Mozilla的项目进行交互,这看起来是件很自然的事情。

但是摆在chrome系统面前最直接的挑战是,Webian需要绑定底层OS。但此刻,Chromeless并没有与下层系统硬件建立链接,它必须提供Webian Shell计划中描述的硬件控制(尽管Mozilla' Rainbow在此领域还没有显示出一点“生命”的迹象)。因此,如果想要发展成为完全用操作系统替代的模式,Webian就必须要几乎完全舍弃跨平台兼容性的问题,选择一个单一的stack,建立于此。

显然Linux是首选,Francis在一封电子邮件中委婉地指出了这一未来方向。“Webian将有多少跨平台的功能在此刻尚属未知,优先考虑的事情将会是建立基于Linux的版本,不过如果能够实现某些程度上跨平台性能的话,那将会是很棒的。”

当然,完全基于Webian的OS offering在与ChromeOS竞争中,其是否胜利是完全不同的问题。Francis与其他编者不会将Webian看作Google与ChromeOS之间那样的商业关系。一些编者在邮件列表中争论到,Webian的非商业策略使它在使用者眼中更加可信,他们对Google的用户跟踪活动表示担心,或者对ChromeOS缺乏透明度及建立精英管理层的过程表示不满。

毫无疑问,对于很多自由软件的提倡者而言,其立场意义重大,但是它没有以基于Linux的内核来建立Webian并以可安装映像的方式将其提供出来。邮件列表中另外一种普遍的争论为,同Mozilla一样,Webian专注于对开放标准的完全支持。因此,它将使得HTML5 video有免费回放格式的特点,而非只支持收费的格式。

坦白地讲,那种思考无论如何带着高度的猜测性,并有可能此时此刻影响到Webian Shell的展示。此刻,它展示的是无Chrome的Mozilla——这个主意是浏览器开发商争取了很多年还没有被展示的产品。桌面是静止的而网络是新的交换平台这一概念在舆论界得到了相当大的回应,此概念常常包括了这种理念:当桌面战争持续不断时,开放资源群体落后于时代。但是迄今为止,ChromeOS是仅有的以终端使用者为目标试图建立“网页桌面”的系统,它与Google提供网页服务的所有权紧紧地缠绕在一起。

因此,Webian是值得密切关注的,因为如果没有其他的原因,将要提出的“web桌面”的构想,在没有Google的环境中试验。就我个人而言,我真心希望此过程继续下去,并同时加速发展一些Mozilla的“试验环境”项目。这些可以作为web服务方面,自由软件群体很有价值的动力。但如果没有其他因素,一旦所有chrome都去除掉,将会显示出基于Mozilla的浏览器有多么小巧和快速。

Topic: sohulinux