新时代新潮流WebOS 【8】手机OS,上三路与下三路
图一显示的是Palm WebOS架构。看到这张图,不禁会想,这就是被炒作得玄乎其玄的,摆脱了PC OS阴影的手机OS,划时代的Palm WebOS?它的巧妙到底在哪里?此图作者,Palm公司软件CTO Mitch Allen,没有详细介绍WebOS系统架构的设计思想,也没有详细解释系统中各个模块的具体用途。
Figure 1. Palm WebOS Architecture
Courtesy http://developer.palm.com/assets/images/book/palm_0112.png
为什么Roger McNamee以及Palm公司的高管,都把WebOS看成是the next big thing?Roger McNamee把iPhone,BlackBerry,WinMobile,以及Android通通看成是PC OS的延续,那么WebOS与Android等等的区别在哪里?
Figure 2. Comparison of Android,J2ME, Symbian and WebOS architectures
Courtesy http://farm4.static.flickr.com/3413/3343581121_5e764cd3ef_o.gif
为了直观地横向比较Android,J2ME,Symbian和WebOS的系统架构,我画了一幅OS结构层次图,如图二所示。此图粗略地显示了各个手机OS的结构层次,不是非常严谨。之所以采用这样粗放式的描述方式,是为了方便大家首先捕捉各个手机OS之间比较明显的结构上的差别。
1. Android:
前文谈过,Android对于手机OS的贡献,主要体现在三个方面,1. 梳理Linux Kernel,2. 梳理Linux Middleware,3. 构建Dalvik虚拟机。大家对Dalvik VM谈论得比较多,因为它的意义很明显,方便应用开发者使用Java语言编程。但是对于梳理Linux Kernel和Middleware这两个成果,论者较少。
后续章节中,我们会谈到山寨MTK手机的内核Nucleus,以 VxWorks实时OS称雄的,嵌入式OS业界老大Wind River公司梳理的Linux,还有Nokia的Maemo版Linux。如果Android版Linux被广泛接受,那么将来的手机OS在底层方面的 竞争,就不再是春秋战国那样群雄割据的状态,而是两个超级大国争霸的两极世界, Android Linux 对阵 WinMobile。
我把Android OS概括为下三路功夫,因为它更强调下盘的扎实。相比之下,Palm WebOS更重视上三路拳法。
2. J2ME:
J2ME的架构大家都比较熟悉。J2ME未来向什么方向发展?Sun Microsystems似乎把希望寄托在JavaFX Mobile上。
iPhone 手机让人惊艳,Google网页让人觉得清爽。想把产品设计的像iPhone手机和Google网页那样,酷,炫,性感,动感,靠什么?图形界面。手机图 形界面或者说手机脸谱(Widget Toolkit),现在分为两大阵营,一个阵营是Ajax,也就是JavaScript加XML,WebOS似乎比较倾向于Ajax阵营,后文详述。另一个阵营立足于视频技术,Adobe Flex,Microsoft Silverlight,还有Sun Microsystems的JavaFX Mobile,呈三国鼎立的局面,其中曹魏是Adobe Flex。
与Ajax比较,视频技术表现手段更丰富,更容易营造酷,炫,性感和 动感的效果。JavaScript很消耗CPU,而视频技术与多媒体芯片的结合较好,软硬搭配,运行效率高。拿Adobe Flex之类做某一个应用的工作流程问题不大,但是能不能用它们做整个手机脸谱(Widget Toolkit)?脸谱涵盖的功能很多,视频技术是否能够全面支持这些功能需求,有待研究。
3. Nokia:
Nokia目前 似乎兵分两路,一路人马,梳理Linux成为Maemo OS,力图抗衡Android。Maemo OS目前在Nokia的上网本中使用,将来Nokia是否会用Maemo取代Symbian系列,这个转型对于Nokia来说,会很沉重,但是未来可能会不得不考虑。
Nokia另一路人马加入脸谱战场,他们手里的利器是Qtopia。Qtopia是QT的移动版,后文会做更多介绍。Qtopia能够与Ajax结合起来使用。
4. WebOS:
Palm公司对于Kernel的频繁更改,给人一种下盘不稳的感觉。先是Palm OS,后来换成Wind River版Linux,后来又换成Linux 2.6,将来会不会倒向Android?那将是富有戏剧性的一幕。
WebOS 的主要成绩,在我看来主要是三个方面,1. Service container,目的是方便应用程序的安装和版本管理,以及多种应用程序之间的协调。2. WebKit-based Widget Toolkit,基于WebKit的手机脸谱。3. Palm Bus,提供脸谱与应用程序之间,应用程序与应用程序之间的数据交换渠道。
这篇文章涉及的内容较多,如果一一展开,篇幅太长,所以不妨把这一章当成一个目录,以后陆续展开。Palm WebOS的架构图,包含的信息量很大,后文我们也将不断回顾。