2004年05月21日

关于Google搜索引擎作弊



Google排名的意义:
根据Jupiter MediaMetrix 2002年公布的统计数据,79%的互联网用户依靠搜索引擎获取信息,信息搜索成为仅次于电子邮件的互联网第二大应用。而在众多搜索引擎当中,Google以其庞大的搜索量,快速而精准的搜索结果和极高的知名度成为搜索引擎的代名词,因此自然成为企业网站推广的首选。
Google排名优化:
优化的方式形形色色,一般无外乎按照一定的关键词,通过对网站结构,页面因素和外部链接的优化,使网站得到最佳的搜索引擎排名。但事实上我们发现,有一些网站由于采取了不正确的优化策略,不但未能有效提升网站的排名,反而使网站排名惨跌甚至遭到搜索引擎删除。在此我们列出被Google明令禁止的属SPAM性质的优化技术供大家借鉴。


一:隐藏文本/隐藏链接
一般指网页专为搜索引擎所设计,但普通访问者无法看到的文本内容或链接。在形形色色的隐藏技术中,最常见的就是把文本或链接文字的字体颜色设置为与背景色相同或十分接近。


隐藏文本内容(Invisable/hidden text)
  意欲在不影响网站美观的前提下通过包含大量关键词的网页提高关键词相关性得分,从而达到改善搜索引擎排名的目的。


隐藏链接(Invisable/hidden links)
  意欲在不影响网站美观的前提下通过在其它页面添加指向目标优化页的隐形链接,通过提升链接得分而改善搜索引擎排名。
现在大多数搜索引擎都能检测隐藏技术,并视为作弊。因而包含隐含文本的网页面临被搜索引擎降低排名甚至删除列表的惩罚。虽然在Google上不乏使用隐形技术而侥幸逃脱的网站,但多数人还是认为不值得冒这个险。其实通过添加可视文本内容并保证一定的关键词密度可达到相同的优化效果。


二:网页与Google描述不符
一般发生于先向搜索引擎提交一个网站,等该网站被收录后再以其它页面替换该网站。“诱饵行为(Bait-&-Switch)”就属于此类偷梁换柱之举–创建一个优化页和一个普通页,然后把优化页提交给搜索引擎,当优化页被搜索引擎收录后再以普通页取而代之。


三:误导性或重复性关键词


误导性关键词(Misleading Words)
  在页面中使用与该网页毫不相干的误导性关键词来吸引查询该主题的访问者访问网站。这种做法严重影响了搜索引擎所提供结果的相关性和客观性,为搜索引擎所深恶痛绝。


重复性关键词(Repeated Words)
  这种作弊技术也被称为“关键词堆砌欺骗(Keyword Stuffing)”,它利用搜索引擎对网页正文和标题中出现的关键词的高度关注来对关键词进行不合理的(过度)重复。类似的其它做法还包括在HTML元标识中大量堆砌关键字或使用多个关键字元标识来提高关键词的相关性。这种技术很容易被搜索引擎察觉并受到相应惩罚。


四:隐形页面(Cloaked Page)
对实际访问者或搜索引擎任一方隐藏真实网站内容,以向搜索引擎提供非真实的搜索引擎友好的内容提升排名。


五:欺骗性重定向(Deceptive redirects)
指把用户访问的第一个页面(着陆页)迅速重定向至一个内容完全不同的页面。


“鬼域(Shadow Domain)”
这是最常见的欺骗性重定向技术,通过欺骗性重定向使用户访问另外一个网站或页面。一般利用HTML刷新标识(Meta Refresh)来实现。大多搜索引擎都不会索引使用该标识的页面。如果你使用刷新标识来检测浏览器或分辨率,那么就请使用Javascript,且尽可能延长重定向时间。如果一定要使用重定向功能,那么请务必确保刷新周期不少于10秒钟。


还有一种情况就是当用户打开一个网站,该网站声称其网站已移至新域名下,并请用户点击新域名链接进入网站。但当用户进去后才发现,这个链接是一个“会员”链接。这也属欺骗性重定向行为。


六:门页(Doorway Page)
也叫“Bridge/Portal/Jump/Entry Page”。是为某些关键字特别制作的页面,专为搜索引擎设计,目的是提高特定关键词在搜索引擎中的排名所设计的富含目标关键词的域名,且重定向至另一域名的真实网站。搜索引擎的Spiders往往忽略对那些自动重定向到其它页的页面的检索。


