新时代新潮流 WebOS【9】脸谱的故事

公司

2009-03-12 12:03

前文说到,WebOS 一大特色是基于 WebKit 的脸谱(Webkit-based Widget Toolkit)。这个做法有什么好处?回答此类问题的一个行之有效的办法是横向比较,货比三家,高下立见。

故事得从 1979 年,Steve Jobs 访问 Xerox Parc 研究中心说起。Steve Jobs 看到鼠标和 GUI,兴奋得手舞足蹈。但是怎么做,Xerox Parc 的人没有详细介绍。Steve Jobs 的对策有二,一个是自己琢磨,另一个是从 Xerox Parc 挖人。经过一番艰苦努力,很快 Apple 推出了 MacOS,其中最抢眼的,就是 GUI。但是这套 GUI 系统是怎么实现的,Apple 也同 Xerox Parc 一样,态度是,无可奉告。

其它企业一方面眼馋 Apple 的技术,另一方面向学界表达它们的失望。在美国,学界是研究与创新的发动机,它的成果通常是公开的,以便广泛迅速地推广这些研究与创新成果,把科技转化为生产力。现在 Apple 走到学界前面去了,社会对学界当然有所失望。知耻而后勇,MIT 的 Media Lab 着手研究供 Unix workstation 使用的 GUI。1984 年,项目告一段落,成果就是 X Window System。

这个学术成果一经公布,工业界立刻着手改进,力图把 GUI 做得更直观,更美观。1980 年代末,Sun Microsystems 和 AT&T 合作,推出一套 OPEN LOOK,试图把它推广成为 Unix workstation 的 GUI 标准。SUN 和 AT&T 的野心不仅仅限于 GUI,他们的终极目标是想把诸多 Unix 版本,统一到自己的版本上。这个举动,引起了 IBM,HP 等等公司的警觉。

过了几年,1992 年,微软推出 Window 3.1,一举超越 Apple 的 MacOS,成为 PC OS 的霸主。Window 风格的 GUI 被广泛接受。IBM 和 HP 联手成立了一个 OSF(Open Software Foundation)组织,以此抵制 SUN 和 AT&T 兼并 Unix 的企图。当时在 SUN 公司内部,很多人把 OSF 故意曲解为(Opposite SUN Forever,永远反对 SUN),可见在 SUN 的心目中,OSF 是 SUN 的头号敌人。
OSF 的一个成果,是 Motif 风格的 Unix GUI。而 Motif 的设计理念,是尽力模仿 Window 3.1。Motif 在 Unix 用户群中赢得了广泛认同。眼见局势向不利于自己的方向发展,SUN 立刻转变立场,主动寻求与 OSF 合作。在 Motif 基础上,糅合进一些 OPEN LOOK 的元素,成为 CDE(Common Desktop Environment)。至此,Unix 世界的 GUI,基本统一在 CDE 风格之下。

drfcsw8_275c45c4vgc_b

Figure 1. Comparison between X Windows and CDE
Courtesy http://farm4.static.flickr.com/3634/3348117565_7ba1dd7517_o.jpg

正当 Unix 世界上演合久必分分久必合的肥皂剧,开源的 Linux 暗流涌动。1996 年,Linux 的猛人们觉得 CDE 已经跟不上时代,于是开发了一套 KDE,K 是 Kool(Cool 的异体词)的首字母。显然,矛头直至 CDE。为了方便开发,KDE 使用了 QT 作为图形处理库。但是 QT 不是开源产品,这一点,违背了 Linux 和 KDE 的宗旨。于是,秉持开源理想的 Miguel de Icaza 和 Federico Mena 两位 20 来岁的墨西哥热血青年,率先开始了 GNOME 项目,与 KDE 抗衡。GNOME 是两个词组的合拼,GNU + Network Object Model Environment。用 GNU 开头,无非是表明完全开源的立场。

2000 年,QT 的拥有者 Trolltech 公司,迫于形势,宣布 QT 开源。从此以后,KDE 和 GNOME 在开源问题上,已经没有区别,但是两套系统各自拥有自己的追随者,它们的竞争还在继续。

FileFigure 2. Comparison KDE and GNOME
Courtesy http://farm4.static.flickr.com/3567/3348119637_6a74b8ca67_o.jpg

从 OPEN LOOK,OSF/Motif,CDE,到 KDE,GNOME,眼花缭乱,但是万变不离其宗,基本原理都源于 X Windows。X Windows 十分庞杂,但是概括起来,最基本是两个模块,

1. Windowing System,主要负责基本的图形功能,如画点画线,着色字体等等。同时,捕捉来自鼠标,键盘等等的事件。还有,保障多个 windows 同时工作时,不相互干扰。有意思的是,Windowing System 允许一个机器的用户,通过网络在另一台机器上显示 windows。

Unix 有一个指令,finger,可以查看某台机器上有哪些用户在活动。有淘气者,在自己机器上安装了一个小程序,每当有别人 finger 他的机器时,不管这个偷窥者是否远在天边,淘气者立刻在对方屏幕上弹出一个小窗口,问,“你找我有事吗?”,非常拉风。

2. Window Manager,主要负责控制开启和关闭 windows,放大缩小拖拽等等动作。同时也负责 windows 的装饰,以及屏幕的背景图像等等。

FileFigure 3. Comparison Qtopia and WebOS home pages.
Courtesy http://farm4.static.flickr.com/3457/3348321273_e6048d6c76_o.jpg

手机的 GUI,显然不同于 Workstation 和 PC 的 GUI。Trolltech 公司在 QT 基础上,开发了一套专供手机使用的 GUI 系统,Qtopia。Qtopia 已经被 Nokia 购买,成为 Nokia 手机 GUI 控制平台。我们在第八章,“手机 OS 的上三路与下三路” 中,提到过此事。

Palm WebOS 没有使用 Qtopia,而是从起炉灶,分庭抗礼。第七章,“手机脸谱” 中,我们介绍过 Palm WebOS 的 GUI 设计。图三左边是 Qtopia 的主页,右边是 Palm WebOS 的主页。

FileFigure 4. Palm WebOS architecture
Courtesy http://developer.palm.com/assets/images/book/palm_0112.png

图四是我们熟悉的 Palm WebOS 系统架构图,中间偏上有个 UI System Manager 子系统,其中包括两个模块,Window Manager,和 Window Server。看来,Palm WebOS 在 GUI 系统的设计方面,沿袭了 X Windows 的基本框架,但是把 Windowing System 的旧称,更名为 Window Server。

问题是,
1. Palm WebOS 号称它的 GUI,是基于 WebKit 之上。这样的做法,好处在哪里,有没有缺点?
2. 沿袭 X Windows 的原理,能不能满足当代手机 UI 的需要?譬如,能否在 X Windows 框架内,植入像 Adobe Flash Lite 这样的视频技术,使 GUI 的表现力更丰富?
3. 有没有必要让 Window Server 支持远程遥控的功能,即,PC 用户通过互联网远程控制手机脸谱的总体设置,甚至控制某一个 window 的行为?

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

移动互联网的围观者、起哄者、以及肇事者。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容