SmallX 2007-2-22 09:07
关于palm设计的讨论
==发信人: SmallXgg (SmallX), 信区: PDA==
==标 题: 关于palm和ppc内存模式的比较==
==发信站: BBS 未名空间站 (Wed Feb 21 19:57:34 2007), 转信==
看过的palm和ppc的资料不多,就我知道地说说。palm曾经获得成功的两个主要因素,
一个是她的英文输入法--graffiti,非常好用,用过的都知道;一个是她的系统构架,
采用的是程序直接常驻内存的方式。graffiti好处是,在对系统要求非常少的情况下,
可以对手写进行非常迅速和准确地识别,这个前人根本没有想到过。一般的做法是如何
去提高运算能力,开发新算法,去提高识别速度和识别准确度;而graffiti(这里指1)
则是开创一种新的便于识别的英文书写方法,配合软件,产生了惊人的效果。这个输入
法是最开始苹果公司找人开发的,不过生产该设备的人脱离苹果出去单开公司,就是
palm公司,后来终于在这个输入法当的版权问题上吃了官司,所以新出的palm采用的都
是新的CIC公司开发的graffiti II输入法。然本文主要谈内存,所以关于graffiti一点
而过。本文主要谈关于palm的内存及相关设计。
palm另一个获得成功的关键是她的系统构架。如果我说一个通常的palm应用程序只有不
到100k,而200k以上的程序都是重量级的软件,这些重量级软件在palm世界犹如VC,
Office在Windos世界的地位,也许没用过palm的玩家可能不会相信。不过这是真实的。
早期的palm内存通常只有2M,而OS4理论上支持的最大内存是16M。这是与palm的构架分
不开的。palm的程序采用的运行方式和PC不同,程序不是存储在外存储器上,而是直接
装入内存中。这个带来的最大好处就是一旦程序运行,就将一直常驻内存,同时程序操
作的数据也是直接驻留在内存中,因而程序和数据的内存地址相对的具有一定的固定性
;当然这带来的另一个问题就是,一旦电力不足,程序和数据都将丢失。所以经常同步
来备份数据,或者通过软件定时将数据备份到卡上是十分必要的。新的OS5采用的新的
内存模式这里不讨论,而只讨论经典的palm方式。所以,通常说的palm的内存,都是
RAM内存,就是说,palm始终是处于待机模式中,按下开关键,palm对应的主要方式是
关闭屏幕的显示,(当然还会触发系统事件便于需要的程序响应,)而程序本身仍然驻
留在内存中。这也就解释了为什么palm开机关机相应快速的原因。同时,因为程序和数
据都是常驻内存中的,所以不同程序中的切换其实就是将cpu交给特定程序运行,而不
涉及到程序或数据的载入和同步。一方面,即使有些程序内部控制出现问题,也不会影
响其它程序;另一方面,如果有些程序进行数据的更新,有可能会更改其他程序的数据
,这里palm只有有限的保护机制。而系统程序在出厂时是存储在ROM里边的,有可写的
flash ROM,这样用户可以更新这些程序;也有不可更新,存储在mask ROM里边的。
palm软启动的时候就是重置cpu,同时进行必要程序的加载(初始化和事件中断,安全
模式的软启动将跳过这一步),并将控制交给特定的launch程序;palm重硬起的时候会
重置内存,重新建立程序开始地址的索引。由palm内存物理特性以及程序的执行方式,
决定了palm对用户的相应比较快捷和程序间互相切换比较容易。
然后说说palm的系统。palm系统内置了对常用UI的处理,所以可以通过palm免费提供的
SDK方便的开发具有标准空间的窗口程序。同时,palm系统对数据在内存中存储,采取
了类似于数据库的方式,首先这是与palm的构架有关的,这样可以方便的与桌面同步数
据,就是说同步的过程其实是对数据库中更新数据的同步;换句话说,palm中的数据不
是采用的简单的顺序方式存储的。其次因为采用了数据库的方式,系统采用了统一的对
数据操作的接口,包括按段进行排序,按段进行查找,建立/修改/备份条目,等等。
综上,palm的每一个程序,其实是一个小的数据库和建立在其上的图形用户界面。因为
采用了公共的接口和格式,palm的程序更容易开发,体积更小,而且更不容易出错。总
的来说,palm的软件仍然是采取事件驱动的风格,所以palm标准程序之外,通过改写系
统事件接口,实现了DA/HACK两种补充程序,这些程序向相应的管理器(DA管理器/HACK
管理器,避免直接改写系统事件以减少冲突)注册事件,达到实现更丰富功能的作用。
所以,palm由于采用了程序和数据的运行和存储在同一个设备(RAM),而数据按照数据
库方式存取,使得palm更加稳定快捷,palm的程序更加的多样。
当然palm的局限也来源于此。首先,palm采用的程序存储/运行的统一决定了对palm程
序进行调度的局限。有人说palm是单线程的,有人说是多线程的,这个其实都对。只不
过palm对程序(进程)的调度和我们通常认为的多线程调度算法不同而已。当一个palm
程序获得运行的时候,当有事件发生的时候,系统中注册了的程序可以立刻抢先获得运
行;而被打断的程序处于休眠期,所有的上下文自动保持不变,因为程序的存储/运行
是就是位于同一内存区域,不需要特别的载入载出处理。因为palm只有一块cpu,所以
同时只能有一个程序获得执行。就是说,palm在任何时刻,所有安装的程序其实都驻留
在内存中,而任何程序都可以根据中断抢占cpu。其次,palm采用的这种中断/事件决
定的抢先式调度方式,决定了多媒体等功能在palm的局限性。目前palm的多媒体主要集
中在clie的OS4 68k平台和OS5 arm平台两种。$ony OS4 68k平台的机器包括 N760,
T650(本人的机器)等几种,在通常的DragonBall处理器外,辅助添加了DSP处理芯片,
所以可以在系统运行其他任务的时候进行听歌,或者看进口大片/小生活片,同时也改
善了系统对图片更处理的速度;OS5 arm平台自然支持多媒体。
最后,palm 的成功在于她的输入法(这个已经失去了),她的系统构架(主要是内存
以及引起的相应设计)。可以说,那个DragonBall 16M的CPU不会觉得慢,
SuperDragonBall 64M的CPU也不会觉得快的palm,那个冲一次电可以用一个月的palm,
那个安装完软件以后几个月都不会重起/非法操作的palm,那个小小的帅帅的palm,正
在渐渐得远去了。大家都在追求多媒体,palm本身的制约决定了她的优势就不在多媒体
之上。而不断增加的CPU速度使得palm的使用时间(操作时间,待机时间要长得多)比
笔记本的使用时间还短。$ony的出现,开辟了palm对多媒体的支持,放mp3,录音,拍
照,录像,蓝牙,无线,成也萧何败也萧何。目前$ony已经退出了palm的生产,到底是
像她说的要集中于她的智能手机,还是察觉了palm的尴尬未来?随着Micro$oft的大力
开发,从WINCE到PPC系统的变化简直重演了桌面晕倒死系统的发展模式。而随着桌面终
端的软件对系统的要求和硬件发展的响应,像滚雪球一样越滚越大,我们今天的软件从
功能上到底提高了多少呢。而 Win-tel 的模式难道要在掌上终端上演吗?XScle的发
布,到底是掌上终端的进步,还是衰落?随着 3G 时代的到来,电波在地球上弥漫,掌
上终端的发展,到底何去何从?
※ 来源:·BBS 未名空间站 mitbbs.com·[FROM: 129.97.]