七:复制的站点或网页
最常见的当属镜象站点(Mirror Sites)。通过复制网站或卬页的内容并分配以不同域名和服务器,以此欺骗搜索引擎对同一站点或同一页面进行多次索引。现在大多数搜索引擎都提供有能够检测镜象站点的适当的过滤系统,一旦发觉镜象站点,则源站点和镜象站点都会被从索引数据库中删除。


八:作弊链接技术/恶意链接(Link Spamming)
典型的作弊链接技术包括:



  • 链接工厂(link farms)
  • 大宗链接交换程序(bulk link exchange programs)
  • 交叉链接(Cross Link)

“链接工厂”(亦称“大量链接机制”)指由大量网页交叉链接而构成的一个网络系统。这些网页可能来自同一个域或多个不同的域,甚至可能来自不同的服务器。一个站点加入这样一个“链接工厂”后,一方面它可得到来自该系统中所有网页的链接,同时作为交换它需要“奉献”自己的链接,籍此方法来提升链接得分,从而达到干预链接得分的目的。如今搜索引擎发现它们已然不费吹灰之力。只要发现,不管属有意还是无意,“链接工厂”中的所有站点都难逃干系。


九:其它


日志欺骗行为
  通过对一些页面等级较高的站点进行大量的虚假点击以求名列这些站点的最高引用者日志中,从而获得它们的导入链接。Google已然意识到这种行为并将对利用这种途径获得导入链接的站点采取相应措施。


门域(Doorway Domain)
  专为提高特定关键词在搜索引擎中的排名所设计的富含目标关键词的域名,然后重定向至其它域名的主页。由于搜索引擎一般忽略自动重定向至其它页的页面的检索,所以不提倡使用这种技术。

2004年05月20日

md5算法. 到底是怎么回事?


 


在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。
首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。
四个32位变量初始化为:
A=0×01234567
B=0×89abcdef
C=0xfedcba98
D=0×76543210
它们称为链接变量(chaining variable)
接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。
将上面四个变量复制奖鹜獾谋淞恐校篈到a,B到b,C到c,D到d。
主循环有四轮(MD4只有三轮),每轮很相拟。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是与,|是或,~是非,^是异或)
这些函数是这样设计的:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。
函数F是按逐位方式操作:如果X,那么Y,否则Z。函数H是逐位奇偶操作符。
设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)
II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
这四轮(64步)是:
第一轮
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0×242070db)
FF(b,c,d,a,M3,22,0xc1bdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,M5,12,0×4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0×698098d8)
FF(d,a,b,c,M9,12,0×8b44f7af)
FF(c,d,a,b,M10,17,0xffff5bb1)
FF(b,c,d,a,M11,22,0×895cd7be)
FF(a,b,c,d,M12,7,0×6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0×49b40821)
第二轮
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0×265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0×02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0×21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b,c,d,a,M8,20,0×455a14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0×676f02d9)
GG(b,c,d,a,M12,20,0×8d2a4c8a)
第三轮
HH(a,b,c,d,M5,4,0xfffa3942)
HH(d,a,b,c,M8,11,0×8771f681)
HH(c,d,a,b,M11,16,0×6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0×4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0×289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0×04881d05)
HH(a,b,c,d,M9,4,0xd9d4d039)
HH(d,a,b,c,M12,11,0xe6db99e5)
HH(c,d,a,b,M15,16,0×1fa27cf8)
HH(b,c,d,a,M2,23,0xc4ac5665)
第四轮
II(a,b,c,d,M0,6,0xf4292244)
II(d,a,b,c,M7,10,0×432aff97)
II(c,d,a,b,M14,15,0xab9423a7)
II(b,c,d,a,M5,21,0xfc93a039)
II(a,b,c,d,M12,6,0×655b59c3)
II(d,a,b,c,M3,10,0×8f0ccc92)
II(c,d,a,b,M10,15,0xffeff47d)
II(b,c,d,a,M1,21,0×85845dd1)
II(a,b,c,d,M8,6,0×6fa87e4f)
II(d,a,b,c,M15,10,0xfe2ce6e0)
II(c,d,a,b,M6,15,0xa3014314)
II(b,c,d,a,M13,21,0×4e0811a1)
II(a,b,c,d,M4,6,0xf7537e82)
II(d,a,b,c,M11,10,0xbd3af235)
II(c,d,a,b,M2,15,0×2ad7d2bb)
II(b,c,d,a,M9,21,0xeb86d391)
常数ti可以如下选择:
在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度。
(2的32次方)
所有这些完成之后,将A,B,C,D分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后的输出是A,B,C和D的级联。


