找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 885|回复: 3

请问什么事hack程序?

[复制链接]
发表于 2004-10-16 16:32 | 显示全部楼层 |阅读模式
跟黑客有关的吗? 用了对palm有没有影响?
发表于 2004-10-18 05:43 | 显示全部楼层
据俺的理解,palm系统是单任务的,hack表示中断一样,这样你就能同时调用另一个程序了。
发表于 2004-10-19 16:14 | 显示全部楼层
关于Hack和DA,最常见也最容易理解的说法是Hack和DA是模拟多任务的程序--对于多任务的直观理解,就像我们在windows上同时运行几个不同的程序窗口。
5 D) q3 W  `; |5 n5 F+ g& R) C0 p/ J+ c0 `
Palm是一个单任务的操作系统。在同一时刻,只能有一个程序能够与用户交互。这在很多时候并不方便。最常见的例子是在阅读新闻的时候,你可能需要查一下字典;或者你在电子表格中输入数据的想调出计算器算一个简单的数;又或者你在输入文档的时候想知道一下时间,等等。相当一部分Hack程序和绝大部分常用的DA程序都是为了这个目的设计的--在不退出当前程序的情况下运行。
4 T6 d( e. j& o7 W$ u4 Q3 X1 _1 p. X" p( q9 T2 o0 T
但是Hack和DA能做的还不仅如此。 ' V. o; q7 j6 Y) Z1 M

8 a$ e- z' G/ c/ o本质上说Hack和DA是Palm程序的两种特殊运行方式,或者说是两种特殊类型的Palm程序。这两种程序规范都不是Palm官方支持的系统功能,他们是由第三方软件开发者提出并维护的开放标准。
. L+ u. \" V; s5 {8 |5 q) p  L5 Z
DaggerWare(http://www.daggerware.com)在1996年引入了Hack程序的概念。他们把Hack程序称为Palm上的Control Panel,意思很明显,就是对系统功能的扩展。Palm系统有很多系统功能,比如查找,比如拷贝粘贴,如果你对这些内置的系统功能不满意,可以用自己的方式替换掉系统的原有功能,比如,MultiClip Hack可以支持多条记录的拷贝粘贴,而Find Hack则增强了系统原有的查找能力。这种偷梁换柱修改系统的工作方式,就像网络上的黑客侵入并接管别人的网络或者计算机一样,这就是Hack名字的由来。
发表于 2004-10-19 16:15 | 显示全部楼层
为了替换或者增强原有的系统功能,你当然可以写自己的系统补丁,但是这样做需要开发者很熟悉系统底层接口,并且来自不同开发者的补丁可能会有很多冲突。 6 K3 o3 P, [9 ^/ i% z; r( A  I# y

; d4 K9 |1 L$ ~/ KHackMaster(http://www.daggerware.com/hackmstr.htm )就是为了解决这些问题而提出的。 * r( g. ^% r( Z6 z8 B) G* y

- J6 n* x8 w6 KHackMaster定义了一套开放的系统扩展规范,称为HackMaster API,它一定程度上隐藏了开发系统扩展程序的复杂性,通过这套规范可以简单的写出更加稳定的系统扩展程序。
" F' {: x0 t% d( j. f" Y% B" r6 a9 @. t( d3 `/ C
其次,HackMaster本身也是一个管理程序,负责装载和卸载不同的hack程序,并且解决hack程序之间的冲突,比如,当两个不同的hack程序要扩展相同的系统功能时,HackMaster裁决到底哪个有效。任何Hack程序一定需要有Hack管理程序才能运行。   k' j+ L" g/ e7 G6 x  B" Y

4 Z. o! v7 A. m  \DaggerWare自己出品的HackMaster是Hack管理程序的鼻祖,但是它不是最好的。因为Hack规范或者说HackMaster API是开放标准,其他的一些程序开发者也开发了不错的Hack管理程序。比如来自Tealpoint的TealMaster,来自LinkeSOFT的X Master,和来自TRGPro User Group的EV Plug Base,都是不错的Hack管理程序。 5 x) z/ `' s0 q/ ]
, a. y1 H, j) d
HackMaster装载和卸载hack程序都是“热插拔”的,不需要重新启动系统。和Windows相比,这是HackMaster规范一个很棒的地方。 6 K( p" T8 i4 I6 ?  r/ O2 c$ U

% i! l. t, f! M1 u( LHack程序在通过Hack管理程序装载之后,就驻留在系统内存中后台运行,无法象普通的应用程序一样退出,只能在Hack管理程序中卸载。这种运行方式会降低一些系统速度,而且,尽管HackMaster API定义得很仔细以避免Hack程序之间的冲突,但是Hack程序与普通应用程序冲突情况仍然时有发生,这也是导致系统不稳定的主要原因之一。
) H! q/ z$ n% y/ E" D) v
9 n! Y+ A$ Z: k( `( Z7 |Hack程序不一定要有运行窗口。一个Hack程序可能只是简单的改变背光的状态,替换系统字体,或者改变按键的功能,甚至改变电池图标的显示。当然它也可以有自己的"弹出窗口"(其实是获得当前程序的窗口),这个"弹出窗口"可以运行在当前程序之上,通过这种方式,我们就可以实现前面说的在不退出当前程序的前提下实现查字典,查电话号码,看时间,计算器,或者输入简单数据等功能,也就是“模拟多任务”。
  e0 a& Y0 a8 o0 q9 s虽然Hack方式可以实现弹出式的窗口任务,但是用Hack来实现这个功能并不好,因为太多的程序驻留内存会使系统很慢而且不稳定。 : J: R7 M  s6 F3 H  @: a. K
* p( c1 t& M  S0 i" Z$ q! [% g- ^7 G
针对这个问题,一个日本人YAMADA Tatsushi, Hacker Dude-san,提出了另一种方案,就是Desk Accessory,简称DA。和Hack相比,DA更象是为弹出窗口模拟多任务设计的。它采用类似Hack的方式接管了系统的用户应用程序外壳,以实现在不退出当前任务的情况下,执行DA程序。 7 }& }1 b4 ^: F' ^

: L, h5 Z8 R/ o7 m; m1 oDA也定义了一套DA程序规范,也需要一个DA程序管理器来启动DA程序。但是与Hack不同, DA管理程序并不去接管或者修改系统功能(DA程序可以自己这么做,但不是通过DA程序管理器去这么做),所以它更像一个普通的应用程序,只是运行在一个弹出的窗口中。
9 _# Q8 }' d6 ]6 p2 O# [& w3 g7 S  Z7 m( z' v# I2 [0 G  Q, u) Y
DA与Hack的另一个重要不同是,Hack是驻留的,在Hack管理程序中装载的Hack程序都在系统中运行。而DA程序是在运行时装载的,运行结束后退出。这样,同时运行的DA程序只有一个,解决了DA程序之间的冲突问题。DA管理程序也紧紧是一个单纯的DA启动程序,通常称为DA Launcher。DA的运行方式有着比Hack更好的稳定性,也不大影响系统速度。 + l+ u4 f" A3 A
+ m, Z7 E* i1 K% O6 T) C# p
虽然DA程序是运行时装载的,但是DA管理程序必须驻留内存。驻留内存程序可以用三种方式实现,启动时自动装载的程序,控制台(Pref)程序和Hack程序。基本上没有DA管理程序用第一中方式实现,因为装载和卸载往往需要重新启动系统,不如后两种方式的“热插拔”方便。 + ?( a1 U# e9 k/ ]9 K: A
' W2 ?/ H& ~4 A# A7 R) W& _; R
与HackMaster一样,DA方案的鼻祖Hacker Dude-san也提供了权威的DA启动程序,名字就叫做DA Launcher。它有Hack版本,也有控制台版本。除此之外,其他比较常用的DA管理程序有来自Hiroaki Imazeki的( http://www.jade.dti.ne.jp/~imazeki/palm/btda.html]ButtonDA Hack ),来自Takanori Hoshi的( http://www.sra.co.jp/people/hoshi)AppDA Launche,Calc Button Hack,和Find Button Hack,来自Tealpoint的( http://www.tealpoint.com/softlnch.htm)TealLaunch等等。 + ^" U- i7 J& K
) M3 h# D8 y# l* c+ t5 |; ^- n
多数的DA管理程序都使用了Hack方式来实现。这造成了一种错觉似乎DA需要Hack才能运行,其实并非如此。DA和Hack并没有直接的依赖关系。由于Hack规范可以简单的实现扩展系统功能,驻留内存和"热插拔",所以多数DA管理程序采用了Hack方式,但是也可以不这么做,使用控制台方式或者启动时装载的普通程序一样可以实现DA管理/启动功能。相反,用DA方式来实现Hack管理的程序是没有的。因为Hack管理程序需要启动时装载而且驻留内存,DA方式做不到。
; g6 r# v1 f0 [8 d! `$ v
. b* o  }) L; S: x; h1 ?0 s1 ^5 v) [. S和Hack类似,DA程序也可以没有运行窗口。比如HRCapt DA就是一个捕捉屏幕的DA程序。DA程序也可以执行一些类似Hack程序的系统底层功能,比如acFreeHeap可以清理系统的堆内存。   Z" Y3 B- S2 l& l

$ i) S$ E% f' R很多的时候,你从功能上来区分并没有办法分出是Hack还是DA程序。但是这并不重要,用户更关心的是程序的功能而不在乎它是用什么方式来实现。在实现相同功能的前提下,通常应该选择DA程序,因为它有更好的兼容性,稳定性以及速度。但是Hack规范提出得早,其功能也更强大,所以Hack程序资源比DA多很多了。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-4-3 17:37 , Processed in 0.219460 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表