发新话题
打印

[转UGlee强贴]Linux和未来的手持设备

[转UGlee强贴]Linux和未来的手持设备

在Tomshardware的一篇文章的感召下,我格式化了老本本的硬盘并安装了一个Red Hat Fedora Linux。

和以往的Windows安装经验相比,Fedora的安装过程并不逊色。当然这种比较并不太公平,因为Fedora是很新的操作系统,其附带的驱动程序和对各种新硬件的支持远比年代久远的Windows 2000丰富得多。不过作为一名普通用户,我还是很感谢Fedora对Panasonic本本的几种古怪硬件的支持,尤其是蛮罕见的AC97 Crystal声卡。而且让我吃惊的是,从软驱Boot的启动盘竟然可以把USB的HP CDR挂上,这对于我这种内置光驱早已老到无法读盘的用户来说真的是天大的恩赐。

就首次安装之后的使用经验而言,Fedora自带的各种第三方软件真的是远远超过了MS Windows,从多媒体娱乐到办公软件,到网络工具,到开发工具,乃至桌面休闲游戏,Fedora都提供了更棒的选择。事实上,对于只是平时上上网,收发电子邮件,和玩玩多媒体的普通消费用户来说,几乎不需要添加任何软件就可以使用了。

但是谈到Office应用的时候,就触到了Linux永远的痛处。无论是Open Office还是Star Office,尽管就单独使用而言功能已经足够强大到满足用户的日常使用需求,但是和MS Office文档的兼容性仍然是糟糕透顶,在MS Office格式横行的时代,这大概是Linux走入主流应用的最大障碍了吧。

当然上面的这些意见还非常肤浅,而且对于很多Linux桌面用户来说,仅仅安装Linux的用户也是少之又少。通常的Linux用户都是把Linux作为第二选择,在他们的电脑上还会有MS Windows或者Mac OS作为主要也是必备的工作平台。

但是不管怎么说,Linux在今年迎来了春天是个不争的事实。越来越多的大众IT媒体开始介绍Linux桌面系统的使用——而在过去的几年中,Linux仅仅出现在那些讨论服务器技术和操作系统技术趋势的媒体上,以及由发烧友组成的在线论坛中。

Linux的发展和越来越多的重量级厂商的支持是分不开的。IBM的推动是Linux取得长足发展的重要原因之一,最大的关系对象数据库厂商Oracle,也在过去的几年中对Linux平台也提供鼎立支持;而另一个业界的巨人——SUN——在过去的一年中对Linux转变了态度,从最初的观望和消极抵制走向了全面支持。

仅仅有这些服务器厂商的支持还不够,没有消费PC厂商的推动,Linux仍然无法进入普通消费者的视线。在过去的一年中Linux取得的最大进步是HP——消费PC的两个行业巨头之一——开始认真考虑为消费用户和小型企业提供Linux桌面系统,它的选择是SuSe Linux。另一个消费PC的巨头,Dell,虽然还没有明确的表示有推出Linux PC的时间表,但是有很多迹象表明,它在认真的关注这个市场并在积极准备应对HP的挑战。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

事实上,我并不非常关心Linux的走向,它能够做得更好自然不错,但是MS Windows持续称霸也不是太大的问题——反正公司给员工配置的PC无需个人出钱购买OS,而自己购买的家用PC——为了省心,还是选择大厂的预装OS的产品比较可行。

这一篇BloG能出现在这个网页上是因为,最近我总想问自己这样一个问题:10年之后的手持设备OS会是什么样子呢?是为手持设备系统充分优化的Palm/Newton这样的OS结构继续占领市场?是小型化的PC取得胜利?还是其他的什么目前还是概念的方式,比如纯Java的终端,或者回归老式大型机的主机拖终端方式?

在最激进的预言中,电池在未来的手持设备中将不是问题,我们可能会拥有只要喝点酒精或者汽油或者甲醛就可以跑上几个星期甚至几个月的手持设备。CPU的速度也不是太大的问题,事实上只要有电力支撑,现在的Palm或者PPC就可以武装上Pentium 4或者Athlon 64。那么,瓶颈将会出现在哪里呢?

我给出的答案是存储能力

虽然目前的微型化硬盘技术发展的很快,而iPOD的成功也让很多手持设备用户似乎看到了在PDA产品中武装硬盘的曙光,但是事实上,硬盘,和各种各样的光学存储设备在可见的未来里还无法充当手持设备的可靠和快速的存储设备。iPOD之所以能够实用,是因为它针对MP3播放做了巨大的Cache来减少硬盘的读写。这在小型化PC中是难以实现的,在使用虚拟内存的OS中,对硬盘的读写将会难以想象的频繁;而所有从PC OS小型化而来的Handheld OS,包括Pocket PC和Linux,在阉割了虚拟内存能力之后都会为系统资源的不足而疲于奔命。所以,在可见的未来中,相对昂贵的内存,包括RAM和FlashROM,仍然将是手持设备的主要存储媒介,当然我不反对把硬盘作为一个Add-On的设备放到PDA里面去。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上面谈的看上去是两个问题——事实上也是两个问题。但是他们在未来很可能会有一个有趣的交点。如果你问自己这样一个问题,你就会发现他们会在何处碰面:

你相信10年之后的手持设备OS还会是一个和桌面系统完全不同的独立OS吗?

我不相信,而且我觉得微软也不相信,所以他们才在过去的10多年中持续致力于没为他们赚到钱的Windows CE。如果你也承认这一点的话,那么接下来的问题是:

你相信PalmOS会走上桌面和Windows/Linux正面冲突吗?

我不相信,估计也没有人会相信有这样一天——除了BeOS的遗老遗少们可能还有此远大志向。

面对“PalmOS这种针对内存使用优化的系统结构没有远大前程”和“桌面系统受限于存储能力无法小型化到手持设备上来”这一对矛盾,在前面的一次讨论中我设想过一种解决方式,简单的说,就是修改Linux内核中的内存和存储管理模块,然后把PACE(PalmOS的模拟器)放到系统中来。

在这里重申一下这样做的好处:

1)PalmOS在开发角度看是个非常弱的系统,尤其是在网络和设备的支持方面,以及仅在眼前的Unicode支持和字串处理能力等对于开发者来说不大但是对用户而言不小的问题。
2)Linux恰恰在这些方面都很强,而且不像WindowsCE,它的授权允许你去修改OS底层。
3)在拓展PalmOS的时候问题将变得非常简单,可以把Linux的很多API库直接放在系统中,在PACE中提供接口Tunnel到这些API上。
4)修改之后的PACE over Linux仍然可以保留现有Palm的方式,包括高效率的存储和运行方式,我甚至希望单一UI程序的方式也保留下来。

在前面的一次讨论中,这个想让PalmOS傍上大款以图在未来的OS竞争中仍然能有一席之地的企图遭到了Treo的抨击。其中最重要的一条论据是:Linux的GPL授权会要求PalmOS Open Source。我为此专门翻阅了GNU GPL条例,不过没搞明白是不是真的如此。很显然,不是所有跑在Linux上的程序都需要免费和开源,我的理解是只要没有用到Linux的源码部分的软件,仍然可以Charge。如果这样的话,可行的方法是,把修改的Linux内存和存储管理模块部分免费和开源,把PACE作为一个单独的软件来发售,应该可以解决PalmSource没有收入来源的问题。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

前面一段时间,一个慷慨的朋友送给我一部Newton,是97年的绝唱产品Message PAD 2000。凭心而论,我非常喜欢——甚至可以说是欣赏——这个产品。但是欣赏是一回事,自己愿意为之付出是另外一回事。在没有一个稳定的对前途的承诺下,我没有丝毫兴趣去翻阅文档在这个很艺术的系统上进行开发。

不可否认的事实是,越来越多的开发者在放弃palmOS转向pocketpc;尽管在PPC上的开发比在PalmOS上开发容易上手一些,但是对于那些真正职业化的严肃开发者来说,Coding本身的难度差异并不是最大的障碍,palmOS的开发最多只是开发习惯的问题,而不是超越平常人智力和体力的高难度竞技。最大的问题是他们在丧失对这个平台未来的信心,在这个平台上开发积累下来的经验——可能随着这个平台的商业失败的土崩瓦解。而在WindowsCE平台上的开发相对来说安全得多,即使Pocket PC失败了,下面还有Smartphone,或者至少还能回到桌面PC上重操旧业。

把PalmOS构筑在一个更加稳固,更有长远承诺的底层上,是带给开发者信心的最好方式。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最后再说一些不着边际的推论想法。

仅仅把PACE放到Linux上并非能够就此高枕无忧。PalmOS本身有很多地方需要补足才能在激烈的竞争中保有一席之地。真正把PalmOS和一个桌面系统,比如Linux,融合起来,才是长久的生存之道。

在面向对象的RAD(Rapid Application Development)思想中,有一个重要的模型就是Doc/View的数据结构。在PalmOS上开发,Doc基本上就是file/database本身,而View或者没有,或者是非常轻量级的控件——这差不多就是PalmOS最大的优势。不过可惜的是,在PalmOS并没有一套很好用的Doc/View类库提供给开发者,系统本身的API显得过于简陋了。

在PC端呢,不用Doc/View方式开发的程序很少。但是流行的Doc/View类库更多的为系统化和结构化设计,在系统资源开销方面的考虑几乎没有(Java方式,在消耗资源方面更是毫不含糊)。

其实把Doc和View分开考虑可能是更好的办法。至少手持设备和PC系统在Doc这一层可以是通用的(指程序数据结构的Doc对象,而不是Document文件);在PC上可以使用更为复杂的View,而在Handheld上使用轻量级的View,这样,可以在简化开发、通用代码和提高效率上找到一个很好的平衡。

我不指望PalmSource有这个本事能融合桌面和手持的开发环境了,他们能找到一家强大的开发工具提供商——比如Borland或者IBM——合作打造这个通用开发环境是更加可行的办法。

TOP

发新话题