MD5的安全性


MD5相对MD4所作的改进:
1.增加了第四轮.
2.每一步均有唯一的加法常数.
3.为减弱第二轮中函数G的对称性从(X&Y)|(X&Z)|(Y&Z)变为(X&Z)|(Y&(~Z))
4.第一步加上了上一步的结果,这将引起更快的雪崩效应.
5.改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似.
6.近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应.各轮的位移量互不相同.

2004年05月18日

  时尚数码产品可谓是无奇不有,就是没有看到过虐待自己的玩意,不过老美确实也是有够变态,发明了这种名为电击轮盘赌PARTY玩具,可以使人同时体验到轮盘赌以及被电击这两种不同的感觉。


  四个人分别将一个手指伸进玩具的四个小孔中,其中一人按动开始键,这个玩具就会进入让人紧张窒息的倒计时,闪光并模拟真轮盘赌从快至慢的声音,最终光点会停下来,当它停下来时,这个工具就会随机的电击其中一个不幸的人。不过不用担心,这个电击只能使您感觉到瞬时的痛苦,对人体不会造成任何的伤害。


  当然这个只能惩罚不幸被选中的倒霉蛋,而对于游戏中途因害怕而抽手而出的人就需要其他三人通过“正常”手段进行惩戒了。





前几天弄了个测试rpg能力值的.. 今天弄个忍者起名字的/!!


 


Asuka Sakamoto -san


 


http://www.ninjaburger.com/fun/games/ninjaname/

2004年05月17日

首先  安装程序来源保密…


 


其次请不要找我要程序….


 


安装界面…


 



 


登陆界面….


 



 


登陆成功……


 



 


 


接下来.就可以卸软件鸟…


 


因为偶可不想犯罪…….

2004年05月15日

半夜,醒来,感觉老公紧抱着我,窃喜!心想:这家伙平时挺酷的,没想到睡觉时一不小
心就露馅了。于是感动不已,正准备好好享受他的拥抱时,听见他迷迷糊糊说到:“老婆
!好冷!”当时恨不得把他踢下床去。 
某日和老公一起看电视,电视中女演员正跳芭蕾,老公对我说:“老婆,你也很适合
跳芭蕾。”窃喜!心想:老公一定觉得我身材不错。可是我想让他表扬的直接点,于是沉
住气继续问他:“你为什么说我适合跳芭蕾呀?”老公一本正经并用很专业的语气说到:
“跳芭蕾的人胸都不能太大的。”我顿时没从椅子上滚下来。
一周末起床后,和老公说到最近的开销问题,觉得我们时常乱花钱,这样下去可不好
,于是决定改掉乱花钱的毛病。晚上老公陪我逛超市,我看到我爱吃的沙琪玛,可是不知
道要买哪个牌子,于是随便拿一种,标价为4块8,正准备伸手拿时听见老公在一旁不停的
叫到:“4块6的,4块6的。”我听到后顿时笑得直不起腰,看来他是对我们的省钱计划认
真了。
一天早上,我休息,老公上班,我送老公到电梯口,电梯门开,我转身准备回家,听
见背后老公叫我,转身一看,只见老公站在电梯口前一脚站立一脚翘起拦住电梯门,探着
身顽皮的对我说:“老婆里面没人呀,kiss一下!”我又好气又好笑!
一次,我一边照镜子梳头一边对老公说:“你说要是我的老公每天下班回来做饭洗衣
,然后我什么都不用做,只要上班,那多好呀。”老公走到我旁边,不停的摇我,说道:
“老婆,醒醒,醒醒,时间不早了。”我彻底被我老公打败了。
我和老公喜欢一起看影碟,但是每当要换片子的时候就很痛苦,特别是冬天,不想从
被窝里出来。于是,每次画面一停止的时候我就马上侧头装睡,还发出鼾声;老公见状,
只能自己下床去换。一等到碟片进仓,我立马醒来,装成睡眼腥松的样子说:怎么了,怎
么了,发生了什么事?要换碟片么?我来,我来,我来好了。老公说我太坏了。
隔几日,我已经忘了这个事情,到换碟片的时候我刚想叫他,可是他已经侧头而睡,
之后自然是如法炮制,笑死我了。
洗碗后顺便把不锈钢的锅了刷了,很卖力地刷,终于刷的比刚买回来的时候还亮。于
是非常得意!老公站在阳台的凳子上凉衣服,我兴冲冲地举着锅进去给他看。他对着锅,
头偏来偏去仔细地看,就是不夸我。正待问他时,他用手若无其事地抿一下头发,“恩,
这个小伙子还是挺帅……”
开始的时候我老婆说她不会做饭。我说:“不会吧,我都会做。”结果,现在我做!
哈哈。
下班的时候他去接我,我嚷着要买香蕉。到地方发现公司的两个女孩也在买。我与她
们很熟,而他一点也不。我跟她们叫道:“太好了!我不用买了吧?”那女孩便很慷慨地
把一兜香蕉都递给我:“随便拿!”我只掰了一根,那女孩说:“多拿点!客气什么呀你
!”他也跟着说:“拿两根拿根!”同事微一怔也赶紧附和他说:“多拿点多拿点!”他
说不不,两根就够了。我又掰下一个,正诧异他怎么可以这样丢我的脸,他却把网兜递给
我,然后拿着那两根香蕉递给同事,认真地说:“谢谢啊!”
第二天上班到中午了大家一想起来还狂笑……
老公很喜欢在家里藏起来让我找他,可是房子太小了,每次我都很轻易地找到他。一
次睡觉前他去关灯(灯的开关离床有一定距离),关了之后就见他迅速蹲在地上,我虽然看
得清清楚楚,(夜视视力很好哦),却闷声不响。只见他蹲了一会,又匍匐向床边爬过来,
我忍住不笑,等他小心翼翼费力地爬到床边,探出头来,我猛地扑过去,吓得他!哈哈,
狂笑!
在老公眼里,我是个著名的近视眼;低iq。不过有时,他也会上我的当。前天上街,在
一热闹的商场门口我俩走散了,不过我回头就发现了他,见他正紧张地向后面张望。我走
到离他的背后,大喊他的名字,他猛的回头,我装做没见到他,还是大喊,还作出很害怕
,很着急的样子,他开心的笑着抱住我,说“哎呀,笨笨!”哎呀,甜蜜死了!
又想起来一个:昨天晚上吃饭过后和老公在院子里散步,突然看见路上有一只蟑螂,
我大叫“老公,踩,踩,踩死它!”然后自己也伸脚准备去踩,老公说“哎呀,是小强,
放过它吧。”让我觉得自己好象很残忍,暴没爱心。
老公坐班车回家,路上堵死,给我发短信让我绕道回家。
我给他回短信说,堵车你就在车上睡会儿觉吧。
他回:不!要是梦见你多吓人!
某日看见电视上体育比赛中国队又落败
我信誓旦旦的说:“将来我要让我的孩子练体育为国争光!!”
老公看着书抬头看了我一眼说:“那让他练举重吧,看他妈这样儿他能行!”
呜呜呜……
有一天跟老公讨论那个所有人都会讨论的傻话题“下一辈子做男人还是女人”,我想
了半天说“我下一辈子要做男人,让你做女人来伺候我!”
老公扭脸看了我一眼说“上一辈子你也是这样说的”……
昨天和老公在家打老鼠,老公很英勇,踩死了老鼠。我大赞他神勇,他却很哀惋的说
“哎,我想起了小时候看的《舒克和贝塔》,心里好难受啊!”
偶第一次给老公做饭,自己手艺实在不精,做出来的菜色香味都不沾边,老公好可爱
地一边埋头苦吃,一边安慰偶说,老婆没关系,给我温饱就可以了,我不要求奔小康……

大铁锤传.马家爵
马家爵者,桂之宾阳人也。年及弱冠,环眼蒜鼻,发尽上指。性勇猛,工技击,多力善刀剑,与人罕言语。甲申岁仲春某日,聚同寝者数生赌牌,未几,其一云爵出千,同赌者数生闻之皆群起而谩之。爵心衔恨之。晚,货大铁锤二,欲击杀邵生。既同寝,夜半挥椎,邵生应声倒地,首裂。明日,再击杀一生。越明日,更击杀一生。如是者四日,杨生、龚生、唐生、邵生皆为之击杀。既杀四生,爵悔,乃藏四生尸于舍之木柜,内外密封之,挂锁而遁。数日,同舍一生语于舍吏:“吾室若鲍鱼之肆,其臭不绝,何故?”吏乃同生俱入,吏屏息发舍之木柜,观之见尸,股栗欲堕。不敢隐,报闻上司。刑部闻之以为重案,发六百里加急一等海捕文书,悬赏缉拿于举国之境。万民皆惊。越旬日,琼之邑人游于道,见一丐颇似马生,与之语,佯狂疯语。乃禀之巡捕衙门。捕之而讯,乃云:“某是也。”遂枷锁收监。

ts的個人資料


































攻擊

21

防禦

35

敏捷

79

耐力

34

意志

95

智商

160

種族

精靈

特别技能

敛财

職業

魔法師

屬性

2004年05月14日

夏普现在活跃在手机领域中,近期他们推出了自己的智能手机,该机拥有硕大无比的屏幕,超多的按键,当然其身躯也着实的不小。

  看看它320*240分辨率的超大屏幕,做什么不可以?可以看照片,放电影,如果你愿意还可以用来摊煎饼~呵呵开个玩笑而已,不过超大的6万色TFT LCD带来的视觉冲击力确实不小!装配了QWERTY键盘





  支持MMS彩信,JAVA,蓝牙,机身内置10MB FLASH 动态内存,支持扩展MMC卡内存。




  下面是该机屏幕的部分截图。功能上确实没的说,但是其外形实在是不敢恭维,超款的机身,还有一根天线,夏普公司推出它是为了和索爱P908相抗衡,不过QWERTU在外形上肯定不会像P908那样有人缘~

2004年05月12日

病毒依赖于微小的个体和强大的适应性得以生存。它们并不复杂:它们没有为呼吸,新陈代谢,肌体活动等功能提供什么,只有足够的DNA或RNA以供繁衍。比如,肺炎病毒比起它们入侵的细胞要小得多,但它们在每个肺炎流行季节都能够产生新的变种,造成无数人死亡。

一个好病毒的特点是:

* 个头小
病毒做的事情不多,所以不需要很大。有人认为病毒不是生物,只是一些有破坏性的酸和蛋白质。

* 可移植性
病毒经常变异,以便以不同的方式攻击不同的细胞。据说AIDS就是由猴子身上的病毒变异而成的。

* 耗尽寄主的资源

* 快速变异

UNIX具有以上所有优点。在它刚诞生时,很小,功能不多,缺乏真正操作系统所需要的功能(如文件映射,告诉IO,健壮的文件系统,设备锁,合理的进程间通讯),它的移植性很好。UNIX耗尽主机的资源,没有系统管理员的时时呵护,UNIX会不断恐慌,core dump,挂起。UNIX不断变异:同一个补丁在一个版本上工作,在另一个版本上就不行。

UNIX是有用户界面的计算机病毒。



自从UNIX 80年代开始流行以来,UNIX厂商一直在努力进行UNIX标准化工作。SUN, IBM,HP和DEC在这个他们自己制造的难题上倾注了数百万美元。

为什么UNIX厂商不喜欢UNIX标准化?

许多用户受够了复杂繁多的UNIX,最终只好使用Windows,因为他们的这个UNIX无法支持那个UNIX上的应用程序。

如果UNIX标准化了,谁还会买SUN的机器呢?
欢迎新用户
如同用一把上了六颗子弹的左轮枪玩俄罗斯轮盘赌

Ken Thompson 自己设计过一辆汽车。和其他车不同,它没有速度计、汽油计,也没有那些愚蠢的指示灯讨司机的厌。如果司机犯了什么错误,仪表盘上就会出现一个大大的“?”。“有经验的司机,”Thompson说,“应该知道哪儿搞错了。”

计算机系统的新手需要一个友好的系统。至少,一个得体的系统会这样招待自己的客人:


与功能有逻辑关系的命令名
对危险命令的小心处理
一致的命令行为和命令行参数解析
易得和易读的在线文档
当命令失败时,给出可理解和有用的错误反馈


在建造UNIX的过程中,从没邀请过住户。来访的都是些戴着安全帽的建筑工人,被安插在这个破木板房子的各个角落。不幸的是,不仅没有人性因素(human factors)工程师的参与,而且住户的需要就从来没有被考虑过。所以抽水马桶、中央供暖、窗户等这些方便设施在后期就很难再添加了。但是建筑师们仍然为UNIX的设计而骄傲,似乎他们并不介意在一个没有烟火探测器的屋子里睡觉。

在其发展的大部分历史中,UNIX只是大学和工业研究人员的研究工具。随着大批便宜工作站的出现,UNIX作为平台软件进入了新时代。这一变化大约发生在1990年,其标志就是工作站厂商把C编译器从UNIX发布中剔除出去,以降低成本满足非开发用户的需求。可见,只是最近几年中UNIX厂商才开始考虑非程序员用户的需要,开始为他们提供shell以外的图形界面。

含糊的命令名

UNIX新手总是对UNIX对命令的命名表示惊讶。在DOS和Mac上受的教育不足以让他们体会到cp、rm、ls这类两字母命令的简洁和优美。

像我们这样用过70年代早期的IO设备的人都能理解,ASR-33 Teletype这类设备的速度、可靠性,以及它的键盘是万恶之源。和今天这种基于反馈原理、只需要关闭一个微开关的键盘不同,你必须用足力气揿下Teletype的键至少半英寸,以发动一个类似自行车上用的小型发电机,在上面操作要冒指骨骨折的危险。

如果当时Dennis和Ken用的是Selectric而不是Teletype,可能今天我们敲的将不是”cp”和”rm”而是”copy”和”remove”了。(Ken Thompson曾被问道如果他能重新设计UNIX他将做什么修改,他回答说:“我会在creat命令后加上个e。”),科技在拓宽我们的选择的同时,也能限制我们的选择,此一例也。

20多年过去了,还有什么理由延续这一传统呢?理由就是“历史的无可替代的力量”,历史就是那些存在的代码和教科书。如果一个厂商用remove替代了rm,那么所有UNIX教科书就不适用于这一系统了,每个使用rm的shell脚本都需要被修改。而且这也不合POSIX标准。

一个世纪前,打字高手由于击键过快,经常把打字键柄搅在一起,工程师设计了QWERTY键盘,于是问题得到了解决,因为没人能在这样的键盘上打得快。计算机的键盘不再有机械键柄,但QWERTY的键盘布局仍然在使用。同理,在未来的一个世纪中,我们仍然会继续使用rm。

事故会发生

用户十分关心自己的数据和文件。他们使用计算机来产生、分析和存储重要信息。他们相信计算机能够保护他们的重要财产。如果没有了这种信任,他们和计算机的关系就会蒙上阴影。UNIX辜负了我们的信任,它拒绝对使用危险命令的用户提供保护。比如rm就是以删除文件为目的的危险命令。

所有UNIX新手都有不小心无可挽回地删除重要文件的经历,即使是专家和系统管理员也遇到过。因此而每年损失的时间、精力可能价值几百万美元。这是个值得解决的问题;我们不理解为何UNIX一直拒绝解决这一问题。难道结果还不够悲惨么?

UNIX比其他操作系统更需要提供恢复删除功能,原因是:

UNIX文件系统没有版本功能
自动的版本维护能保留文件的历史版本,防止新版本冲掉老版本。
UNIX程序员在错误处理方面臭名昭著
许多程序不检查是否所有内容都被写入了磁盘,或被写入的文件是否存在。有些程序总是删除输入文件。
UNIX shell扩展“*”,而不是其子命令
于是rm这样的命令就无法检查“*”这些危险的参数。即使是DOS也对”del *.*”有些提示。但在UNIX下,rm * 和 rm file1 file2…是没有区别的。
删除是永久的
UNIX没有undelete命令。许多其他更安全的系统则只是标记被删除文件所用的块为“可被使用”,然后把它移到一个特殊目录下。如果磁盘满了,这些文件块才会被重新使用。这一技术不是什么火箭科学,Macintosh在1984年就提出了“回收站”的想法,而Tenex早在1974年就采用了这一技术。连DOS也提供了简单的undelete功能,虽然并不总有效。


这四个问题互相合作,制造了无数无法恢复的重要文件。解决的方法早就存在,但UNIX“标准”版中却从来没有提供。

欢迎来到未来世界。

“rm”就是终结

许多实际的恐怖故事说明了以上的这些原则。以下是alt.folklore.computers新闻组上流传的一系列故事中的一个:


Date: Wed, 10 Jan 90
From: djones@megatest.uucp (Dave Jones)
Subject: rm *
Newsgroups: alt.folklore.computers

是否有人曾想执行以下命令:
% rm *.o
结果却打成了:
% rm *>o
现在你得到了一个空文件o,以及大量的空间来存放它!


事实上,你可能连o也得不到,因为shell的文档并没有说o是在*被扩展前还是被扩展后被建立的。