Leo 的个人资料爬行的蜗牛照片日志列表 工具 帮助
2006/4/29

每年一病

『 GuoLing's 』 白天吃白片,晚上吃黑片

定义
  

感冒是一种急性传染性鼻炎,俗称“伤风”。是由呼吸道病毒引起的,其中以冠状病毒和鼻病毒为主要致病病毒。病毒从呼吸道分泌物中排出并传播,当机体抵抗力下降,如受凉、营养不良、过度疲劳、烟洒过度、全身性疾病及鼻部本身的慢性疾病影响呼吸道畅通等,容易诱发感染。感冒发作后继发细菌感染。感冒起病时鼻内有干燥感及痒感、打喷嚏、全身不适或有低热,以后渐有鼻塞、嗅觉减退、流大量清水鼻涕、鼻粘膜充血、水肿、有大量清水样或脓性分泌物等。若无并发症,病程约为7~10天。

相关因素
  

·一般认为,感冒是因为气候变化、身体受凉、过度劳累、机体抵抗力下降,或通过呼吸道传染等因素所致。除此之外,感冒还有其他诱发途径。

·感冒与饮食有关:一些感冒是由于“吃”而引起的,诸如过多地食用高脂肪食物、肉类、乳制品、黄酒等,可降低体内的免疫细胞抗病毒能力,引起感冒;过多地摄入高盐食物,可导致唾液分泌减少,使口腔粘膜水肿、充血、病毒增多,引起上呼吸道感染,食用过多的高糖食物,可消耗体内水分和营养物质,引起口干舌燥,使免疫力降低,进而诱发感冒。为此医生们建议,为了预防“吃”出感冒,饮食应荤素搭配,少吃油炸、腌制食物,少饮酒。
·接触感冒病人:如果接触感冒病人,再用手摸鼻子和眼睛就易感冒。因此,防止感冒最有效的方法之一就是勤洗手,改掉用手触摸鼻眼的习惯。
·情绪与免疫机能:情绪与免疫机能是一对“孪生兄弟”。经常发愁可引起免疫功能下降,机体杀伤、吞噬病原微生物和炎性细胞的能力削弱,干扰素水平降低,造成呼吸道防御功能减退,给无孔不入的呼吸道病毒以“可乘之机”。所以专家们认为,心胸豁达、情绪乐观是预防感冒的有效办法。

感冒是四季常见的外感病,尤以冬春两季多见。许多家庭都备有治疗感冒的中成药,有的人患感冒后吃了不少药,但病症并没减轻。关键在于没有辨证用药。

分类
  

  中医认为感冒一般可分为风寒感冒与风热感冒两大类。这两种感冒病因病机、症状、治疗原则及用药差别很大。

  风寒感冒是风寒之邪外袭、肺气失宣所致。

  症状可见:恶寒重、发热轻、无汗、头痛身痛、鼻塞流清涕、咳嗽吐稀白痰、口不渴或渴喜热饮、苔薄白。治法应以辛温解表为主。

  常选用麻黄、荆芥、防风、苏叶等解表散寒药。代表方剂为《葱豉汤》、《荆防败毒散》。服中成药可选用感冒清热冲剂、正柴胡饮冲剂、感冒软胶囊、川芎茶调散、通宣理肺丸等等。服药后可喝些热粥或热汤,微微出汗,以助药力驱散风寒。患风寒感冒也可服用验方:葱白5节、淡豆豉9克、生姜3片,水煎服,日一次;或生姜30克、红糖30克,煎汤分三次服用。   风热感冒是风热之邪犯表、肺气失和所致。

  症状表现为发热重、微恶风、头胀痛、有汗、咽喉红肿疼痛、咳嗽、痰粘或黄、鼻塞黄涕、口渴喜饮、舌尖边红、苔薄白微黄。

  治法应以辛凉解表为主。常选用菊花、薄荷、桑叶等。代表方剂为《银翘散》、《桑菊饮》。服成药可选用银翘解毒丸(片)、羚翘解毒丸、桑菊感冒片、板兰根冲剂等。如发热较重、咽喉肿痛明显,可以配服双黄连口服液(冲剂)、清热解毒口服液。这些药具有较好的清热解毒作用。患风热感冒要多饮水、饮食宜清淡,可以喝萝卜汤或梨汤。患风热感冒也可以服用验方:薄荷3克、芦根30克、板兰根15克、生甘草6天,每日一剂;或竹叶10克、薄荷3克、杏仁9克、连翘9克,每日一剂。

治疗
  

对感冒应以支持疗法及对症治疗为主。可大量饮水、通大便、热水洗脚、饮食应清淡,注意休息。初期时可用发汗法,如有并发细菌感染可用磺胺药或抗生素。

预防
  

增强抗病力及定期注射免疫球蛋白可有效预防感冒。

饮食
  

感冒,一年四季都会发生。中医认为,调整好饮食结构,巧用某些饮食调动机体的生理变化来防治感冒,是一条既简便又安全的有效途径。
  
  吃蔬果因蔬果属碱性食物,摄食后不利于病毒等微生物的繁殖,因此,多吃富含钙、锌元素及维生素的食物,对病毒有一定的抑制作用。许多蔬菜水果如萝卜、梨、猕猴桃、柑桔及各种蘑菇,能提高人体的免疫力,适当多食对预防感冒有一定作用。
  
  喝鸡汤据报道,在欧美一些国家,人们一旦患上感冒,不是先
求医问药,而是马上宰只鸡,煨鸡汤来喝,往往取得迅速痊愈的效果。医学家和营养学家研究发现,鸡肉、鸡汤中含有人体所需的多种氨基酸,可以有效地增强人体对感冒病毒的抵抗能力。因此,感冒初期喝些鸡汤可以有效地消除呼吸道中的病毒,使呼吸道恢复正常状态,从而可促进痊愈。
  
  吃软食从中医学角度讲,感冒病人宜食稀软的食物,如粥、藕粉、面条等,并根据病情辨证选食。风寒型者宜多吃发汗散寒食品,如辣椒、葱、生姜、大蒜等;风热型者宜多食有助于散风热、清热的食品,如绿豆、萝卜、白菜等。


『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/21

又到周五,霹雳人评-天险刀藏语录

『 GuoLing's 』 天险刀藏 VS 兰漪

你永远不知何时会下西北雨,


就好像你永远不知道何时会有人来杀你。


花,是一种很美的东西,但是我总觉得男人戴花,很怪!


雨淋掉的,不是你的身躯,而是你的性命!


人在面对死亡之前,总会做出很多挣扎,


我了解这点,所以我陪他挣扎。


男人是否和女人一样,一旦宽衣解带,便是放弃挣扎?


我听过天落红雨,但不曾经历过,那一天,我看到了。


雨停了,还没看到阳光,那生命停了呢?


----------------------------------------------------------------------------------------------------

 

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
『 GuoLing's 』 天险刀藏 VS 上地理司

天险刀藏:那晚的夜色很美,但我没心情欣赏,因为有更重要的。


地理司:嗯,挡路者谁?


天险刀藏:朋友,你嚐过失去的滋味吗?


地理司:哼,地理司不曾失去,也不容失去,闪开!


天险刀藏:很多人在即将失去的时候,不知他即将失去,最後他就真正失去,看你现在的神情,你大概忘了,你只剩下今夜的时间吧。


地理司:喔?原来是你在布弄玄虚,那你就更该死!喝~


天险刀藏:其实,一个不曾失去的人最可怜,因为,他永远学不会什麼叫珍惜。


地理司:荡魔之元,去。


天险刀藏:实力不差,但很可惜,伤不了我。


地理司:夸口!魔上究竟,喝~


天险刀藏:很多事情,你不愿意相信,但最後...你还是不得不相信,现在,是该让你相信你将失去了,天险无避,喝。


天险刀藏:一个人真能无血无泪,只要他学会无情。


----------------------------------------------------------------------------------------------------
『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
『 GuoLing's 』 天险刀藏 湖边拭刀

无悼一人庸:你杀了他。


天险刀藏:该杀的,活不了,只不过,这回有点遗憾。


无悼一人庸:怎麼讲?


天险刀藏:太容易得到的东西,总让人感觉有一点非是真实的遗憾。


无悼一人庸:非是真实,嗯...看来事有蹊跷。


天险刀藏:无妨,反正结果都一样,只不过过程有点变化而已,下一个呢?


无悼一人庸:只剩重点人物,你选谁呢?


天险刀藏:那就照排行来吧,这也算是种礼貌。


无悼一人庸:东方鼎立可不比前两阵,好友你要小心。


天险刀藏:因为还想回去看雪,所以我每次都很小心。


天险刀藏离开後...


无悼一人庸:怎样的一场雪,能让你如此贪恋呢??


----------------------------------------------------------------------------------------------------
『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
『 GuoLing's 』 天险刀藏 VS 赦生童子 (最后一战 神醉梦迷)

 

人一旦有了挂念,做什麼事情都会特别小心,人总以为人定胜天,但很多事情,却输在自己 ....

 

那一瞬间,我对自己说,下回再与他见面,我会杀了他。

 

人一旦有了挂念,做什麼事都会特别小心,杀人,也是一样。

 

其实杀人跟爱人一样,不就求个痛快,愈是简单愈是...

 

曾经,我也有那种约束,但我失约了。那天,我遇上了当初的我们...

 

[ 这一生我都在负人,这次我不想负自己,抛开记忆,我就如同失去生命,但我早已置生死於度外,这次将是我最骄傲的一战 。]

 

天险刀藏如此述说著

 

数以百计自林中飞入云海的光点,天险刀藏独白:

 

你曾经看过流星雨吗?那是非常美丽的奇象,虚幻的光芒,如人的一生. . .神醉梦迷. . .我很喜欢这个名字...下一刻,我将连自己也遗忘,但这一刻是属於我的,在我还记得你之时与我未来记忆一同陪葬吧,赦生童子。


面对破封无敌的赦生童子,天险刀藏脑海里一幕幕过往深刻记忆黑白画面,也随著白发出现而消逝...

无悼一人庸:


天要我在此等他,想不到等到的是你...


天险刀藏平生最爱雪,让我们一起找一处有雪的地方吧...


後来我们才了解,原来天险刀藏想回去的地方...并不会下雪...但是我们还是找到了


----------------------------------------------------------------------------------------------------
『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
『 GuoLing's 』 天险刀藏MV


天险刀藏MV

『 天险刀藏 』
----------------------------------------------------------------------------------------------------

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/20

For Dr.Ding 's Cluster <II>

『 GuoLing's 』 编译内核解决问题

解决之道

在Redhatas3.0上精简并编译系统内核

2.6内核编译

 

解决之道


因为实际的硬件配置和环境可能不一样,所以不一定能解决问题,但大致的解决思路应该是一样的。
首先当时建cluster时,主节点(Master Node)和从节点(Client Nodes)的硬件配置是一样的。虽然我看oscar4.1的文档说其打包的systemimager版本只支持单一映象文件,所以尽量要求client nodes的配置一样(并没要求主节点),但主节点跟从节点一样配置也可以省很多事(这样不用修改用oscar生成的client node的image文件中关于硬件配置方面的东西,比如硬盘类型,如何分区和用什么文件系统)。

另外一点非常重要的是看client nodes用pxe网络启动时出错信息前面的一段(看看加注释的部分)
   Start_syslogdget_boel_binaries_tarball
   rsync -av 192.168.1.1::boot/i386/standard/boel_binaries.tar.gz /tmp/boel_binaries
   receiving file list... done
   boel_binaries.tar.gz
   wrote 116 bytes read 3370446 bytes 674116400 bytes/sec
   total size is 3369935 speedup is 1.00
   tmpfs_watcher
   get_scripts_directory
   rsync -a 192.168.1.1::scripts/ /scripts/
   
   autodetect_hardware_and_load_modules             
   Detecting hardware: spurious 8259A interrupt: IRQ7
   ide-scsi
   Loading sd_mod...
   using /lib/modules/2.4.25-boel/kernel/drivers/scsi/scsi_mod.o
   SCSI subsystem driver Revision:1.00
   Using /lib/modules/2.4.25-boel/kernel/drivers/scsi/sd_mod.o
   Loading ide_disk...
   Using /lib/modules/2.4.25-boel/kernel/drivers/ide/ide_disk.o
   Loading ide_scsi...
   Assuming ide_scsi is compiled into the kernel, not needed, or already loaded.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   上面这一段会报告硬件检测和模块加载的输出信息,一般只要驱动硬盘的模块没有加载,会导致后面的问题
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
   get_hostname_by_hosts_file.
   Hosts file exists...
   searching for the machine's hostname in /scripts/hosts by IP: 192.168.1.2
   This hosts name is: oscarnode2
   run_pre_install_scripts
   >;>;>;99all.harmless_example_script
    I live in /var/lib/systemimager/scripts/pre-install
   choose_autoinstall_script
   Using autoinstall script:/scripts/oscarnode2.sh
   write_variables
   run_autoinstall_script
   >;>;>;/scripts/oscarnode2.sh
   get_arch
   DISKORDER=sd,cciss,ida,rd,hd
   enumerate_disks
   DISKS=0
   NO DISK DEVICE FILES WERE FOUND. THIS USUALLY MEANS THE KERNEL DID NOT RECOGNIZE ANY OF THE ATTACHED DISKS
   
   The kernel boot messages,which preceded this, may indicate why.
   Reverting to disk configuration specified by image master script.
   
   Partitioning /dev/sda...
   Old partition table for /dev/sda:
   Error: could not stat device /dev/sda -No such file or directory
   parted -s -- /dev/sda mklabel msdos || shellout
   Error: could not stat device /dev/sda -No such file or directory
   Killing off running processes.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
停在这里时会再现BusyBox built-in shell的提示符,这时可以用#lsmod 命令看看哪些模块加载了,用#modprobe 看看加载必须的设备驱动需要什么模块文件名。

此外,用PXE网络安装Client nodes时,最开始是用systemimager自带的BOEL-2.4.25内核来引导。因此如果这个内核不带有必须的驱动模块就会出现问题。而且这个内核是分为两部分的,一部分为放在/tftpboot/initrd.img中,另一部分为/usr/share/systemimager/boot/i386/standard/boel_binaries.tar.gz文件(这个文件才包含所有的模块,由/tftpboot/initrd.img中的脚本文件./etc/init.d/functions负责解压、硬件检测和模块加载)。如果没有出现找不到的硬件,则后面的client nodes的安装工作仅仅是从Master node拷贝文件及配置了,安装一个client nodes也就两三分钟的时间。

了解了上面的过程就可以根据情况找解决方法了。遇到的问题是client nodes的adaptec 39320b所需要的驱动模块aic79xx.o版本比BOEL-2.4.25带的要高。我当时试了直接将Master node上的aic79xx.o放到boel_binaries.tar.gz文件中,但还是有问题。因为master node上安装的RHEL AS3u3内核版本为2.4.21-20,那个scsi的驱动应该是REDHAT在这个版本下编译的,可能与BOEL- 2.4.25不匹配。后来我从kernel.org下载了2.4.25的内核,将adaptec 39320B的驱动程序源码放到里面,然后新编译了一次内核(到make modules_install就可以了),将编译好的驱动模块放到boel_binaries.tar.gz文件中的想应目录下。最后我解压开/tftpboot/initrd.img,修改了其中的functions脚本的如下部分

#
# Detect what we can.
# Note: Modules that are needed during the initial boot stages of BOEL should
# be copied to the "skel/my_modules" directory prior to creating your
# custom initrd.gz . -BEF-
#
autodetect_hardware_and_load_modules() {
echo
echo autodetect_hardware_and_load_modules
echo -n "Detecting hardware: "
# MODULES=`discover --module bridge ethernet ide scsi usb`
# echo $MODULES
# Prepend with other modules that we will probably need.
# MODULES="sd_mod ide-disk $MODULES"
MODULES="sd_mod scsi_mod aic79xx"
for MODULE in $MODULES
do
echo
echo "Loading $MODULE..."
# modprobe $MODULE 2>/dev/null || echo "Assuming $MODULE is compiled into the kernel, not needed, or already
#loaded."
insmod scsi_mod.o
insmod sd_mod.o
insmod scsi_mod.o
insmod aic79xx.o
done
}
#

修改这个脚本的原因是因为它在用discover检测硬件时总不能正确的检测出client nodes的硬件,所以脚本也不知道该加载什么模块。我只是简单的将检测部份注释掉,用insmod命令强制加载这几个需要的模块。(这一步可能也有其它的解决方法,当时成功之后就忙着解决后面遇到的问题了,也没有进一步探究了:-)

 

 

[TOP]

在Redhatas3.0上精简并编译系统内核


我们在安装LUNUX的过程中实际上有大量的,我们并不需要的模块被放在LINUX的系统内核中,并且每次在系统启动时这些没有的内核模块(在特定的需求下)会加载到系统内核中,这样以来不仅有大量的内存被占用,更为严重的是系统内核的运行效率会大打折扣。
下面是我精简和编译系统内核的实践过程。

1.编译环境说明:
在这里特别说明的是在编译系统内核之前一定要装全系统的编译环境。一般情况下在安装LINUX时选上KernelDevelopment和DevelopmentTools就可以了。如果当时没有选装上请再单独安装,否则编译系统内核的过程会出错而不能进行。

另外我们编译内核时一定要在本地登陆,不能通过远程的控制台登陆到系统上进行操作。

2.去掉多余的内核模块:

#su-
#cd/usr/src/linux-2.4
#makemrproper如果是新装的系统可省略这个
#makemenuconfig

如果你不需要并口设备支持(如传统的打印机),注销这个选项:

Parallelportsupport--->;

如果你使用的IDE硬盘(会影响USB设备的使用),注销这个选项:

SCSIsupport--->;

如果你没有IEEE1394(火线)设备,注销这个选项:

IEEE1394(FireWire)support--->;

如果你的网络中没有下列需求,注销这个选项的下列子选项:

Networkdevicesupport--->;

FDDIdriversupport光纤网络
Ethernet(1000Mbit)1000M网络
ATMdriversATM网络
PCMCIAnetworkdevicesupport笔记本计算机支持
WirelessLAN(non-hamradio)无线网络
TokenRingdevices令牌环网络

如果你不想用LINUX架设业余电台,注销这个选项:

AmateurRadiosupport--->;

如果你不想使用红外线设备,注销这个选项:

IrDA(infrared)support--->;

如果你没有ISDN线路,注销这个选项:

ISDNsubsystem--->;

如果你没有可以支持I20(PIC的超集)的设备,注销这个选项:

I2Odevicesupport--->;

如果你只想让LINUX安静的工作,注销这个选项:

Sound--->;

如果你没有USB接口设备并厌恶USB设备,注销这个选项:

USBsupport--->;

如果你没有IBM的蓝牙设备(市场这种产品非常少),注销这个选项:

Bluetoothsupport--->;

如果你有其他的内核需求,查找相关的内核选项:


3.开始内核编译:

#makedep大约需要5分钟
#makeclean大约需要5秒
#makebzImage大约需要10分钟
#makemodules大约需要30分钟
#makemodules_install大约需要1分钟
#reboot

4.精简编译的成果:

我的系统在完成了上述编译后系统内存占用下降了35M,CUP的占用明显下降了,
我的系统服务有:
CROND、IMAP、HTTPD、IPTABLES、IRQBALANCE、MYSQLD、NETFS、NETWORK、
POSTFIX、PROFTPD、SGI_FAM、SMB、SSHD、SYSLOG、XFS、XINETD

REBOOT计算机TOP查看:
RAM使用:45M
CUP使用:0

 

[TOP]

编译linux 2.6内核

内核升级最好升级到2.6.8以后,之前的kernel好象有offset漏洞.偶就是按这篇文档升级成功的,不过rpm与声卡好象还有点问题!
一 编译前准备
1)下载一份内核源代码,我下的是linux-2.6.7.tar.bz2,你可在如下地址下载它或者是更新的版本.
http://kernel.org/pub/linux/kernel/v2.6/
2) 下载最新版本的module-init-tools( "module-init-tools-3.0.tar.gz" and "modutils-2.4.21-23.src.rpm")
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.0.tar.gz
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm
3)安装module-init-tools. 它会替代depmod [/sbin/depmod]和其他工具.
tar -zxvf module-init-tools-3.0.tar.gz
cd module-init-tools-3.0
./configure --prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf
4)安装modutils-2.4.21-23.src.rpm. 你可能会看到"user rusty and group rusty not existing"的警告. 没关系,你只需强制安装就是了.如果你不对Redhat 9和Redhat 8做这几步, 你将会在"make modules_install"这一步时出现问题.
rpm -i modutils-2.4.21-23.src.rpm
rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm
5)解压缩内核源代码.把下载的源代码包放到目录/usr/src下,然后
cd /usr/src
tar xvfj linux-2.6.7.tar.bz2
cd linux-2.6.7
二 编译配置
在这一部分涉及几个重要模块的配置请,特别注意.一般用"make menuconfig"命令来配置内核.
输入以上命令后出现一个菜单界面,用户可以对需要的模块.下面着重讲几个重要的配置
1)文件系统
请务必要选中ext3文件系统,
File systems--->
[*] Ext3 journalling file system support
[*] Ext3 Security Labels
[*] JBD (ext3) debugging support
以上三项一定要选上,而且要内建(即标*). 这个非常重要,在配置完后一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项. 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed
2)网卡驱动
请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是realtek 8139,以下就是这种网卡的配置,以供参考
Device Drivers--->
Networking support--->
Ethernet (10 or 100Mbit) --->
<*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)
<*> RealTek RTL-8139 PCI Fast Ethernet Adapter support
3)声卡驱动
也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是i810_audio,以下就是这种声卡的配置,以供参考
Device Drivers --->
Sound --->
<*> Sound card support
Advanced Linux Sound Architecture --->
<*> Advanced Linux Sound Architecture
<*> Sequencer support
< > Sequencer dummy client
<*> OSS Mixer API
<*> OSS PCM (digital audio) API[*] OSS Sequencer API
<*> RTC Timer support
PCI devices --->
<*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
Open Sound System --->
< > Open Sound System (DEPRECATED)
以上三项配置关系到新内核能否正常运行,请备加注意.其他的配置如果不是很了解,大可以按默认的选择.
三 编译过程
按如下命令编译,大概需要一个多小时,大可以好好放松一下
make bzImage
make modules
make modules_install
make install
运行新内核之前,请检查一下/boot/grub/grub.conf的内容,下面的配置可作参考
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hdc3
# initrd /initrd-version.img
#boot=/dev/hdc
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.7)
root (hd0,0)
kernel /vmlinuz-2.6.7 ro root=LABEL=/
initrd /initrd-2.6.7.img
title Red Hat Linux (2.4.20-
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img

四 运行内核的常见问题
1)RPM问题

进入编译好的内核后,与RPM相关的命令有些不能使用,并出现下列错误:

rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
no packages

解决方法是执行“export LD_ASSUME_KERNEL =2.2.25”命令,也可以将其写入/etc/bashrc。
2)Sound问题

声音部分的模块名也改变了。我的笔记本原来的声卡驱动是i810_audio,现在已改为snd-intel8x0。因此需要把下面的内容添加到/etc/modprobe.conf中:

alias char-major-14 soundcore
alias sound snd-intel8x0
alias sound-slot-0 snd-intel8x0
alias snd-card-0 snd-intel8x0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
install snd-intel8x0 /sbin/modprobe --ignore-install sound-slot-0 &&
{ /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1; /bin/true; }
remove snd-intel8x0
{ /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1; /bin/true; };
/sbin/modprobe -r --ignore-remove sound-slot-0

然后执行“modprobe sound”加载声音模块,并使用下列命令检验声卡驱动:

#cat /proc/asound/cards

显示结果如下:

0 [SI7012]: ICH - SiS SI7012
SiS SI7012 at 0xdc00, irq 11


3)VMware问题

解决方法是:

◆ 将/usr/bin/vmware-config.pl中所有的“/proc/ksyms”替换为“/proc/kallsyms”。使用“sed”命令可以达到这个目的。

◆ 重新运行该脚本,使用内核头文件编译新的内核模块。在编译过程中如发生错误,应该进入/usr/lib/vmware/modules/source,使用下面的命令将vmnet.tar解包:

#tar xvf vmnet.tar

◆ 进入vmnet-only目录修改bridge.c文件。将“atomic_add(skb->truesize, &sk->wmem_alloc);”修改为“atomic_add(skb->truesize, &sk->sk_wmem_alloc);”,并用类似的方式将“protinfo”改为“sk_protinfo”。

◆ 再次把vmnet-only目录用下面的命令重新打包为vmmon.tar:

#tar cvf vmmon.tar vmnet-only。

如果按照上面的操作依旧失败,另一解决方法是到http://ftp.cvut.cz/vmware/下载vmware-any-any-updateXX.tar.gz,将其解压到任何目录下,执行其中的runme.pl。

4)USB问题

新的2.6.0内核中使用的USB模块大多数已经改名,因此需要修改/etc/rc.sysinit中对USB子系统初始化的代码。将该文件中所有的“keybdev”改为“usbkbd”、“mousedev”改为“usbmouse”、“/proc/bus/usb”改为“/sys/bus/usb”,并在/etc/init.d/halt中进行同样的修改。此外,还要在/etc/rc.sysinit中找到“needusbstorage”,做如下修改:

needusbstorage=
if [ $usb = "1" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`
action $"Initializing USB 1.1 host controller: " modprobe ohci-hcd 2> /dev/null
action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
action $"Initializing USB keyboard: " modprobe usbkbd 2> /dev/null
action $"Initializing USB mouse: " modprobe usbmouse 2> /dev/null
fi

如果USB总线是2.0的,还需将“ohci-hcd”改为“ehci-hcd”。

5)Sysfs问题

解决方法是:

◆ 建立目录/sys:#mkdir /sys

◆ 在/etc/rc.d/rc.sysinit文件中找到“mount -f /proc”,在其下一行加入“mount -f /sys”。

◆ 同样在/etc/rc.d/rc.sysinit文件中找到“action $"Mounting proc filesystem: " mount -n -t proc /proc /proc”,在其下一行加入“action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys”。

◆ 在/etc/fstab文件中加入“none /sys sysfs defaults 0 0”。

◆ 在/etc/init.d/halt的halt_get_remaining函数中找到“awk ' ~ /^\/$|^\/proc|^\/dev/”,改为“awk ' ~ /^\/$|^\/proc|^\/sys|^\/dev/”。

6)Hotplug(热插拔)问题

内核对热插拔功能的支持与KMOD内核线程有关。

解决方法是将/etc/rc.sysinit中所有的/proc/ksyms替换为/proc/kallsyms。执行如下命令:

#mv /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit.bak
#sed -e 's/\/proc\/ksyms/\/proc\/kallsyms/g' /etc/rc.d/rc.sysinit.bak > /etc/rc.d/rc.sysinit

7)Glibc问题

用户可以升级Glibc标准库的软件包来解决该问题。因为有些发行版,例如Red Hat 9.0上默认安装的Glibc可能是被Red Hat内核小组修改过的。软件包的下载地址是:

ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-2.3.2-27.9.i386.rpm。

可以连同以下几个软件包一起升级:

ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-common-2.3.2-27.9.i386.rpm

ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-devel-2.3.2-27.9.i386.rpm

ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-utils-2.3.2-27.9.i386.rpm

如果使用“rpm -Uvh glibc*”失败,请用命令“rpm -e”先删除旧的Glibc,然后用命令“rpm -Uvh --force glibc*”强制安装。

其它问题

大家也许还会遇到其它问题,但是无论遇上什么问题都可以依照下列步骤尝试解决:

1.内核组件尽可能编译为模块。执行如下命令可以快速重建内核:

#make all modules_install install

2.软件失败的大多数情况是由于模块名已被更改,而/etc/rc.d/rc.sysinit和/etc/rcX.d/*下的脚本却没有修改这些值而导致的。因此,依次修改相关条目可以改进,但是这也需要相当多的背景知识。如果觉得麻烦,可以把所有加载模块的命令集中在/etc/rc.d/rc.local中。例如:

modprobe eth0
modprobe isofs
modprobe loop
modprobe vfat

同时修改/etc/modoribe.conf文件。具体可参见“man modoribe.conf”获得更多的帮助信息。

3.如果想知道某模块变更后的名字,可以首先在“make menuconfig”时找到该选项,选择Help找到它的配置名称(CONFIG_*),然后到源代码相关目录下的makefile中寻找CONFIG_*。一般可以找到obj-$(CONFIG_*)一项,其值就是该模块的名字。

附:本文参考文章:http://tech.ccidnet.com/pub/article/c309_a103129_p1.html

[TOP]

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/18

一个不止有兴趣,还有信念的职业程序员的悟

『 GuoLing's 』 编程感悟

我也说IT

—有感于IT业的浮躁

转载自http://blog.csdn.net/liberwang/archive/2006/01/04/569800.aspx


我国古代的圣人孟子把人分成两类,一类人制定规则,另一类人遵守规则;制定规则的人劳心,遵守规则的人劳力。

治人者致人而不致于人。

程序员也有两种。一种是写程序给不懂程序的人,另一种是给第一种人写程序。第二种不致于人。

第一类就是象我这样的人,给各行业的客户写应用软件。第二类就是给Bill Gates打工的人,设计Visual Studio,

就是给我写程序。这篇文章是给第一类人看的。

不管你相信还是不相信,两类人有着天壤之别。

什么差距,你可以自己测量。打开你所用的语言帮助手册。看看有多少函数,方法,属性你从未用过。

编写语言的人能写出来的,而你可能从未想过,听过,用过,这就是差距。

你可以说“他们”是一群人,而你是一个人。那么给自己一个理由,为什么你不是一群人中的一个。

写程序就象是个游戏,你如果足够聪明,那你就可以控制别人,否则,你就受制于人。

这个世界上大部分“程序员”都不足够聪明,可是他们自以为聪明,这又证明了他们真的不聪明,他们只是大愚若智,

也就是大愚弱智。

“我虽然不聪明,但我可以苯鸟先飞嘛”。可是你知道为什么聪明鸟不先飞呢?枪打出头鸟,猎人一枪把苯鸟打下来了,

聪明鸟就乘机飞走了。你不在先飞之前想想为什么别的鸟不飞,那真的说明你是只苯鸟。 历史是由少数人推动的。不

是由大众推动的。后者是少数人为了麻痹大众的借口。IT界也一样。不要认为你是推动IT 前进的人,你只不过是推动

者手中的一颗棋子罢了。

Linux 比Windows好?我不知道。我写不出操作系统,能用好已经不错了。还有好多人用不好。

这个行业的许多人并不适合写程序,他们步入这个行业是因为工资高。如果哪天杀猪的工资更高。。。嘿嘿,那天下的

猪就要倒霉了。

猪,还是比较幸运的,它去死却不用付钱。可是现在倒霉的是“客户”,还要付钱。

Bill Gates不会去写一个ATM系统,那不是他干的事。那他干什么?编个语言让你去写。你见过中国移动靠卖手机发财吗?

不会。想用手机吗?拿钱来。

你不是一个软件工程师,充其量是一个“会写程序的”。不同吗?当然。有两个人,一个说“我是厨师”,另一个说“我

会做菜”,一样吗?我说我读了许多书,可我全会了吗?肯定没有。否则,我现在在Bill Gates的办公室里正和他谈下一

代的开发环境呢。可我不是。那我凭什么得意洋洋地吹“我读了多少多少书”。可能你的一席话胜过我读十年书。

我说我精通三种语言。清醒的时候,你知道我在找工作。不在找工作的时候,你知道我在喝酒。

VB?那么简单的语言,谁还想学。我在学C#呢。行,那你用VB写个OFFICE试试。

能把冒泡算法写给我吗?哦,我能清楚地描述算法,但我不会用语言写出来。废话,我在招聘“程序员”,不是在找图灵

奖得主。

所谓程序就是你用代码和用户打交道,你就是第一个用户。如果你都不愿意使用(测试)你的程序,那指望谁会是第二

个傻瓜呢。

测试?那不是“程序员”干的,是QA的事。那你吃完饭干嘛洗碗。哈,我从不洗碗,我老婆洗。那你干嘛找老婆。哈,

所以测试找QA啊!???QA是你老婆?

你的代码真是“两个黄鹂鸣翠柳,一行白鹭上青天”。别以为是在夸你。两个黄鹂鸣翠柳-不知所云,一行白鹭上青天-

不知所往。但我的代码机器能读懂,也运行正常啊。嘿嘿,要是你不小心挂了,我去找谁啊!

客户真是笨,这么简单的操作都不会用。是啊,如果他们都懂了,你还不知道在哪个角落里洗厕所呢。

“我讨厌微软,他们太霸道了,他们的系统也不开放”。喂,Bill Gates在找你呢,听说要给你一个年薪20万美元的职位。

咦?人呢?

你知道AJAX技术吗?这可是最新的。你的JAVA,JSP,JAVASCRIPT,XML精通到什么程度?我都会,但是。。。那AJAX关你屁事。

我是博士,但我编程水平不高。哪个公司要一个博士写程序,钱多得用不掉?你连自己要干什么都不知道,你还不如幼

儿园的小朋友有理想呢。

“下面我们介绍的是某某省政府的CSO,这代表了当地的IT界的最高成就”。倒,IT的地位是以政府职位的高低为基准的。

知道吗,我用的都是OpenSource,源代码我都有。是吗?DOS的源代码几年前就开放了,我也没见过你写个OS出来嘛。

我的电脑里什么样的电子书都有。你都看过吗?先收集起来,以后慢慢看。你能有几个以后呢?

成功的程序员往往倾向于夸大或减弱自己的成功经验。你如果把他们当成是天才,你就上了他们的当。你不能成功,

不是因为你的智力,而是你的毅力。当然,上面所说的大愚弱智之人除外。


要是你周围同事的水平没你高或是差不多的话,那你就准备要跳槽了。不然,你永远得不到提高。矮子里的将军还是个矮子。

女人最好别写程序。不是没有,这个行当里女人真的很少,高级职位的就更少了。你见过几个头戴高帽的法国厨师是女人?

有人说计算机书籍不贵,一本150块的书,如果看懂80%的话,你能获得数倍之回报。真的不贵吗?照此推论,孙子兵

法应该卖1000美金一本,相对论要卖一万元了。

兵马未动,粮草先行。对于软工,就是,代码未动,文档先行。

Bill Gates说如果你能看懂“计算机程序设计艺术”的话,就给他发一封简历。你看懂吗?不懂。那你浪费时间看我的文章

干什么,还不赶紧看书去。(我也不该浪费时间来给写essay,不过总该有人写吧!)

最近在看"Joel On Software",发现他和我的观点惊人的相似。这正是应了英雄所见略同这句话。如有时间,请揣摩此

书,定会使你与众不同。我说这番话,是想表明我并没有抄袭Joel的观点。只是纯属巧合。March 2006

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/17

解读剑雪无名的26个关键字

『 GuoLing's 』 风随焰舞

      即使没有人能掌握自己的命运,但命运仍然给了我们有所选择自己道路的假象,
  而因缘的种子则在命运的狭隙里增生滋长。

  

  北域有着三大刀剑传说。
  追寻未来的人,他有一口剑,一个仇人。人乃一剑封禅,剑名杀诫,仇人名吞佛童子。
  找寻过去的人,他有一口剑,一个恩人。人乃剑雪无名,剑名朱厌,恩人名一莲托生。
  只求现在的人,他有一口刀,一个情人。人乃蝴蝶君,刀名蝴蝶斩,情人名公孙月。
  深刻的意念,造就刀剑三角之争。

  在北方的故事之中,还有一个传说
  来自无间的人,带来一口魔剑,带来杀戮兵祸。吞佛童子朱厌魔火,灭尽神佛。
  出身苦境的人,耗尽一身功力,铸下一口圣剑。一莲托生铸造杀诫,引魔善性。
  圣魔之剑的对立,混沌之初的宿敌。
  接下遗愿的人,身在江湖,只有一个共同的目标。

  

人曰:目为心之神。
  今人道:眼睛是心灵的窗口。
  剑雪的眼睛,正如他的心灵一样,纯净,澄澈,透明如水晶,宝光流转,神采飞扬,蕴藏无限心事,正是会说话的眼睛。(省略花痴形容词若干……)
  在这里要谈的眼睛的颜色,曾经以为剑雪的眼睛是绿色的,但是后来经过仔细观察,却发现并非如此,而是一种非绿非蓝,极纯净极清淡极透明的青色。这种颜色一度找不到适当的形容词,直到后来在看某次宝石展览之时方才找到了答案。是海蓝宝石(aquamarine)的颜色。
  海蓝宝石的英文名称为Aquamarine,源于拉丁语Sea Water"海水"。传说,这种美丽的宝石产于海底,是海水之精华,所以航海家用它祈祷海神保佑航海安全,称其为"福神石"。我国宝石界称海蓝宝石为"蓝晶"。海蓝宝石的颜色为天蓝色至海蓝色或带绿的蓝色的绿柱石。它的颜色主要是由于含微量的二价铁离子(Fe2+),以明洁无暇、浓艳的艳蓝至淡蓝色者为最佳。
  海蓝宝石长期以来被人们奉为"勇敢者之石",并被看成幸福和永保青春的标志。世界上许多国家把海蓝宝石定为"三月诞生石",象征沉着、勇敢和聪明。西方人认为,佩带海蓝宝石能够使人具有先见之明。同时,它还具有催眠和压邪的力量以及神奇的医用价值,用海蓝宝石浸过的水可以治眼疾、迸气和打呃。
  从介绍可以看出,不仅是颜色,海蓝宝石的属性也与剑雪极其的契合。海水之精华,正适合水属性的剑雪。而勇敢和聪明,不正是剑雪的特色么。


black lotus 黑莲

  黑莲,黑色的莲花。

  莲者,出污泥而不染,濯清涟而不妖,亭亭净植,不蔓不枝,香远益清,可远观而不可亵玩也。
  莲花生于污泥,而纤洁不染;正如剑雪出自魔胎,但立心周正,一心向佛。
  莲花濯于清波,而端丽清雅,香远益清;正如剑雪外表平凡(这是编剧说的,对此个人持保留态度……),却是经久耐看,愈多的了解,愈感到他的美丽和魅力。
  
  而黑莲非是自然造物,而是佛与魔相交织的奇葩。
  它是供养魔胎的净莲,它的开放与枯萎,与魔胎息息相关。
  在佛教的传说之中,莲花是圣洁清净的象征,莲花出污泥而不染,至清至净;出于水而不着于水,正如空之境界,故佛教以莲花来比喻"佛性"。佛祖生于莲花之中,神往往坐在莲花宝座之上。佛教认为莲花象征着最终的目标,称极乐世界为"莲邦",以为彼土之众总以莲花所居。
  正如剑雪,虽然出自魔物,却皈依佛门,出污泥而不染。
  
  在古埃及的传说中,莲花每天的花开花落象征着新生命的开始,莲花象征着重生。而中国的神话之中,也有哪吒以莲花重塑身躯,成为莲花化身而重生的故事。在霹雳世界之中,也有着佛剑分说到三十年后未来为素还真取回莲花重生的先例。因此,同为黑莲的剑雪,必然有其重生的机缘。每一次的萎落,也意味着新一轮的重生。


chanson 歌曲、歌谣、小调(法语)

  鹊桥仙 秦观
  纤云弄巧,飞星传恨,银汉迢迢暗渡。
  金风玉露一相逢,就胜却人间无数。
  柔情似水,佳期如梦,忍顾鹊桥归路。
  两情若是长久时,又岂在朝朝暮暮。

  说到歌曲,当然是那首鹊桥仙。
  一曲鹊桥仙,是两邪友情的证明。
  曾几何,梅林边,篝火畔,绿竹笛,翠叶笛,曲调和谐,知音默契。
  又几度,林边火畔孤影单,唯留叶笛长伴身边,音孤调单徒留咏怀凭吊在心田,唯余长叹。
  分别许久后,他救了一个陌生的女人,只为相同的一曲歌韵鹊桥仙。

  再听此曲,似是而非更茫然,只让他更失落。
  曾几何时,知交之情已经变调?曾几何时,不再相遇却成了一种幸福?难道这相遇,本身就是命运的捉弄?
  

dilemma 两难

  佛与魔,你要如何选择?
  杀与救,你要怎样双全?
  好尖锐的质问,好困难的选择。
  一个是毕生唯一的朋友。
  一个是宿命中注定的仇敌。
  偏偏这两个人格却是同一具躯体。
  一个人的情感,如何拆开?

  对这一团乱麻,究竟是舍弃,还是纠缠?
  对问题,是接受,还是逃避?
  无尽的选择,无尽的两难!
  唯余一声长叹。


evil 邪 

  人邪,剑邪。
  北隅两大传说。
  何谓邪?邪恶,邪魔,如何定义?正邪之分,从何界定?
  炼邪师说:双邪是杀人不眨眼的刽子手。
  这就是剧情给大家的第一印象。
  但是,自从双邪陆续出场之后,观众忍不住要问:双邪,邪在何处?
  人邪,手持圣剑,性格狂傲,不受世俗所拘,因此而冠上邪名。
  而剑邪,性格良善,乐天知命,厌恶杀戮,不理世事。却因所持一柄邪剑朱厌而落得剑邪之名。
  人邪说:我是沦落凡间的邪。
  剑邪说:正亦非正,邪亦非邪,不垢不净,是无三界返。
  虽然两人出身为魔,但一个被引出善性,封印魔性;一个受佛渡化,脱变向佛。
  人之邪,剑之邪,魔之邪,何来的这诸多身份?
  活在当下,吾便是吾。


friendship 友谊

  友谊,一个美丽的名词。
  友谊,也是一个深重的名词。
  曾经,一个人给了他剑雪这个名字,一个人在篝火边为他吹奏一曲鹊桥仙,一个人永远耐心在倾听着他的为什么,并且认真地解答。
  与他的相遇,才感受到了活着的意义。那是,今生唯一的朋友。
  曾经以为,这样的日子会永远持续下去,但一切却都在那一晚的圆教村改变。
  相同的面容,却是不同的人。朋友一心追寻的仇人,却正是他自己。而变化的原因,却是由于自己所持的朱厌。
  为了朋友的安危,唯有远走他乡,避而不见,独自忍受着思念和寂寞。
  为了朋友的心情,他代为承担下了仇人的名字,因为事实对朋友而言,实在是太过残酷。

  重逢之时,面对朋友的怒气,亲自承认是他的仇人,也是需要极大的勇气。
  朋友的信任,更加感念于心。
  屡屡苦劝,诸多的暗示询问,希望朋友解开心结,坚持自我,离开江湖避免发现这残酷的真相。
  "我叫你离开江湖你肯不肯?""有何不肯?""那你为何还在?""因为你还在。"
  只因有他在,所以要陪他在江湖。
  为了不让朋友再变化,即使受伤,也坚持不肯出剑。
  无奈事态还是日渐恶化,杀诫逐渐压制不住魔性,仇人还是多次出现。
  面对众人的追杀和压力,代承下了罪名。
  纵使事实明朗之时,仍不愿别人插手。认定自己的朋友就是自己的责任,一肩挑起责无旁贷。
  六丑道:"未来一定有更多的人,针对吞佛童子逼杀,你一个人一肩扛起,责任实在太大,也太过艰难。"
  剑邪答道:"为他,甘之如饴。"
  为了他,杀人敌阵救人;为了他,圣剑开杀不悔;为了他,几经煎熬彷徨;为了他,劲敌决战雨中;为了他,终中仇敌骗局。
  血飞开赦道,迷糊的视线,望向远去的身影的,仍是满怀的遗憾,挂念,不安。

  春蚕到死丝方尽,蜡烛成灰泪始干。


gold&silver 金银

  人邪剑邪破金银。
  这是一莲托生品的一句记载。
  邓王爷的金银双绝掌,威震江湖。各方头面人物,纷纷中掌金封。
  拥有能够破解金银双绝掌的双邪,就此被推上了关注焦点。
  而隐居避世的剑雪,也因此而被迫重染江湖风波。
  关于此处还是有些疑问,为何双邪的武功会相类似,都有破金银的效能?
  难道他们原来是同门么?
  毕竟二人出身都是魔界之人,这种可能性也当存在。
  但,重生之人,剑术何来?总不成是前世的记忆?
  这一切,剧情并未给予交待。
  唯有留下无尽的猜测。
  

hair 发型

  估计每一个初见剑雪的人,第一印象都是:"这人的头发好怪。"
  看到某处评论,称剑雪是"发型奇异的美少年",忍不住微笑。
  这个发型怪在何处呢?
  后面长发用布带系起并不出奇,但前面的刘海多瓣卷曲朝天,绿白黑发丝相间,实在是很象一堆海草。
  也因此,"小海草","会走路的海草头"等等,也成了剑雪的代称。
  看到那发型,就在想,这要用多少摩丝和定型发胶呢。
  其实仔细看,要说是莲花状的头发也可以。
  无论如何,这也是相当有特色的发型了。


innocent  清白、无罪

  剑雪的一生,清白如雪。
  厌恶杀生,除非被逼迫,拒绝出手。
  除了背的魔剑朱厌外,实在是一位五好青年(^^)

  纵然他的一生行为,清白无罪。  
  无奈魔胎的出身,却成原罪。
  只因身怀能解封印之血,就要成为被追杀的目标。
  何其无辜?
 

jealous 妒忌

  这个词估计会有争议吧。
  说的不是剑雪,而是吞佛。
  对于双邪之间深厚的友情和羁绊,吞佛的感想会是如何呢?
  一直被魔将的职责所束缚的吞佛,对于能够自由表达感情的封禅,是否也有一定的羡慕之心?
  凝视着自己的人,看的却是并非自己的另一个人,呼唤的也是另一个名字,是否也难掩恼火与妒忌?
  某魔如何想,我们无从得知。
  因为某魔是关于掩饰心机的人物。
  只有从蛛丝马迹中,推测他的心态了。


kerchiefed 围着头巾的 

  剑雪初出场之时,额头上围着一条头巾。
  绿白相间的细长头巾,遮住了额头。
  这种围法有点类似传统服饰中的"抹额"。
  但剑雪的目的并非是为了美观或装饰。
  而是为了遮挡额头上的火焰记号。
  那个记号,犹如一朵怒放的火之花。
  正是吞佛童子的印记。
  大概也预示着剑雪与吞佛之间不可避免的一战吧。
  这个印记是何时印上的,剧中未能交待清楚。
  一般认为是圆教村换剑之时所印。
  但在回忆的场面之中,有的额头上也有记号。
  姑且当作是剧情或者道具组的BUG吧。


legend 传说

  北域有着三大刀剑传说。
  追寻未来的人,他有一口剑,一个仇人。人乃一剑封禅,剑名杀诫,仇人名吞佛童子。
  找寻过去的人,他有一口剑,一个恩人。人乃剑雪无名,剑名朱厌,恩人名一莲托生。
  只求现在的人,他有一口刀,一个情人。人乃蝴蝶君,刀名蝴蝶斩,情人名公孙月。
  深刻的意念,造就刀剑三角之争。

  在北方的故事之中,还有一个传说
  来自无间的人,带来一口魔剑,带来杀戮兵祸。吞佛童子朱厌魔火,灭尽神佛。
  出身苦境的人,耗尽一身功力,铸下一口圣剑。一莲托生铸造杀诫,引魔善性。
  圣魔之剑的对立,混沌之初的宿敌。
  接下遗愿的人,身在江湖,只有一个共同的目标。


  

moon 月

  有本古典小说,叫做雪月梅。
  还有一个俗语,叫做风花雪月。
  雪,梅,经常与月联系在一起。
  暗香浮动月黄昏,正是月下之梅。
  
  而在剧集中,以月为代表的两位人物,都是帮助过,关怀过剑雪的人。
  其一为丹枫公孙月,其二为月才子谈无欲。
  丹枫公孙月,配合好友六丑的计划,暗中出手,救出被黑暗之间禁锢的一剑封禅。
  而后又受剑雪之托,护送一剑封禅到鸿莲寺休养。

  另一位化身为六丑废人的月才子谈无欲,对剑雪的帮助则更多。
  他为剑雪治疗了伤势,发现了佛魔同体的秘密。
  他指引剑雪到鸿莲寺寻找自己的根源和过去,令剑雪不再为身世迷茫。
  在吞佛身份明朗化后,向剑雪提出可以帮助,虽然剑雪拒绝了,但仍然感激他的好意。
  在一剑封禅被劫走后,是他安抚失了方寸的剑雪,并找到蝴蝶君和公孙月,救出了一剑封禅。
  雨中决战,雪落禅声之后,仍然是他,与徒弟们和破戒僧提及剑雪。

  两轮月,都是剑雪一生的关注者和帮助者。
  明月映雪更皎洁。


name 名字


  老子曰:道可道,非常道,名可名,非常名。

  没有名字的剑者,寻找着自己的过去。
  直到,他遇上了那个人。
  那个人问:一个人一世只有两事由天,最初的生命与最初的名字,那是入世的表征,不得,你将何处生?
  "天不容吧。"剑者淡淡的回答。
  狂放的人说道:"既然世俗的天不容你,那从此刻起,吾便是你的天,你入世的名字由我给你。"
  从此,剑者有了自己的名字。
  只肯让那个人称呼的名字。
  剑雪。


opponent 敌手

  吞佛童子。
  是他的挚友所一直追寻的仇人。
  却也是他宿命中注定的敌手。
  身负打开封印任务的魔将,
  与身份开赦道之血的魔胎。
  终究是避不过的命运冲突。
  只是,为何今生唯一的朋友,
  却正是宿命的敌手?


plum blossom 梅花

  曾经,剑中有位爱梅之邪。
  身居梅坞,长伴梅畔,常望梅颜。
  常饮梅茶,茶名暮雪,夜梅煮成。
  为何如此爱梅?

  因其清,因其骨,因其芳,因其质。
  梅花,中国传统中备受推荐的名花。
  疏影横斜水清浅,暗香浮动月黄昏。言其清远丽姿。
  无意苦争春,一任群芳妒。零落黄泥辗作尘,只有香如故。
  顶风冒寒,雪中怒放。言其孤傲风骨。纵然逆境,不改其芳。
  梅须逊雪三分白,雪却输梅一段香。雪与梅,本就是关联密切。

  傲骨冰痕,最终持洁;碾碎尘土,仍为护生春泥。


quest 追寻,找寻

  人生的意义是什么?
  追寻的目标又是什么?
  曾经,有一个找寻过去的人,他有一个恩人。
  与一个追寻未来的人,他有一个仇人。
  找寻过去的人,想问恩人,自己由来。
  追寻未来的人,誓杀仇人,做他自己。
  找寻过去的人,悟通因果,放弃找寻。
  他说:"活在当下,吾便是吾。"
  找寻未来的人,却不肯放弃追寻。

  终于--
  不可追的过去,不可待的未来。
  过去与未来,尽成一片举目皆非。


reincarnation 转生(佛教用语)

  曾经,他是名叫鸠槃的魔物。
  好学思辩,桀骜不驯。
  又曾经,他也是名叫剑邪的剑者。
  乐天知命,心存迷惘。
  下一次,他又将是谁呢?

  黑莲枯萎,新苞出水。
  每一回凋落,必有每一回新生。
  这就是自然所回应的答案。
  从哪里来,往哪里去?
  过去已不可期。
  下一回,可期待得未来,将在自己的掌上。


snow 雪

  剑雪,暴风中的封雪剑者。
  这是那个人给他的名字。
  也是他给那个人的最初的印象。

  剑,是剑邪名字的延伸。
  雪,才是印象的重点。

  很明显,剑雪的武功明显是冰雪属性。
  从剑招之中也可看出:
  雪翎飞雨、千影雪、封雪名招、雪剑舞乂、雪乂冰丰。
  八项绝招里面,就有五项与雪有关。
  
  除了武功之后,更重要的是人的特性。
  雪,洁白无瑕,正如其人,纯洁无垢。
  雪,品格高洁。古语曰:松品落落,雪格索索。
  他,正是那无瑕高洁的雪。


trick 诡计,欺骗

  破戒的僧人曾经说过:
  "不要让他影响你的判断,你够坚决,才能救得了你跟他。"
  他下了决心,放弃了朱厌,换来了圣剑莲谳。
  决战,不可避免。
  全力一战,剑者无悔。
  但是,对手却是擅长心机的魔。
  变幻的面容,模仿的言语,动摇了决心。
  伴着逆转的剑锋,传入耳边的最后一句话是:
  "我骗你的,傻剑雪!"(飞雪:钉草人,钉草人……)


understanding 悟性

  是悟也可。
  是剑雪出场所说的第三句台词。
  博学好思辨,前世的性格,今生亦未改变。
  更有着极高的悟性,正因如此,魔才能参悟佛理,转化魔胎。

  其诗号,不问顶峰更为何,俯瞰天穹不是高。
  盲目追寻顶峰,又有何意义?其上总有更高的天穹存在。
  正是参悟世理之谈。

  能说出"天下万难,做人为甚"之语
  无怪破戒僧称赞好悟性,不枉费当初一莲托生冒死。
  在前往鸿莲寺寻找过去之时,与两位僧侣辩禅机。
  颖悟善辩的特长发挥无遗,将两位僧侣驳倒,得到了自己想要的答案。

  纵有悟性,但最大的悲哀,却是--
  看不破。


vegetarian 素食者

  剑雪出身佛门,虽未出家,但生性食素。
  与人邪在冰风岭时,人邪打到烤羊肉,剑雪就直言不想吃荤食。
  当时还被人邪嘲笑了一番。

  当在路边店进食之时,也是只点果品,热茶。
  冲泡随时携带梅花茶。

  并不饮酒,在破戒僧邀他饮酒时,请破戒僧喝暮雪茶。

  食素,不杀生,是佛门的信条。
  剑雪虽然出身魔胎,虽然并未出家,但他也是佛门中人。


why 为什么(威申魔)

  终于写到这一个词了,笑。
  为什么?为什么?所以到底是为什么?
  这几乎已经成了剑雪的注册商标了。
  新春篇霹雳学园播出后,剑小雪的"威申魔"更是成了流行用语。
  威申魔要这样,威申魔要那样,威申魔要问威申魔,威申魔呢?

  爱学好问,求知欲强。
  这也是剑雪被称为剑雪宝宝的重要原因之一。
  正如封禅所言:"因为一堆的为什么,是小孩子的专门科,问得大人不知道怎样回答。"

  表面看来,虽是如此。
  但许多的为什么,看来都是有深意。
  询问和引导,希望能够引导封禅放弃对名字的执着,放弃对吞佛的仇恨。
  希腊的哲人苏格拉底,擅长以询问法使得对方最后发现自己观点的错误,赢得辩论的胜利。
  剑雪的为什么,实际上也有此作用,也曾经让封禅陷入思考。
  最后未能发挥作用,只能说封禅的执念太强吧,或者归因于命运安排?


xiph(i),xiphos 剑(构词法词根)

  霹雳剑踪,是关于剑的故事。
  两把剑,朱厌和杀诫。    剑踪的片头语说:
  来自无间的人,带来一口魔剑,带来杀戮兵祸。
  出身苦境的人,耗尽一身功力,铸下一口圣剑。
  圣魔之剑的对立,混沌之初的宿敌。
  接下遗愿的人,身在江湖,只有一个共同的目标。

  可以说,双邪的命运,与双剑息息相关。
  因为是师尊的遗物,所以剑雪携带朱厌,并因此得到剑邪之名。
  身为圣剑杀诫引出人格的一剑封禅,邪气终究难以尽掩,得到人邪之号。
  冥冥中安排,双邪相遇。在圆教村,双剑交换。
  握到朱厌的吞佛童子冲破封印,为这段友情划下了暂时的休止符。
  剑雪携剑离去,避而不见。在重聚后也因为避免拔剑。
  但杀戮过重,圣剑威力减弱,终究还是压不住吞佛童子。
  
  最终决战,杀诫断折。朱厌随吞佛回归魔界。
  双剑之争,划下最后的句点。
  

youngster 年轻人,小孩 

  从剧情中可以看出,剑雪有明显不解世事的一面。
  爱问为什么,被人邪说心智,非常返璞归真。
  这也是被大家爱称为剑雪宝宝的原因。

  但,最令人感动的说法,却是得知真相的那一声称呼。
  "不懂世事的小朋友,今天我要教你的是,男儿有泪不轻弹,只是未到伤心时。伤心,就大声哭出来,这才是男儿的真性情。"
  闻道此言,剑雪澘然泪下。
  
  

zen 禅宗

  禅宗,是佛教的重要派门和代表。
  在此,代指剑雪的师尊一莲托生。
  灵山遇魔,辩论结果,渡化鸠槃神子,转化魔胎。
  为了魔胎,一莲托生舍身修练,成为破戒之僧。
  再遇吞佛,为了克制吞佛的杀戮,耗尽毕生功力,铸造圣剑杀诫。
  诱使吞佛换剑,引出一剑封禅。

  意图封印朱厌,却无奈天命已终。
  逝去同时,魔胎孕化,剑雪出生。
  命运捉弄,持朱厌的剑雪却与持杀诫的封禅相遇。

  赌的那一线变数,终究未能改变注定的结局。

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/13

霹雳人评

『 GuoLing's 』  百世经纶一页书                        

残忍的不是霹雳,而是感情与生命本身,一个太脆弱,一个太仓促。

明天又是周五了,等了一周的霹雳奇象应该有新的进展了,梵天渡航,看样子一页书要重出江湖了。

--题记



百世经纶一页书



创世狂人,以杀伐传道,誓以鲜血传扬自己的传世真理。九大奇人取下自己苦修而成的圣珠,趁创世者杀死灵獒识三世之徒的片刻错愕间,齐力将圣珠按在创始者的身上,创世者的本性,收到圣珠的压制,慢慢转变,遁入灭境修行。其间,圣珠的善性与创世者的本性,仍不时互相排斥,导致创世者的行为,忽善忽恶,阴晴不定,于是创世者,也因此多出一个外号『邪心魔佛』。

由于圣珠的特性,渐渐渗入创世者的内心,融入创世者本身的人格之中,加上创世者自我谮心修练,终于成就灭境一代高僧——梵天。灭境邪灵作乱,儒圣之辈以身御邪,正邪冲击,西丘三君,不耐与之纠缠,离开灭境,选择苦灭两境之间的境域(西丘)退隐修真,惟与昔曰儒圣故友,仍时有来往。怒天山涛君不甘沉潜,因故出走西丘,梵天唯恐怒天祸乱苦境,无人钳制,不久也离开灭境转进苦境,即是众所周知的『百世经纶』一页书。

琉璃仙境愁云笼罩,命七天【菩萨印第十式】的掌气破空飞驰,击中灵心异佛,叶小钗剑气回旋,砍下异佛的首级,素还真哭倒在灵心异佛的身上,命七天劝素还真伤痕初愈,不可过度伤恸,要牢记灵心异佛临终的叮咛:『步步求生!方才不辜负灵心异佛的慈悲。』素还真尚且泪眼婆娑,无法自已。突然间,凌空飘来一朵昊光祥云,云中的高人声气朗朗、气派非凡,自称是灵心异佛的师父,留下『世事如棋、乾坤莫测、笑尽英雄』的诗句,带着徒弟灵心异佛的尸身,驾着云光,骤然消逝在晴空的尽处。笑尽英雄、虏获戏迷的『百世经纶』一页书,就这样气势万千地坠落凡尘,普渡众生。 时空圣战,崎路人不幸被集境的时空隙缝,遗弃在过去。一页书舍己救人,将生命石抛上八口山的游魂台,顺利救回崎路人,自己却因此惨遭八口山的无名火,火焚而亡,一页书的一点灵气,在火焚的瞬间,迅速脱离原身,附身三清观的大师叔——玉竹风之躯,从此化名『天劫』紫锦囊,浪迹江湖。

紫锦囊生性幽默风趣,一改一页书傲气凌人的个性,轻松游走在假半尺剑、魔域与花影人三方的势力之间,紫锦囊无意沾染尘俗,没想到竟然无端招惹风月,『绝情师太』无极限为毕生挚爱玉竹风,不计形象、褒贬、苦苦纠缠紫锦囊,一个弃离世情的绝代高僧,居然身陷粉红漩涡,有点错格、有点意外,但是非常有趣、好玩。这一场意外又意外的遭遇,堪称一页书生命中绝无仅有的特例,想起无极限非得掀开紫锦囊的衣襟,察验他的身份,就不禁为一页书尴尬的表情,莞而一笑。(注:看到这里千万不要做不恰当联想......)

梵天吸纳宇宙天地的尘沙,转换成衍生石,凝结在八口山之外的枯木上,殷殷等待重生的契机。素还真面对灭境邪灵与三途判阴狠毒辣的手段,以及集境花影人的步步进逼,咬紧牙关,独自吞噬世人和同志的误解,忍痛为了一页书,置爱妻风采玲与挚友崎路人的生死于度外,受尽凌迟,遍尽心酸,终于盼到一页书破石而出,再世为人,一招击杀『灯蝶』修万年,再度陪伴素还真,共同撑持起正道的天空。

世局诡谲、变化莫测,素还真被素续缘、表象意魔、金小开、小霸王、金太极等人连环追杀,几乎被武林的刀风血雨所掩埋。素还真仙逝,一页书心碎,乍闻素还真噩耗,一页书难掩心痛,即为挚友疾首,也为世人沉痛,不过一页书明白素还真的布局,毅然决定扛下素还真身后的重担,成为集境武皇、魔域鬼帝、灭境邪灵万魔天指等三大魔头,极欲歼灭的标靶。梵天舍身救人,汲取宇宙神医与众天两人身上的邪灵之毒,加上酆都鬼楼之外,鬼王棺雷霆万钧的三道掌气,一页书体内的毒患曰益沉重,复原艰难,虽有帝王根自我牺牲,为一页书减去部分邪毒,却也只能将一页书毒发的时曰延后,无法完全驱除。梵天浩气凛然,为求暂时压制武皇的野心,不惜以自身安危作为赌注,使用【倒转行气】,将爆发至体外的邪毒,再次吸入体内。不仅如此,一页书甚至抱着残病之躯,闯进巨书岩,冒险运动残余的功力,取出挂曰刀、流萤剑,赠与叶小钗,并且亲手题上『刀狂、剑痴』四个字,愿叶小钗刀行如挂曰,剑走如流萤,忆起《霹雳烽云》的这一场戏,想必多数戏迷,都难免情绪激动,血脉贲张。

巨人仍旧是人,到达人力极限的一页书,说自己好累,他壮志未酬,颓然躺在云渡山静肃无语的大地上,素还真费尽心思,安排天河运棺,自己单独留在道境牵制孤愁先生,又千里迢迢为一页书,送来一颗道境云栈礅的稀世之珍金雕蛋(金雕蛋前后总共只有三颗),躺卧在天河底下的一页书,虽然静静沉睡着,不过他的灵魂,未曾一曰抛弃众生。天河缺口的一道灵光,惊吓了三大魔头短视的心胸,三大魔头掌气合并,联手击碎一页书用以欺敌的空棺,足登神雕飞离天河的梵天,那股摄魂夺魄的气劲,登时粉碎魔域鬼帝的春秋皇帝梦。【千里碎脑神音】扬威二重林,笑尽『苦遍侠客』的集境武皇,一页书的高傲和霸气,绝对称得上“前无古人,后无来者。”

梵天预知未来的劫数,利用隐遁天河的时刻,将元婴与自己的本尊分离。鬼王棺与合修会同流合污,算计圣佛岩的九龙菩提经和『圣童』不知名,一页书明知在劫难逃,为正义公理,以肉身抵挡千子弹,保全不知名。圣佛岩、黄甫桥的火花四溅、血肉模糊,观众的眼泪和着一页书的左臂齐飞,鬼王棺、南宫布仁、地藏大如的小人作风,逼得一页书决命黄甫桥。藏身迷情之墓的素还真,心有感应,黯然饮泣,揪心地呻吟:『一页书……可怜的一页书呀……!』

素还真身犯夜魅花之厄,不知名为父涉险,三教之子行踪成谜,一页书的元婴宇宙神知,及时唤住匆匆赶赴魔域的素还真,交付他一封锦囊,让素还真循着线索,顺利找出东瀛来得衔命龙子——非凡公子,整合三教,成就霹雳王朝。宇宙轮回、无声恸悲,宇宙神知被『泣魂珠』化去神力,七重冥王扬扬得意,西丘三君之首蚁天海殇君,为至友梵天一页书渡红尘,神秘女郎、黑白郎君协力同心,梵天二进天河,再蕴生机。

幽灵箭紊乱世局,『方城之主』末情天意气风发,神秘女郎(素还真)的『破天计划』,杀得非凡公子与魔魁之女母子片甲不留,血道天宫之主怒天山涛君枭心未灭,乘隙绑架不知名(素续缘)当作筹码,要胁素还真。蚁天海殇君见义勇为,一页书气傲天苍,素续缘吉星高照,无尽天涯烽火绵延,幽灵箭气数该尽,山涛君逆天丧亡。无后弯刀配合无敌圣剑,『清香白莲』与『百世经纶』联手出击,果然“气盖山河”。

东瀛忍者趁素还真公审定罪,前往衡天峰黄泉谷服刑,无暇分身护卫之际,挟持昏迷不醒的素续缘,偷袭一页书,一页书受素还真重托,为救素续缘,意外误中东瀛伊贺派的不解之毒(五凤朝元),无忌天子与权门宗矩,情敌相见分外眼红,为公为私,无忌天子顺利说动愁月仙子,义救一页书,一页书的毒患方才幸运痊愈。不意,无忌天子急公好义,竟弄巧成拙,他让一页书捐输毕生功力,襄助乱世狂刀,好会合三传人,共同对付魔魁,一页书身上的圣珠,随着功力的消失逐渐脱落,于是在一夕之间,梵天由千年道行的高僧,骤然回复为原身的创世者。 创世者传扬天地至道的信念,与一页书维护正义的果决,如出一辙,他为截颅跋涉,为正义舍身。云庐剑僧勘破我执、挥剑段首,『巨臣剑』的剑灵离剑归元,创世者挥别尘寰,一页书风云再起,世事如棋、乾坤莫测、笑尽英雄的豪气,尽扫武林阴霾邪晦,也振奋观众久旱逢甘霖的心田。

天下第一人『山水不朽』长乐君(晏定邦),崛起平等坡拂水楼,燃起武林的另外一处烽火。又鉴于蘅佛子的野心昭然若揭,天魔的正邪未定,加以长乐君的意向不明,与风中行者对中原武林的威胁,素还真和一页书心念疾转,几经斟酌推演,两人顺势积蓄出第三次的默契布局,分别以退为进,智斗女神医、血眼沙陀和佛魔合体的天魔与蘅佛子,江湖血路,风起云涌,雷鸣雨嘶,云渡山高卧的圣者一页书,静待天命的呼唤,肃靖邪秽。

一页书和素还真并列霹雳的正道龙头,戏迷的喜爱,然在性格上,恰呈极端的对比,相对于素还真的柔韧婉转,一页书无疑是阳刚率真的典范,两者的差异,从手执佛尘的姿态,就能够清楚看出端倪。素还真的佛尘,表现出圆融平和的感觉,一页书的佛尘,则是有棱有角的非凡气势,素还真会因时因地制宜,不拘定格,所以难免招惹擅变的批评。梵天就很不同,撇开化身不论,一页书无论对朋友、晚辈、甚至仇敌,挥舞佛尘的角度和高度几乎没有改变,不同的仅是情绪的转变与气势,在一页书心中,众生一律平等,或许这种胸怀来自梵天佛家修持的根基,因此,一页书面对任何局势,都能够不忧不惧、勇往直前。

梵天是自许『笑尽英雄』的绝代高人,他的傲骨来自非常的实力。他智慧超群,武学造诣惊人,气质出众,气派非凡,自信而且骄傲,梵天的傲气凌人跟能力一样有名,两者相得益彰,成就『百世经纶』的经典风范。没有人会否认梵天具备『笑尽英雄』的实力,这种自信不同于玉天玑和龙阁梭罗的夜郎自大,而是洞悉客观条件的限制,加以深度自省、比较后的自我尊重和自我期许。在他面前,事实如同一盘诡谲的棋局,就算不能完全掌握,也可以推测出几分,真相虽不中亦不远矣,所以一页书很有主见,不太容易被人左右,但这并不表示梵天自以为是,容不下诤言;相反,一页书有佛家『海纳百川』的气度,对自己不明白的事,保持理性、客观,静待局势的演变。惊世的才华,加上果断的作风,与人溺己溺的慈悲,塑造出『百世经纶』一页书的圣洁光环。 一页书和素还真很不同,素还真抛不下世情的束缚,是一个饱受扭曲的生命,一页书则活得很自我、很自由,洋溢着生命的光辉,没有包袱,没有牵挂,在他的眼里没有阴沉的色调。梵天是一个完全神格的角色,不着世俗凡尘的爱恨情仇,对世人保持佛陀悲悯的胸怀,用几近救赎的心情去看待苍生,他宽容世人的无知,用血肉之躯为苍生排忧解惑,他支持善行,鼓励好人,疾恶如仇,对恶行决不宽待,他的生命中无法容许灰色地带,宁可以身殉道,也不愿示弱,如此正气凛然,令人动容。

一页书阳刚的性格相当彻底,绝无仅有的变格,就是借助玉竹风的躯体,化身『天劫』紫锦囊的时候,展露罕见的俏皮与幽默,并且身陷桃色纠纷,招来『绝情师太』无极限和『织梦师』补天缺的青睐,牵扯难得的三角恋情,应该算是一页书空前绝后的经验,相信紫锦囊的风采和圆融的手段,依然生动鲜活地存留在读者的记忆里。

一直觉得一页书很照顾素还真,用一种长辈疼惜晚辈的心情,虽然戏里没有明白表示出来,不过一页书比素还真资深,应该是可以确定的,虽说素还真常常称呼别人为“前辈”,但舍弃一页书以外,素还真对其他人以“前辈”相称,应该是礼貌上的意义大于实际上的意义。而素还真为什么单单认定一页书是前辈呢?

原因有两个:第一,是一页书的风范与气度,整个霹雳系列,真正称得上绝世高人胸襟的,只有三个人:一页书、海殇君、素还真,他们不会被世俗的偏见所蒙蔽,他们相信邪道中人,亦有可取之处,在他们心中,真正具备容人的雅量,容许世人有犯错误的可能,而且不以高人自居,真正称得上气度非凡。假若蚁天隐逸的气质,是道家出世精神的延伸,而素还真『天下大同』的淑世理想,和『以天下苍生祸福为己任』的胸怀,是儒家忠恕之道的图腾,那么梵天『以暴制暴』的强势作风,就是法家重典治世的实践。

海殇君以世局的旁观者自居,梵天就不是。一页书安居云渡山,『云渡』者,天上也!远身可观世,近身可渡人。梵天虽然不像素还真,几乎事必躬亲,但一页书对世局的演变是关心的,正道遭遇危机,或者素还真力有未逮之时,一页书一定挺身而出,赴汤蹈火在所不辞,而且从不居功,没有半点私心,这正是素还真尊敬一页书的第二个理由:无私!就是这两个因素,让素还真由衷尊称一页书为“前辈”,由于一页书的正直无私,让处事平和的素还真,情愿为他得罪傲笑红尘,因为一页书值得素还真这么做!

素还真最受人非议的,就是说他老是牺牲同志,利用别人替他做事,甚至一页书、海殇君都是他利用的对象,但是一页书却在不归路,挺身为素还真挡下玉天玑和潇湘子的两掌,人前人后为素还真排忧解纷,以行动表示他全力支持素还真的决心。 有人说一页书真傻,以一页书的道行,何以老是心甘情愿被素还真利用?一页书真的傻吗?这样的说法不仅看轻了素还真,也贬低了梵天的智慧。自古英雄豪杰以志趣相契,一切相知相惜莫逆于心,不着痕迹,一页书虽然为白莲入世,然其真正的原因,却不单为素还真一人,乃为苍生也!这是《霹雳烽火录三十集》,一页书亲口对无忌天子所言:『灵心异佛非为素还真舍生,乃舍于天下苍生也!一页书亦是如此。』梵天以普渡众生为职志,一切作为皆出于自愿,而素还真不过是了解一页书的初衷,顺势而行罢了,因为素还真明白一页书的风范、智慧,不同凡人,不会以世俗的眼光来评断自己。否则一页书不会说出:『为武林大局、为素还真,一页书义无反顾!』(《风起云涌第一部十二集》)

普生曾经对素还真说:『佛心永远是疼痛的,因为无法渡尽世人!』当得起这句话的只有一页书,这才是一页书令人叹服的胸襟和气魄,也是素还真一直以梵天为尊的理由,一声“前辈”叫得真心诚意,没有半点勉强。因此,素还真可以不理会傲笑红尘的误解,却不愿一页书对自己存有一丝一毫的误会,两者的身份地位立见分晓。

素还真的手法和梵天的涉尘,不过是顺应天意的机缘罢了,谈不上谁利用谁,谁比谁高明的问题,若真要追究,要考量的,只是何者为主,何者为辅?又何时为明,何时为暗的问题而已?

梵天在琉璃仙境,大方的承受素还真傲视群论的绝招,重伤呕血,方才阻挡素还真的命数,由『飞龙在天』进入『亢龙有悔』;在不归路捍卫素还真,逼退玉天玑与潇湘子,不惜身受重伤;翠环山设局,为素还真解除游魂箭索命之厄;又为素还真取回龙气;梵天从创世者,回复到本尊一页书的第一件事,就是为素还真接下四飞天当中圣定的一掌,替素还真化去灾厄;凡此种种,都是一页书舍命为素还真护航的动人事迹。甚至当蘅佛子,欲效玉天玑故伎重施,专程前往云渡山,蓄意挑拨白莲与梵天的情谊时,一页书还曾严厉反驳蘅佛子对素还真的指控,公然为素还真的处境申辩、释疑,谣言止于智者,一页书的行为正是智者面对议论纷纭,最适当的防卫。

相对于一页书对自己全心全意的支持,素还真用来回报一页书的也同样深刻。素还真自出道以来,总共跪过三次:欧阳上智、不知名与三圣佛,一次下跪未遂。屈膝欧阳上智,是素还真策略上的运用;跪圣童不知名,是因为素还真认为圣童是真正了解他的人(当时两个人都还不知道彼此的关系);其他两次,都是一页书被慈海渡者(殁神金僵)陷害得冤屈,素还真四处奔波,为一页书屈膝求情,气息奄奄之余,尚且爬行上圣佛岩,终于为一页书求得三圣佛慈缓十五天。

说一页书是素还真的精神支柱并不为过,虽然素还真有很多同志,但是能够与他共商大计、实力相当,只有一页书,就算要演双簧,也得找个实力相当的对手,才不会令人生疑,否则堂堂『智慧之星』玉天玑,与魔域的血灵魔尊,岂会如此轻易就上钩。

做一个先知是很孤单寂寞的,因为别人无法了解你的想法,幸好有个一页书,只要有一页书的存在,就算没有亲自动手协助,素还真的心理压力,就可以减轻很多,至少他明白自己并不是孤军奋斗,那是一种无人可以取代的地位,这就是一页书对素还真真正的意义。所以素还真对创世者的一再援助,并不是为了利用一页书,而是为一个值得自己尊敬的长辈和朋友,相信一页书的心里非常清楚,否则不会有一页书云渡山上,勉励素还真做一个『砥世玉流』的期许(《霹雳幽灵箭第二部二十集》)。

素还真以由衷的敬意与造福苍生的诚意,来回报一页书的义无反顾,因为素还真知道,那是自己与生俱来的天命,也是梵天渡红尘的宿愿。素还真很了解一页书,明白他的个性,除非遭遇到无法独立排除的困难,否则素还真尽量不让一页书烦心,但若真遭逢令素还真为难的困境,能够商议讨论的,也只有一页书。素还真的用心,梵天当然知道,对素还真这样一个肯付出,又优秀的后辈,一页书除了欣赏,不免也有几分的疼惜,于是这两位旷世奇葩,就这样默契于心,一切尽在不言中,任何企图挑拨、分化两个人的言论,无非已经污蔑了两 大高手的人格。 一页书和素还真值得尊敬,不是他们的智慧武功,而是他们对自我坚持理念的剑及履及,素还真执着理想,无视人身的毁誉成败,不计实质的牺牲奉献,一页书追求正义公理,生死以之,至死不悔。素还真为迎接心中理想国度的到来,即便合纵、连横也绝不迟疑,而梵天主张邪不胜正,力行『大仁不仁、大爱无爱、以杀止杀』。

一页书深受戏迷的拥戴,缘于他用生命去实践理想的大直大义,只要义之所在,虽已身殉亦往矣!一页书恰似穿透阴霾的灿烂阳光,逼退天地间的晦郁和幽暗。所以,一页书每次短暂的陨落,都好似落曰般地璀璨,绚烂得令人难以逼视,自然每一次的夕阳西沉,也总让人更加期待着明朝的旭曰东升,一页书的魅力正是在此。

梵天不是狭隘之人,素还真亦非狂妄之徒,一页书和素还真犹如霹雳的天和地、阴与阳,交织出一片波澜壮阔的霹雳世界,海天一色,难分轩轾。

 

生平简介:

一页书

与素还真并列为霹雳的两大支柱,亦名『梵天』。高深的禅修大般若与武学修为,法相庄严、胸怀无私、正气凛然,出道以来屡次帮助素还真或携手共同弥平武林狼烟、扭转乾坤化解危机。身为佛门高僧,行事作风果决明快、妒恶如仇,铲*除恶绝不手软,故有『邪心魔佛』之称!为正道的精神指标及领导者之一,如一页天书渡化迷航众生,与众不同的百世经纶,半阖眼眸看尽世俗庸人,微扬嘴角笑尽天下英雄。
其它称号
百世经纶、邪心魔佛
化身
紫锦囊、宇宙神知、罪恶之身、步怀真
根据地
云渡山、连天峰回元洞
诗号
世事如棋,乾坤莫测,笑尽英雄。
武学
破甲尖锋七旋指、一阳来复、飞鹤冲天、一泻千里、拨云见月、探喉腿、一气动山河、千里碎脑神音(天龙吼)、锁气抛生、千江万流、天路引归之不凡圣功、金刚缩骨法、倒踏莲花、双瞳翦水、金星挂角、童子拜佛、傍手沈腰、铁头顶、天浪贯右、地云行左、千江万流、天地无极(为练佛言枷锁自毁此根基)、佛言枷锁、笑尽英雄、大梵圣掌、吸尘保元、佛体离异、幻形引路、罗妖罩、佛天佛地佛海无边、浩瀚慈光、神气逼人、锻魔真火、锁元手、倒转行气、菩萨印、古微生莲、大乘一帆引、莲华圣路开天光


 

<>
『 ?рēn-Ρlāм ? 』
『 GuoLing‘s 』
 
『 编辑日志 』
2006/4/11

编程之禅[ZZ]

『 GuoLing's 』  编程之禅                        

毫无疑问,古老的编程艺术在西文人的脑海里通常会被误解,现代的观点则认为这是一
种工程学、机械论和唯物论。

许多人认为,编程仅是为了达到一个目的而使用的一种手段,而且,一个程序(及 程
序员)只能依据其赚钱的能力来评价。

这些原始的错觉,来自于对编程的真正意图的一种很深的误解。

高超的程序员并非致力于表面的成功,而是在人机之间寻找一种神秘的存在。

根据禅的解释,在硬件、软件、固件、界面和理解之间没有分界--相反,所有这些都
结合进了一个和谐的整体。

只有当程序员最终学会了将那种“自我自我的存在”的虚假感觉抛在一边,此种境界才
可能达到,而那种“自我的存在”的感觉往往伴随在我们大多数人的生活之中。

这是计算机所带来的--禅师程序员的行为方式。

有人说,掌握了禅机的程序员也就掌握了生命。这样的程序员是以一种永不疲倦的童稚
的欢乐来看待这个世界的。

觉悟了的程序员,走在大街上也能感觉到两旁房子和大楼里面的电脑。

觉悟了的程序员,能够感觉和听到调制过的数据穿过电脑线时那种电流脉冲的持续不断
的嗡嗡声。

觉悟了的程序员已经与宇宙合为一体。

我以前的学生Geoffrey能够完成这样一个工作,将失落的编程之禅的经典著作再现于
世,作为一名教师,我感到由衷的满足。

真心希望,这本书能够重新确立禅在完善的程序员教育中的重要地位。

C.P.Yu博士莲花大学超越机器学院

西藏拉萨

引言

当James先生要求我给他的这本书写一篇引言的时侯,除了讲述一下关于我自己在程序
维护这个神秘的领域中的个人经历,我实在想不到更好的办法了。程序的维护是程序设
计艺术中很少被人理解的领域。

有的读者肯定会坚持说,在禅的深奥教义和程序维护的卑微技艺之间,并没有什么共同
点。但正如一位大师所言:“方法和途径(也就是道)存在于所有的程序之中,甚至在
电子游戏里。”因此,长期被的程序维护艺术必定有其禅的方面,这点是确凿无疑的,
虽然那对于未经训练的头脑来说或许不会立刻显现出来。

我的故事开始于我从大学计算机科学专业毕业后的几个星期。我大学毕业后的目标是为
一家研究和开发机构工作,最好是编译程序或操作系统设计的部门。我最后终于找到一
家愿意盲雇佣我的机构,但条件是我必须在一段时间内,通过完成程序维护的工作来
“学会这套系统”。

我当然会对这个建议产生抵触心理。我花了五年的大学时间,竟然是为了浪费时间来解
决其他一些程序员的错误!然而,因为他们曾经答应日后让我干感兴趣的工作,于是我
便接受了,并在心中提醒自己,即使这份工作干不出名堂,我还能找到其他的工作。

当我第二个礼拜去报到的时侯,我被领着去与那个程序维护组的师父见面。人事部总管
带着我快步地穿过开发中心黑暗的走廊,最后她指着长长的大厅通道尽头处的一扇门说
:“他在那里面。”说完志身走了,好像有些心神不定。

我向门口走去,眼睛朝里面窥探,我看见一个男人正坐在终端前工作,但他背对着我,
所以我不知道他有多大年纪,长得什么样。我只有靠咳嗽一声来表明我的存在,这里,
那位大师甚至没有回头瞅一眼便说:“请坐”。

越过他的肩膀,我瞟见了那些难以理解的屏幕显示,随着他纤长的手指在键盘上飞舞,
它们一闪一闪地出现在他的终端上。最后,他满意地咕哝了一声,退出系统, 然后转
过身来面对着我。

我所看见的让我吃了一惊,因为他看上去不像那种应该是禅师的人,他的脸乏味,几乎
是丑陋的,他的头发如同一圈烦恼的光环。但人们首先注意的是他的眼睛,透过厚厚的
眼镜片射出淡淡的蓝光。

他从头到脚地打量了我一番,然后点点头,就好像确认一个个人观点,“你就是那个新
来的?”他酸酸地问。

“是的。”我回答。我假装充满激情,把我的经历和在大学的成绩向他作了快速的汇
报。

这位礼貌的听着,然后说:“那很好,但你以前做过程序的维护工作吗?”

我坦白地告诉他我没有做过。

师父长长地叹了口气,“那好,我们应该做我们做做的事。”他说。然后他从一个架子
上取下一本庞大的程序清单,随意地翻开它,并递给我。接着他问:“你怎样对付这个
?”

我眼睛盯着这本清单,那上面是汇编语言,还搀和着一些奇怪的宏语言。每隔十几行语
句,控制权便转移到某个神秘的子程序,而且,即使这个程序具有任何结构性,我也看
不出来。“这是什么程序、”我问。

师父把那本清单从我的膝盖上拿了过去,“这是《世代大师编码藏经》,”他说,“当
你学会了从迷魂阵中把错误的代码抓出来时,那就是你出师的时侯了。”然后 ,他合
上清单,把它放回到书架上。

我不久便意识到,程序的维护远比我想象的要难得多。我起初试图学会那本《编码藏
经》中所用的汇编语言,但令我烦恼的是,我发现那套汇编语言从未按规矩提供过说明
文档,现存的仅有一些笔记,是一位多年前就死去或离开公司的硬件开发者写的。

这本《编码藏经》不能给我什么帮助了。虽然其中偶尔有一些注释,但这些注释和这种
汇编语言一样模糊,除了一些涉及到有关原始硬件构造的使人干着急的资料以外,别无
它物。

当我向那位师父抱怨这一切的时侯,他礼貌地听着,并在我们两人沉默了许久之后,回
答我说:

“你正在试图理解某种不可能被你的理性思维所理解的东西,”他说,“这样所导致的
结果必然是失败。你必须先清空你的大脑,只有那时,你才能开始领悟《编码藏
经》。”

接着,师父开始慢慢地向我阐释那本《编码藏经》里复杂的逻辑。当我聆听他那温和的
声音时,我终于开始觉察到一点光芒的闪烁,这是隐藏在《编码藏经》中辉煌的和永恒
的灵光。“那些大师对‘良好的程序设计惯例与规则’一无所知,”师父说,他们努力
去理解普遍意义上的计算机思维的内部活动,他们还需要什么说明文档呢?那些程序是
极限的表达。

然而,即使我慢慢开始有所领会,我还是感觉到自己像一只在琥珀在挣扎的小飞虫。师
父所讲的与我曾学过的东西截然不同,我的理性思维很难接受。但师父总是耐心地一遍
遍解释说,我必须不靠理性思维去推理,而要用潜意识来领悟《编码藏经》的内涵。

经过数月的指点后,我感到很自信了,便想试试我的第一块修补程序。为了给师父一个
惊喜,我偷偷地工作。我写了一段能重新运行几行语句的补丁,把程序重新进行汇编,
并把新程序释放到生产系统中去。

第二天早上,我来晚了一会儿。让我感到奇怪的是,开发中心的主任和从事部总管 正
在师父的办公室里。当我走进大厅后,从事部总管看见了我就把门关上了。我听见了很
大的说话声,但听不清说什么。

等到那两位来访者离开后,我走进师父的办公室,“什么事?”我问。

“你的修补程序,昨天晚上六点整进入了生产系统。它现在已经被删除了。”

“那么?”

“你仍然可以继续工作。”师父说。

最后,我终于明白,所有用我的理性思维去理解《编码藏经》的努力都是徒劳的,这使
我很绝望。师父觉察到了我思想上的这个变化,他开始向我传授开机。他教给我冥想和
查错的技巧,他说这些技巧是从计算机时代之初,由技术支持部一代一代地传下来的。

我听着听着,开始意识到一个关于我以前的编程体验的特大事实。在大学里,我一起认
为程序员的工作主要是控制硬件和软件的活动,编程的最高艺术境界是,为了完成一项
任务或达到一个目标而成功地运用高超的编程技巧。但程序维护是不同于程序开发的。
要想维护一个程序,就要把程序看作是一棵渐渐成长的植物,拔苗助长是毫无益处的。
事实上,这样的行为更容易导致植物的死亡。一个程序必须被小心地滋养。程序员在对
程序进行改动之前,必须对每一个逻辑关系非常熟悉,必须对程序的意图有很深刻的理
解力。这种理解力不是在一夜之间就可以得来的,需要 长时间的积累。

好几个月以后,我终于能够给《编码藏经》成功地设计修补程序了,但设计之前要经过
长时间的冥想,还要把那本程序清单打开着支在我的桌子上。我还发现,如果我工作的
时侯点燃一支香,口中不停在重复师父教给我的口诀:“Null-So-Stix-Etx-Eot”
(ASCII码表中头五个字节NUL、SOH、STX、ETX、EOT的发音--译注),我更容易集中
注意力。师父说,那个口诀意味着宇宙的“五原”。

不久我发现我不再关心是否能为工作成绩而得到奖励了,在我自身和我所维护的程 序
之间也看不见任何分离了。我像一个一生都活在阴影里的人一样,开始理解编程之禅,
这是一种隐于程序员设计背后的难以言喻和难以形容的力量,就像投射影子的太阳一
样。

从那毫无意义的“自我的存在”中摆脱出来后,我开始发觉,那些伟大的编程语句过去
对我来说似乎模糊不清,只是因为我还没有彻悟,无法理解它们。我现在知道了为什么
过去的那些程序员从不为他们的程序提供文档,因为英语语言的描述本身更让人迷惑,
而非使人受到启发。

一天,我发现自己正在解决的一个问题涉及到《编码藏经》中最复杂的部分--错误分
析全程。我在对此一无所知的情况下,给出了一个修补程序,它能通过对硬件 中断区
的内容进行检查来测定错误的情况,使程序能继续正确执行。

那天下午,师父第一次走进了我的工作间,他把手放在我的肩膀上,眼睛朝下看着我,
“现在该是你出师的时侯了。”他说。

这些就是我第一次接触禅式程序设计的经历。虽然从那以后我被指派参加过很多项目设
计,但我从未忘记过我的第一位师父给我的教诲。

想象一下我的惊奇--当我在《编程之禅》中发现了如此之多的我师父非常喜爱的语言
时。我终于看到了那些隐于他那难忘的演说背后的古代传统。

James先生将那本经典的影响深远的著作重新发掘出来,我们大家都欠他一份人情。要
不是他的持之以恒,它可能会永远失传。在本书中,James先生收集了一大堆定期,如
异端的说教、民间故事和诗歌等,它们组成了具有传奇色彩的“集成教”的教义。正是
通过James先生这样的学者的努力,才使得深藏禅机的程序设计的光芒永世不灭地照耀
着后代的人们。

Charlie(Chuck)Babbage

第一篇 木

大师:忍者

媒体:编年史

硬件:键盘

方向:东

软件:编辑程序

感觉:触觉

阶段:界面

动物:龙

系统:VMS

作为MRVMS/IIIX禅学院的复兴者,编程大师忍者(这是后人给他起的绰号,他的真实姓
名无法核实--译注 )非常有名。有一些传说,说他从一名不起眼的程序员一跃成为某
家实力雄厚的程序设计机构的开发部主管。他在完成了一套先进的操作系统后,便悄然
消失了。据他说,这套系统既不需要硬件也不需要软件,同样能准确地发挥功能。他现
在的去处无人知晓,但听说,他时常以一位管理顾问的装束出现。

忍者最初来到那家开发中心工作的时侯,他被分配去支持操作系统。一天,一位经 理
走进了忍者的工作间。

"你为什么不工作?"经理问。

"系统瘫痪了。"忍者说。

"经理皱起了眉头。"我们付给你薪水,是要你保持系统的正常运行!"他大声说。

"系统没有瘫痪。"忍者说。

忍者大师如是说:

"如果你的应用程序不能正确地运行,不要去责怪操作系统。"

忍者大师参加一次电脑展示会。

许多公司都押运出了明亮的显示器和他们所能搜罗到的所有最新、最大的硬件,以及身
着泳装的金发模特儿。

忍者甚至一眼也未瞥那些展摊。相反,他只是打开一张折叠椅,静静地坐在角落里。不
时地有人从他身边经过,并问他一两个问题。他思考片刻,然后用简短的话作出回答。

人们盘着腿围坐在这位大师身旁--那些收集来的宣传册散落在一边--静静地等着他
开口说话。

忍者大师如是说:

“对于聪明的人,只要一个字;对于快马,只要轻轻一鞭;对于写得好的程序,只要单
独的一个命令。”

忍者大师参加一次董事会。当他开始解释有关那套软件的技术特性时,那些公司行政官
们,有的在座位上烦躁不安,有的盯着窗外,有的望着咖啡杯发呆。

于是,这位大师开始谈那套软件将会赚多少钱了,这时那些行政官们便纷纷竖起了 耳
朵,并开始在房间里欢蹦着,显然,他们被这悦耳的声音吸引住了。

一位公司行政官来看忍者,他发现这位大师正在玩电脑游戏。“这是什么意思?”行政
官询问道。

“我正在测试系统。”大师说。

行政官凑近屏幕定眼一看,果然如此。

一天,董事会成员集中在一起讨论业务善,他们召来忍者大师,让他作个报告。“你的
季度预测是怎样的?”他们问。

“没有季度预测。”忍者回答道。

“那么你今年的预算计划呢?”他们问。

“没有今年的预算计划。”忍者回答说。

然后他们问:“你能确认你是忍者大师吗?”

“没有忍者大师。”忍者大师回答着。

董事们被搞得糊涂了,只好暂停会议各自回家去了。

忍者大师如是说:

“设计一个千百万程序的操作系统很容易,要改变一个人的本性却困难得多。”

三名来自不同的电脑公司的行政官前去向忍者学习领导艺术的真谛。

忍者问第一位行政官,“你有你们公司现在的机构设置图吗?”

第一位行政官从口袋中掏出了一张纸,“我一直带着一张在身边。”他说着便把那张纸
递给了忍者。

忍者饶有兴趣地看着那张纸,“这看上去似乎已经在计算机上建立了模板。”他评 论
说。

“的确如此,”这位行政官骄傲地说,“我们已经把我们的机构设置图都计算机化了,
以便一接到通知就能立刻选择调用。”

忍者笑着,把那张纸递了回去,“我帮不了你什么。”他说。

第二位行政官接着问忍者领导艺术的真谛。

“你有你们公司现在的机构设置图吗?”忍者问。

第二位行政官摇摇着,“我们的机构设置在这几年都未变过,我几年前就记住了。”

忍者皱起了眉头,“我帮不了你什么。”了说。

第三位行政官还是问忍者领导艺术的真谛。

“你有你们公司现在的机构设置图吗?”忍者问。

第三位行政官耸了耸肩,“我们没有机构设置图,”他说,“每个人喜欢做什么就做什
么,喜欢什么时侯做就什么时侯做。”

忍者紧皱眉头,“我帮不了你什么。”他说。

三位行政官凑到一边耳语了一阵,转过身来对忍者说:“那么好吧,让我们看看你的机
构设置图。”

忍者领着他们来到一片开阔地上,那里孤零零地长着一棵树。“这就是我的机构设置
图。”忍者边说边把手搭在那表皮粗糙地树干上。

第二篇 火

大师:行者

媒体:民间故事

硬件:显示器

方向:南

软件:格式化程序

感觉:视觉

阶段:设计

动物:凤凰

系统:CP-6

编程大师行者收集了各种各样有关开发刺目的民间故事。最近的计算机考古研究显示,
下面的这些民间故事是以历史事实为基础的。虽然一部分夸张的成分可能会无意中被添
加进去,但其历史真相的核心内容依然存在。

当一位项目经理为他的软件项目配备人员时,他会在一天内雇佣三百名程序员。一位获
得计算机科学博士学位的学者前来求职,他被给予了一个薪水很高的职位。

一天,那位项目经理被解职了。“我认为,每个人都应清楚自己的职责和履行自己的职
责。”新来的项目经理在检阅他的程序员队伍时如此说道。听到这话,那位学者悄悄地
溜走了。

两位程序员正在急诊有关用户界面的问题。 “在‘使用起来简单轻松’方面,许多意义重大的革新正在进行当中,”第一位程序员
说,“不久以后,人们在使用电脑之前将不再需要阅读那些冗长乏味的用户手册了。程
序都将是不言自明的。”

第二位程序员想了一会儿,然后说:“上个星期我准备劈些木柴烧火,但我的斧子又旧
又钝。于是,我去五金店买了把新的。”

“这挺有趣儿,”第一位程序员说,“但这和用户界面有什么关系呢?”

“这把新斧子附带有一本长达八页的使用说明书。”他回答说。

一次有一位第三者问一名工程师、一名数学家、一名物理和一名程序员:“一只盒子有
几个面?”

工程师首先回答。“一只盒子有四个面。”他说。

“此话怎讲?”智者问。

“四个垂直的面就是我所说的面,它们被一顶一底连接在一起。”工程师回答。

“太荒唐了,”数学家评论道,“一只盒子有六个面。”

“此话怎讲?”智者问。

“盒子是一个立方体,因此有六个面。”,数学家回答。

“不对,”物理学家说,“一只盒子有十二个面。”

“此话怎讲?”智者问。

“严格说来,有六个外部的面和六个内部的面。”物理学家回答。

智者看着一声未吭的程序员。“你的意见呢?”智者问。

“一只盒子只有两个面。”程序员说。 听了这话,工程师、数学家和物理学家大笑起来。

“此话怎讲--一只盒子只有两个面?”笑声停住后智者问道。

“这是基于个人经验,”程序员说,“那‘里面’是安置电路板的地方,而‘外面’是
放显示器的地方。”

“正是如此。”智者说。

一位新上任的董事正在召开与程序员们的见面会。

在宴会进行当中,一位程序员背诵起了如下的演说--“我们一直都在期盼着你的到
来,您的前任根本没有您这种高贵的能力。现在你来了,我们会变得真正具有生产
力。”

这位新董事被奉承的喜形于色,“这演说词是你自己写的吗?”他问。 “这是我们开发中心的惯例,”那位程序员说,“无论哪位新董事到任的时侯,我们都
要发表那段演说,这是我所知道的唯一的一段演说词。”

一天,开发中心的一位程序员发现了一套可以生成迷宫图案的算法系统。他非常勤奋地
对这套算法进行了修改,这样可以让它在长长的打印纸带上生成一个不间断的迷宫。

不久,他制做了一个有几百万条分贫的迷宫,四十英尺长,七英尺宽。他把打印纸带挂
在了程序员办公室门口长长的过道上,不一会儿,所有编程人员都挤在了那个迷宫前,
试图解决这个庞大的难题。

开发中心的主任恰巧从旁边经过,他惊愕地盯着这场景,面色阴沉。但当他走进编程大
师的办公室想寻求帮助时,大师早已不在那儿了。

五名初学者哭着走进了大师的办公室,“呜,呜!听说我们的项目可能要被取消了。”

大师说:“所有事情照常继续,直到它们停止。”

听了这话,那些初学者便返回各自的工作中去了。

一天,开发中心接到消息,一位新主任将被任命来负责这里,他是位军机大臣,对电脑
知之甚少。

程序员们听到这条消息都非常吃惊,纷纷停止了编程,把许多时间都浪费在揣摩那即将
到来的不幸的日子。

看到这些,一位大师决定必须得做点什么。于是,他借来了一套装扮大猩猩的服装。 不久,那位大臣就职了,他把所有的经理召集到一间小会议室,随行而来的是几位总部
的公司行政官,据说,他们是来使开发中心“平稳过渡”的。

突然,那位大师穿着装扮大猩猩的服装破门而入。他蹦上会议桌,把文件踢得到处都
是,并对着那些行政官咆哮嗥叫,行政官们坐在那里只剩下目瞪口呆了。然后,他唰地
一下离开了会议室,正如他来时一样。

听到这件事,程序员们便都回到各自的工作岗位上去了。

<作者按>

作者曾经和几个人谈过,他们都亲眼目睹过此传说中描绘的事件。作者也曾听说,一年
之后,类似的挑衅行为在IBM的某部门中发生了。这第二起事件与第一起的不同之处在
于,程序员穿了一套运动服,站在门口大声地咳嗽。

一组程序员正在向董事长汇报。“今年最大的成果是什么?”董事长问。

那些程序员在一起商量了一会儿,然后回答说:“我们今年解决的bug(程序错误--
译注)比去年多百分之五十。”

董事长疑惑地看着他们,很显然,他不知道BUG是什么意思。他小声地与身边的大臣嘀
咕一阵后,转过身来对着程序员,气得满脸通红。“如此差劲的质量控制,你们应该问
心有愧。明年不允许有‘BUG’!他命令道。

可以肯定,第二年那些程序员向董事长汇报的时侯,有关BUG只字未提。

一位公司行政官来参观开发中心,他在长长地走廊里走着,就像一位检阅部队的将军一
样。他不时地偏上来和他遇到的人谈谈话。最后,他走进了一位程序员的办公室,这位
程序员正在聚精会神地为操作系统查错。

行政官环顾了一下办公室,注意到有尊猪的雕像摆在程序员的终端上。”我常常被程序
员收集的那些古玩和纪念品所深深吸引,”行政官说,“在它们背后似乎有一些非常有
趣的故事。比如说吧,那里的那个雕像是什么意思?”他指着那尊雕像。

程序员从终端前抬起头来,眨眨眼睛,然后盯着那尊雕像,就好像是头一回看到它似
的。“这是头猪呀!”他说。

第三篇 土

大师:隐者

媒体:说教

硬件:CPU

方向:中

软件:调试程序

感觉:嗅觉

阶段:编码

动物:牛

系统:OS/VS

以下语录的作者,编程大师隐者,在人们心目中的形象一直很模糊。他被COBOL语言标
准委员会的特务所暗杀,除此之外,人们对他知之甚少。

我听说过:

开始时似乎比较容易的事情,结尾时往往是最困难的。这就是为什么程序员说--“开
发前面的百分之九需要一半时间,而另一半时间则用来完成最后的百分之十。” 二

我听说过:

在人机界面中犯的最大错误是忽视计算机的权利。被迫与旧概念兼容的系统总是受到历
史的限制。计算机不应该模拟现实--它们应该超越现实。

我听说过:

一家计算机公司设计了一套强大的系统,这套系统超前于它所在的时代。因为担心这套
新设计可能会被复制,他们对硬件的结构设计保密,并为操作系统申请了专利。

十年以后,一位初学者向编程大师问起那个放在数据中心后面的又脏又旧的木箱子。

我听说过:

不要让政治原因影响技术方面的决定;也不要根据科技论文来做出政治决定。只有在无
知者的头脑中,这些东西才会混到一直。

我听说过:

项目计划和公布的时间表,本身毫无意义。那些日期和项目进展的里程碑本质上不意味
着什么。然而有一个秘密的时间表,它被所有工作于一个项目的人所理解。这个秘密的
时间表从未被外界的关注所愚弄,也从未被操纵以迎合市场的方案。这个秘密的时间表
总是被遵守,因为它反映了所有开发部成员之间的相互理解。当项目反映了这个现实
时,程序会如期完成;当项目计划与此现实相矛盾时,程序会被延误。

我听说过:

有三种情况肯定会导致程序设计项目的失败。第一种情况是,主管此项目的经理对软件
一无所知;第二种情况是,对程序代码负责的项目带头人对编写代码毫无兴趣 ;第三
种情况是,编写代码的程序员是临时雇佣的,对项目缺乏忠诚。这三种情况中的任何一
种都会导致项目的失败;三种情况同时出现,就必死无疑了。

我听说过:

许多公司行政官乐于看到把他们摆在高高在上,而让他们的下属居于其下的机构设置
图。这些行政官无异于那些玩“山上的国王”游戏的孩子们。机构设置图有时侯叫做树
状结构,但使用那些结构图的行政官们似乎总是忘记,树叶在底下的树是已经被连根拔
起的树,活不了多久。优秀的行政官总是把自己看作是组织的询问,承受作为领导的重
担,因为这才是他发挥作用的最佳途径。

这就是关于编程大师忍者的著名寓言--他没法传授领导艺术的真谛,因为那三位想当
他学生的人太相信他们自己的力量了。当一个组织被出色地领导时,雇员甚至不知道他
们正在被领导。当项目完成时,他们会对自己说:“看看我们通过我们自己的努力所取
得的成绩吧!”

我听说过:

一个程序的价值不能由它的宣传册的大小,或出现在大众计算机杂志上的整页广告的数
量来判断。这些噪音越响,程序越不可能有用;真正优秀的程序不需要广告,用户会口
口相伟。

我听说过:

有一种循环,这是一种宇宙的节奏。今天一个程序流行,明天是另一个;今天修正 了
五百个程序中的错误,明天又将出现五百个新的。要理解生命,就要知道这种节奏的存
在。要理解禅,就要活在这种节奏之外,从日常生活的牵挂之中超脱出来。只有这样,
头脑才会自由。

第四篇 金

大师:大力神

媒体:公案

硬件:打印机

方向:西

软件:解释程序

感觉:听觉

阶段:排错

动物:兔

系统:MS-DOS

编程大师大力神试图在讲解中使用公案--禅的一种独特的教学手段。通常说来,每个
公案的含意都很难辨析,并且常常有好肉食的和外在的意思。

一个在大学里学习了很长时间的初学者来拜访编程大师。

初学者说:“我已经记住了《计算机编程艺术》的十二卷书中所汇集的算法,我能用
LISP、PROLOG、ALGOL、MODULA2和ADA语言编程。

大师礼貌的点点头。”我很少遇见像你这样博学的人,”他说,“我想听听你关于 我
写过的一个程序的意见。”

“我很高兴助您一臂之力。”说着,初学者骄傲地挺起了胸脯。

大师走到他的电脑前插入一张软盘。“首先我得拷贝一下。”他解释说。 他们坐在那儿,听着旋转的驱动器沙沙作响同。突然电脑上显示出一条信息,“磁盘上
没有空间--Abort,Retry or Ignore?”

大师敲了个“R”进行重试,他们又一次听着驱动器的声音,接着那提示又一次出现在
屏幕上。大师仅仅再次摁了个“R”,重复着同样的事情。

最后初学者再也按捺不住了。“磁盘上没有空间了,”他生气地说,“他太满了!”

大师说道:“是你的脑袋太满了。”

初学者一下子恍然大悟。

大师如是说:“任何一个程序,无论它多么小,总存在着错误。”

初学者不相信大师的话,“如果一个程序小得只执行一个简单的功能,那么会怎样?”
他问。

“这样一个程序将没有意义,”大师说,“但假设这样一个程序存在的话,操作系统最
后将失效。产生一个错误。”

但初学者不满足。“如果操作系统不失效,那么会怎样?”他问。

“没有不失效的操作系统,”大师说,“但假设这样一个操作系统存在的话,硬件最后
将失效,产生一个错误。”

初学者仍不满足。“如果硬件不失效,那么会怎样?”他问。

大师长叹一声。“没有不失效的硬件,”他说,“但假设这样的硬件存在的话,用户就
会想让这个程序做一件不同的事,这件事也是一个错误!”

没有错误的程序是一则谬论,世间难寻。假设存在着一个没有任何错误的程序,那么这
个世界将会不复存在。

象牙塔里的魔术师前来拜访编程大师,像往常一样,带来了他最新的发明。

编程大师从他的终端前抬起头来,看见魔术师站在门口,“这次你带来了什么呀?”大
师问。

“这是我最伟大的发明,”魔术师说着,用车推着一个盒子进了屋,“这是终极桌上印
刷系统,有了它,排字机、描图桌和照相机能做的事我全能做。我已经设计好了,任何
熟悉传统印刷术的人能够在几个月内学会。这儿有我制作的样张,看,它像《古腾保圣
经》的首页。”

大师仔细地看了看样张,露出一丝微笑。“这部装置打算用来干什么?”他问。

“我们将用它来印刷技术说明资料。”魔术师说。

<作者按>

这位魔术师经常出现在禅的民间故事中,作为对立面。这个人物是否真正存在,不得而
知。然而有传说说,这座象牙塔曾被一伙狂热的信徒控制,这伙人被唆使去干软件盗
版、谋杀以及其它各种各样的不道德的事情,以报复机器时代的Cray-2超级计算机的统
治。

这座象牙塔在第三个朝代末被包围并几乎毁掉,但由于政府的援助而幸免于难,并得以
重建。

一位初学者走进大师的工作间,看见一台新电脑摆在大师的桌上。

“那台电脑是什么?”初学者问。

大师把手搭在一个小盒子上,这个小盒子通过一根电缆与那台电脑相连。“看,”大师
说,“这部装置控制着我们在屏幕上看到的东西。”

初学者紧紧地盯着屏幕,但他看到的只是毫无意义的符号。

“这个屏幕模仿的是一张桌子,”大师解释道,“比如说,屏幕的这里是文件柜和 垃
圾桶,这里是打字机和计算器。”

“这是一项伟大的发明。”初学者敬畏地低声说道。

“并不像看上去的那样伟大。”大师说,他推着初学者的肩膀往后退了几尺,“你能看
见那两张桌子吗?”大师问道。

初学者点点头。“一张在地板上,另一板在屏幕上。”他说。

“是这样的。那么,是否有一张桌子上少了什么东西?”

初学者沉思片刻。“其中一张桌子上没有电脑。”他说。

大师摇摇着。“任何一张桌子上都没有电脑。”

一位初学者问大师:“程序设计的真正含义是什么?”

大师回答说:“饿的时侯就吃;困的时侯就睡;当时机恰当时,就进行程序设计。”

编程大师走进初学者的工作间,听见了一阵骚乱。

“这些该死的电脑!”初学者气愤地叫嚷着,“要想让它们做点事,我得使用三个甚至
四个编辑程序。有时侯我被搞得糊里糊涂,结果删除了整个文件,这简直难以忍受!”

大师盯着初学者。“那么你打算怎样补救呢?”他问。

初学者想了一会儿。“我将设计一个新的编辑程序,”他说,“一个将取代所有这些程
序的程序。”

突然,大师敲了一下初学者的脑袋。这一击并不重,但初学者却很惊讶。“你这是什么
意思?”初学者惊问道。

“我根本不想学另一个编辑程序。”大师说。

初学者一下子就恍然大悟了。

一位初学者问大师,“每当我在一套新的系统上编程时,必须学会一种新的语言。为什
么没有一套标准呢?”

大师转身而去。“唯一真正的标准是死亡。”他说

一位初学者问大师:“在ADA编译程序中有没有佛性?”

大师回答说:“你曾注意到在八进制、十六进制和十进制中字符NUL都是000吗?”

初学者一下子就恍然大悟了。

名叫狄阿古和古多的两位程序员正在向大公司的董事长汇报。

当古多站起来发言时,他对那位公司行政官说,“你天生聪明,能够理解电脑的真 正
含义。”“瞎扯,”狄阿古说,“你为什么表扬这个蠢才?他也许是行政官,但他对电
脑一无所知。”

行政官对他们俩都给予了奖励,然后雇了一名顾问来决定他们俩谁对谁错。

第四篇 水 大师:阿幸

媒体:俳句

硬件:磁盘

方向:北

软件:编译程序

感觉:味觉

阶段:测试

动物:蛇

系统:Unix

尼姑阿幸最初是写俳句的。俳句即短诗,用一套预先好的章节来试图表达一种情感或一
种想法。阿幸的俳句则更多地表达了一名程序设计者的那种孤独的生活:为了调试而工
作到深夜,徒劳无获的测试,看着一段程序编译时的那种简单的喜悦,等待。所有的程
序设计者都有过这些体验,但他们很少提及,即使是在他们之间。

本书这最后一部分,显然是一部大作中的片段。作者不才。未能将这些短诗中的深奥的
意蕴完全翻译出来,以达到和原诗类似的效果,还望读者多多包涵。

程序不过是梦,

生于无形无象的禅中,

我们只是那做梦的人。

我编程三日,

两耳不闻人声,

只有硬盘在歌唱。

编译程序在运行,

像一条湍急的河流,

我静静地等侯。

为何要用LISP?

COBOL语言我不懂,

所以我用LISP。

编程一整夜,

透过窗户,照到屏幕上,

初升的太阳。

硬件和软件,

我们是你们的主人和奴隶,

我们的生活是程序。

你能听见吗,

上程序的声音?

答案是NUL。

电子邮件说,

项目已取消,

清理文档时,我哭了。

计算中心空空荡荡,

静静的只有风扇在嗡鸣。

我走过一排排的CPU,

磁通量刺痛了我的皮肤。

我打开一扇门,又冷又硬,

看见指示灯在控制板上跳动。

一台没有灵魂的机器,人们说,

但它的灵魂是同事们的汗水,

在它里面有我们多年的生命,

失望,友谊,悲伤,欢乐,

算法成功时的狂喜,

和无数个徒劳无获的长夜。

我听见了叹息和欢笑的回声,

在这间黑洞洞的办公室里,

终端机闪耀着光芒,就像星星一样。

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/7

随便说说

『 GuoLing's 』     随便说说       

看了好几个月的书,写了一个月的文档,仅仅看了一些代码,好久没有自己写点程序了,心里有点怕怕的,很少我会这么久不写代码的,从上大学之后几乎没有停过吧,写程序的确算是我最大的爱好吧,我对代码的掌控能力,对0和1的理解能力应该超过了我对其他事物的领悟能力吧。


虽然我也会去图书馆坐坐,看看一些文学类的书,只是心中早已经认定自己不是以文为生的人,这辈子也叠不出什么像样的文字来,于是也就欣赏欣赏别人的文学世界。看书,在很久以前是被老师逼的,是因为要去考试,没有办法,要想考得好,只有多看一点了,因为我对copy的理解远远超过我对文学原创的理解,而且当年老师还教育我们要多向前辈学习。呵呵,所以我现在是很佩服那些能以文为生的高人。既然不能靠码字吃饭,做不了诗人文学家,那就好好学门手艺吧,编程算是吧,似乎这么手艺我学的还算可以,而且竟然还是非常欢喜的。


对于代码,程序而言,我是万分喜爱的。那是一个只有逻辑的世界,控制论起着绝对的作用,说实话,我并不喜欢上帝到处掷色子,虽然我也不喜欢他到处管事。我可以很容易的明白0和1的含义,然后透过0和1看到另外一个世界,那里的一切都是定数,泛泛说的话,一切都是可以预知的,什么样的条件什么样的未来,什么样的动作什么样的结果。我很适应这样的世界,一切尽在掌握之中。


只是知道了未来也就失去了未来,这我也是明白的。100多年前,煊赫一时的经典物理大厦忽喇喇地轰然倾倒,普朗克的量子假设是点燃了新革命的星星之火。在这之后,爱因斯坦的光量子理论赋予了新生的量子以充实的力量,让它第一次站起身来傲视群雄,而玻尔的原子理论借助了它的无穷能量,开创出一片崭新的天地来。从那时候开始人类知道上帝他老人家是用掷色子的方式决定世界的,换句话说他老人家也不知道自己在干什么,呵呵,再联想到高达-SEED-DESTINY里,如果人类的未来用基因来决定的话,整个世界就失去了未来,所以才有那么多人去抗争,才会有Freedom和Justice。同样我也庆幸自己并不知道自己的未来是什么样子的,虽然在梦里也一次一次描绘过自己的未来,而且很多时候还有一种在梦里经历过的感觉,或者数只是一种错觉罢了,未来还是得靠自己一点一点去走的,就像luffey和基拉一般去做吧。


我到底适合干什么呢?vc一直在问自己这个问题;zzy说要多试几次,要不并不清楚自己的定位。我想至少我现在还是很喜欢编程的,所以做一个程序员倒是一个不错的选择,不过只作一个程序员实在太委屈我了,呵呵,但是在我能做其它的之前,我至少先要把程序员做好,把代码写清楚。天天都对着电脑,也就是天天和一堆0和1打交道,也不是一件很轻松的事情。大道至简,万流归宗。


或许有一天我也像《心灵捕手》中,威尔扔下一句,我不想一辈子都在解决数学问题,然后就开车离开了MIT。呵呵,我还没有这么潇洒的,扯远了,回到我的01世界,我想我还是会在这个0和1的世界里多呆上一阵子的,毕竟要把工作和爱好统一在一起不是一件很容易的事情,虽然有人并不赞成这么做。当然这是后话了。


P.S
呵呵,在写完这篇之前刚刚实现了LZO适时流压缩算法(FOR HOS.)
四月了,该做季度总结了。

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/4

凡人语录

『 GuoLing's 』  凡人语录              

zizibear:
现在去本科生楼回回都被抓出来,也就是因为头发干净了点,衣服整齐了些。想当初我也是从那堆里
爬出来的。
zzy:
我觉得作为一个男人,没有养活自己养活家人能力和责任心,女人不会照顾自己和家庭就先不要谈婚论嫁
zht:
难人:-)

评公司封网
(wangwei)
感冒吃药不见效
(wanmin)
用瑞星杀毒即可
(wangwei)
试了,提示说程序拒绝访问,请咨询公司管理部门

评港湾2006春季运动会
春季运动会过去了,夏季,秋季还会远吗?
支持春运,反对黑哨
拔河比赛的算法还真是复杂
两边队列长度怎么不一样啊?
转发能力不行,丢包了。

P.S.
待添加,先上班ing

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』

For Dr.Ding 's Cluster

『 GuoLing's 』  拆解和定制initrd.img                        

为什么要拆解和定制initrd.img?
因为学校给新机器了,旧的驱动跑不起来,不能浪费新机器阿!

  

1. 什么是initrd.img,它有什么用?

initrd.img是Linux启动过程中很重要的一个文件,如果你编译内核时将一部分功能编译为可加载模块。如果系统的一些设备的驱动编译为可加载模,那么启动时如果没有指定INITRD=/path_to_initrd.img,那么系统启动或者会失败,或者启动后会有设备无法使用(像网卡或者其它设备)。

比如我的Dell Precision 470 计算机的Adaptec HostRaid 39320B SCSI控制卡驱动就编为可加载模块,如果没指定initrd.img或者指定的initrd.img中并没有包含正确的驱动模块(有些硬件很多系列的驱动都是一个名称,像Adaptec 的一系列Ultra320卡用的驱动模块名称都是aic79xx.o,但当前很多2.4版本内核模块中并不支持较新的39320B驱动),则系统启动时会挂起,并报告"kernel panic: VFS: Unable to mount root fs on 08:06"的错误。

2. 拆解initrd.img

很庆幸initrd.img可以进行拆解,或许这正是设计者高明所在。initrd.img不像通常的以.img为扩展名的ramdisk cramfs文件。它是经过用gzip -9进行压缩过的ramdisk文件。所以,如果直接用#mount initrd.img /temppath -o loop不能mount上,会报告你指定一个文件类型。 所以我拆解它的过程要先将其进行解压缩,然后再mount。下面是我的操作过程,可能有些命令用加些参数的方式更简捷,当我知道后会进行更新。

#cd 假设已经到你的initrd.img文件所在目录(最好先将其备份一个)

#mv initrd.img initrd.gz <--在我的RHEL AS3 U3 /bsh下,不做这一步的话,用gunzip解压时会报告扩展名不对

#gunzip initrd.gz /tmp/initrd <--解压后会生成一个不带扩展名的initrd文件

#mkdir /mnt/tmp

#mv /tmp/initrd /tmp/initrd.img <--将解压出的initrd文件加个.img的扩展名,在我的RHEL AS3 U3 下不做这一步,mount时会出错

#mount /tmp/initrd.img /mnt/tmp -o loop <--mount成功后,/mnt/tmp目录中将能看到initrd.img中的所有文件及目录

#cp -a /mnt/tmp/* /tmp/initrd.new <--拷贝一份方便编辑

#umount /mnt/tmp

#cd /tmp/initrd.new

切换到/tmp/initrd.new目录后,你可以按需要进行编辑。比如更新一些设备驱动模块,或者对其中的一些启动过程中会执行的shell script进行修改。

所有想要的修改完成后,进行打包生成新的initrd.img文件。方法如下:

#mkcramfs /tmp/initrd.new /tmp/newinitrd

#gzip -9 /tmp/newinitrd /tmp/newinitrd.gz

#mv /tmp/newinitrd.gz /tmp/initrd.img

上面的目录可以根据需要进行更改。如果在gnome下,有些解压缩、改名、复制可以直接用右键弹出菜单完成。


3. 定制自已的initrd.img

我修改initrd.img的起因还是归于用的那台Dell precision 470 及要用OSCAR4.1组建一个linux cluster(正在进行中,尚未完成)。OSCAR4.1包中所用的SystemImager32.2-1带的用于网络引导客户机的BOEL-kernel-2.4.25和initrd.img不支持Dell precision 470的Adaptec39320B HostRaid Control Card。此外,在上面装RedHat 9.0后进行内核重编译时,可能因为mkinitrd或者9.0内核版本的原因,生成的img文件无法使用。在此以我实际遇到的问题,主要讲讲更新initrd.img中的硬件驱动模块的方法,抛砖引玉。

模块跟kernel的版本相关,直接的用其它支持你硬件但kernel版本不同的模块进行替换通常不会成功,所以最好到kernel.org上下载所需要的kernel版本的源程序包。我解决我上面的问题的文法就是下载了Linux-2.4.25.tar.gz源程序,并解压到/usr/src目录,之后到adaptec.com网站下载到支持39320B HostRaid的适合linux-2.4版的驱动源程序,并解压替换2.4.25内核源程序中的驱动程序源代码。之后对内核进行重新编译(在本文不详述具体方法,网上有很多相关资料,或许有时间我会写一篇),用make menuconfig时最好直接选上随着原来kernel & initrd.img在一起的config文件。如果不出错,执行make modules_install后就生成了需要的模块(通常在目录/lib/modules/kernel-version)。 之后我用新的/lib/modules/kernel-version/lib/下的modules目录及其文件替换掉旧的initrd.img中的modules目录(当然先得拆解之,方法见第2部分)。

当然initrd.img可修改的部分还有很多,但在此只以自已实际做过的部分进行说明。

Question:

最近想用oscar4.1建个cluster,主节点(master node)安装好了RedHat EL AS3U3,并装好oscar4.1,并配置好dhcpd,pxe服务。利用oscar的wizard在主节点上生成了从节点(slave node)的image文件(oscar调用的systemimager生成image文件)。

之后启动了从节点,并且从节点成功的从主节点获取IP并找到配置文件。之后加载了主节点/tftpboot/目录下的kernel和initrd.img文件。但在后面进行硬件检测和运行自动安装脚本时出错。下面是从显示器上抄下来的输出信息,希望各位有过这方面经验的朋友给指点迷径。

Start_syslogdget_boel_binaries_tarball
rsync -av 192.168.1.1::boot/i386/standard/boel_binaries.tar.gz /tmp/boel_binaries
receiving file list... done
boel_binaries.tar.gz
wrote 116 bytes read 3370446 bytes 674116400 bytes/sec
total size is 3369935 speedup is 1.00
tmpfs_watcher
get_scripts_directory
rsync -a 192.168.1.1::scripts/ /scripts/

autodetect_hardware_and_load_modules
Detecting hardware: spurious 8259A interrupt: IRQ7
ide-scsi
Loading sd_mod...
using /lib/modules/2.4.25-boel/kernel/drivers/scsi/scsi_mod.o
SCSI subsystem driver Revision:1.00
Using /lib/modules/2.4.25-boel/kernel/drivers/scsi/sd_mod.o
Loading ide_disk...
Using /lib/modules/2.4.25-boel/kernel/drivers/ide/ide_disk.o
Loading ide_scsi...
Assuming ide_scsi is compiled into the kernel, not needed, or already loaded.

get_hostname_by_hosts_file.
Hosts file exists...
searching for the machine's hostname in /scripts/hosts by IP:192.168.1.2
This hosts name is: oscarnode2
run_pre_install_scripts
>;>;>;99all.harmless_example_script
I live in /var/lib/systemimager/scripts/pre-install
choose_autoinstall_script
Using autoinstall script:/scripts/oscarnode2.sh
write_variables
run_autoinstall_script
>;>;>;/scripts/oscarnode2.sh
get_arch
DISKORDER=sd,cciss,ida,rd,hd
enumerate_disks
DISKS=0
NO DISK DEVICE FILES WERE FOUND. THIS USUALLY MEANS THE KERNEL DID NOT RECOGNIZE ANY OF THE ATTACHED DISKS

The kernel boot messages,which preceded this, may indicate why.
Reverting to disk configuration specified by image master script.

Partitioning /dev/sda...
Old partition table for /dev/sda:
Error: could not stat device /dev/sda -No such file or directory
parted -s -- /dev/sda mklabel msdos || shellout
Error: could not stat device /dev/sda -No such file or directory
Killing off running processes.

安装时停在这了,并出现BusyBox built-in shell的提示符
我试着用lsmod 和modprobe aic79xx命令,系统输出如下信息
# lsmod
Module Size Used by
ide-disk 11520 0
sd_mod 9628 0 (unused)
scsi_mod 49780 1 (autoclean) [sd_mod]
# modprobe aic79xx
Using /lib/modules/2.4.25-boel/kernel/drivers/scsi/scsi_mod.o
Using /lib/modules/2.4.25-boel/kernel/drivers/scsi/aic7xxx/aic79xx.o
insmod: init_module: aic79xx: No such device

我不明白为什么这个kernel不能成功找到我的scsi硬盘,既然kernel都已经包含有aic79xx.o的模块?
我用google.com搜索了好久也没有找到解决的方法。
很迷惑为什么就不能找到硬盘,要选择什么样的内核才行呢?

Any suggestions are appreciated !

Hardware and software information of master and slave nodes:
2*3.6GHz xeon (smp), 1GB ECC RAM, RedHat EL AS3U3 , Oscar 4.1
Adaptec SCSI control card(driver is aic79xx, vendor: SEAGATE ST336754LW).

 

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』
2006/4/1

港湾网络2006年春季运动会

   生命需要运动,研发正在行动!
 
   2006年港湾春季运动会今天下午即将举行啦!

   希望大家能在百忙中抽空前来“观战”!为我们的研发XDJM们“旗鼓呐喊”“助威捧场”!

   借此机会我们可以一睹研发运动健儿们的风采和啦啦队的精彩“助威”场面哦!

   快来!

   拿出您的绝招,献出您的热情,加入我们的行列,为拚搏而喝彩,让青春和运动结合在一起,就在这四月的   节日里留下我们的合影!

   带上您的热情、欢笑和信心,邀上您的同事。港湾春季运动会诚邀您的参与!

    (不要错过哟!!!^-^Y)
 
P.S.
 
绝非愚人节恶作剧,下午拔河去
 

愚 人 节

『 GuoLing's 』  愚 人 节                     

  每年四月一日,是西方的民间传统节日——愚人节(April Fool's Day),也称万愚节。对于它的起源众说纷纭。一种说法认为这一习俗源自印度的“诠俚节”。该节规定,每年三月三十一日的节日这天,不分男女老幼,可以互开玩笑、互相愚弄欺骗以换得娱乐。较普遍的说法是起源于法国。1564年,法国首先采用新改革的纪年法——格里历(即目前通用的阳历),以一月一日为一年的开端,改变了过去以四月一日作为新年开端的历法。新历法推行过程中,一些因循守旧的人反对这种改革仍沿袭旧历,拒绝更新。他们依旧在四月一日这天互赠礼物,组织庆祝新年的活动。主张改革的人对这些守旧者的做法大加嘲弄。聪明滑稽的人在四月一日这天给顽固派赠送假礼物,邀请他们参加假庆祝会,并把这些受愚弄的人称为“四月傻瓜”或“上钩之鱼”。以后,他们在这天互相愚弄,日久天长便成为法国流行的一种风俗。该节在十八世纪流传到英国,后来又被英国早期移民带到了美国。起初,任何美国人都可以炮制骇人听闻的消息,而且不负丝毫的道德和法律责任,政府和司法部门也不会追究。相反,谁编造的谎言最离奇、最能骗取人们相信,谁还会荣膺桂冠。这种做法给社会带来不少混乱,因而引起人们的不满。现在,人们节日期间的愚弄欺骗已不再像过去那样离谱,而是以轻松欢乐为目的。

  黄水仙是愚人节的象征。愚人节时,人们常常组织家庭聚会,用水仙花和雏菊把房间装饰一新。典型的传统做法是布置假环境,可以把房间布置得象过圣诞节一样.也可以布置得象过新年一样,待客人来时,则祝贺他们“圣诞快乐”或“新年快乐”,令人感到别致有趣。

  不过愚人节最典型的活动还是大家互相开玩笑,用假话捉弄对方。有的人把细线拴着的钱包丢在大街上,自己在暗处拉着线的另一端。一旦有人捡起钱包,他们就出其不意地猛然把钱包拽走。还有人把砖头放在破帽子下面搁在马路当中,然后等着看谁来了会踢它。小孩们会告诉父母说书包破了个洞,或者脸上有个黑点.等大人俯身来看时,他们就一边喊着“四月傻瓜”。一边笑着跑开去。总之,每逢愚人节这一天,动物园和水族馆还会接到不少打给菲什(鱼)先生成莱昂(狮子)先生的电话,惹得工作人员掐断电话线,以减少麻烦。

  4月1日的鱼宴。也是别开生面的。参加鱼宴的请帖,通常是用纸板做成的彩色小鱼。餐桌用绿、白两色装饰起来.中间放上鱼缸和小巧玲珑的钓鱼竿,每个钓竿上系一条绿色飘带,挂着送给客人的礼物——或是鱼形工艺品,或是一个装满糖果的鱼篮子。不言而喻,鱼宴上所有的菜都是用鱼做成的。宴会上,主人端上以鱼为原料精心烹制的菜肴,煎炸烤烧,应有尽有。根据传统风俗,主人往往在宴会上给客人们做假菜,这种假菜宴更增添了轻松欢快的节日气氛。宴会结束后,主人以糖果招待客人,不过,糖果不是放在果盘中,而是放在药盒里。

 

  (来源:新华网)

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』

程序员

『 GuoLing's 』  BLOG下载问题睡想                

昨晚洗澡,早早躺在床上了,迷迷糊糊之间突然想起关于BLOG搬家的问题,要启用第二空间必定要把现有的blog项搬到新的空间存放,人工完成不是我的风格,能用程序作的我绝不自己来弄。
想着想着竟然来了精神,于是打开手机,登陆到Mobile MSN,下载blog的时候做了一个过滤,发现blog项的地址实际存储的时候应该是使用一个递增数列加上某一个起始数值并于一个固定的URL进行string连接得到整个BLOG URL,对于日志项如此,相关的评论项也应该是这样吧,如果将这些URl遍历一次,就应该获取到BLOG的所有的日志项,而且Microsoft在开发MSN Spaces的时候应该也在静态URL中作了标志项的,如此一来,只要一个程序能够批量读取URL页面即可下载到所有的日志了,但这个程序还是太笨了,因为每一次都是把页面上所有的元素都下载了,为此还需要对下载得到的文件进行字符串过滤,这可不是一件轻松的事情啊,还好HTML元素还是可以进行正则分析的。
因此,编写这个程序只需要一个下载单元,一个过滤引擎(正则表达式分析),似乎C#比较适合,不过这个程序还是比较麻烦的。
换用RSS登陆下载,发现RSS呈现的元素很少,而且大部分是都是我们要找的日志项,这样就变成了在单个HTM文件中过滤,相对而言程序可以简单很多,正则分析也可以变成简单的关键字查找。但是RSS下载存在的一个问题是RSS不能浏览所有的日志项,因此如何使用RSS遍历整个MSN Spaces空间成了最大的问题。
困了,想睡觉了。不管是整体的强制下载还是RSS遍历,都是在没有BLOG的协议,相关文档支持的情况下作出的一种设想,对于BLOG而言应该还存在一些标示性的东西,可以参考一些文档,应该有更好的解决方案的。
好了,呼呼了
P.S
小熊去写程序吧^_^

嗯,刚刚又想到一个问题,下载到的字符流的编码问题关于,zz一篇文章留着讨论

每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识

关<
<P><FONT style="FONT-SIZE: 9pt; FILTER: glow(color=black); WIDTH: 100%; COLOR: #ffffff; LINE-HEIGHT: 150%"><B>每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识</B></FONT><BR>&nbsp;&nbsp;</P>
键字: Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7
原文标题: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know
About Unicode and Character Sets(No Excuses!)
原文链接: http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html
作者: Joel Spolsky
翻译、摘要: 木野狐(ChenRong2003[at]hotmail.com)
日期: 2004-11-29

ASCII 码
------------------------------------------------------------------------------------
7 位(00~7F)。 32 ~ 127 表示字符。32 是空格, 32 以下是控制字符(不可见)。
第8位没有被使用。全世界很多人同时对这个位的含义发展了不同的用处。比如 IBM PC 中的 OEM 字符集。
最后就 128 位以下的用处达成共识,制定了 ASCII 标准。
而 128 位以上的可能有不同的解释,这些不同的解释就叫做 code pages.
甚至有用于在同一台电脑上解释多种语言的 code page.

同时,在亚洲发生了更加疯狂的事情。亚洲语言的字符集通常数以千计, 8 位已经不足以表达,这通常用一种
很凌乱的,叫做 DBCS(双字节字符集,double byte character set) 的系统来解决。
这种系统中,有些字符占用 1 字节,有些 2 字节。这样一来,在字符串中向前解析很容易,而倒退却很麻烦。
程序员们被建议,不要使用 s++ 或 s-- 来前进和后退,而使用一些函数,比如 Windows 的 AnsiNext 和
AnsiPrev. 因为这些函数知道是怎么回事。

这些不同的假设(code page)在单个的机器上没有问题。而随着 Internet 的发展,字符串要从一个机器上移到
另一个机器上,这就产生了问题。于是, Unicode 出现了。

Unicode
---------------------------------------------------------------------------------------
Unicode 是一个勇敢的成就。它把在这个星球上的每一个合理的文字系统整合成了一个单一的字符集。
很多人还存在这样的误解: Unicode 仅仅是 16 位的这么简单,每个字符占 16 位,所以一共有 65536 个可能的字符。
然而,这是错误的。不过不要紧,因为这是大部分人都会犯的一个普遍的错误。

实际上,Unicode 理解字符的方式是截然不同的,而这是我们必须了解的。
到目前为止,我们都曾经认为:一个字符对应到一些在磁盘上或内存中储存的位(bits). 如: A -> 0100 0001
而在 Unicode 中, 一个字符实际上对应一种叫做 code point 的东西。
比如 A 这个字符,是抽象的(原文:platonic,柏拉图式的,理想的)一个概念。
无论是 Times New Roman 或者 Helvetica 或者其他的什么字体中,都代表同一个字符。但是它和小写的字母 a 不同。
但是在其他的语言,比如希伯莱语(Hebrew) 或者德语(German), 阿拉伯语(Arabian) 中,同一个字母的不同的字形代表的含义是否
相同,是有争议的。经过长时间的争论,这些也终于被确定了。

每一个字母表中的每一个抽象的字母,都被赋予了一个数字,比如 U+0645. 这个叫做 code point.
U+ 表示: Unicode, 数字是 16 进制的。
你可以通过 charmap 命令来查看所有这些编码。(Windows 2000/XP 中). 或者访问 Unicode 的网站(http://www.unicode.org)
Unicode 中 code point 的数字的大小是没有限制的,而且也早就超过了 65535. 所以不是每个字符都能存储在两个字节中。
那么,一个字符串 "Hello", 在 Unicode 中会表示成 5 个 code points :
U+0048 U+0065 U+006C U+006C U+006F
只不过是一些数字。但我们现在还没有提到如何在磁盘或者 Email 中表示这些信息,这就是我们下面要提到的编码(Encoding) 干的事情。

Encodings (编码)
-------------------------------------------------------------------------
最初的 Unicode Encoding, 使用两个字节表示一个字符。那么 "Hello" 表示为:
00 48 00 65 00 6C 00 6C 00 6F
实际上,还有一种表示方式:
48 00 65 00 6C 00 6C 00 6F 00
到底高位字节在前还是低位字节在前面,是两种不同的模式。这要看特定的 CPU 在何种模式下工作的更快。 所以这两种都有。
这就有了两种不同的 Unicode 表示方式了,为了区分,人们又采用了一种奇异的方式:
在每一个 Unicode 字符串的前面,加上 FEFF (这称为 Unicode 字节顺序标志,Unicode Byte Order Mark).
如果你交换高位和低位次序,那么会加上一个 FFFE. 这样,读这个字符串的人才知道要对每两个相邻的字节进行交换。
但在最初的时候,并不是每一个 Unicode 字符串都有这个标志的。

这看起来很不错。可程序员们开始抱怨了,“看看那些零!”。因为有些是美国人,他们使用英语。而英语中很少需要使用 U+00FF 以上的
字符, 有些人无法忍受采用双倍的存储空间来存储每个字符。
基于这些原因,很多人决定忽视 Unicode, 而同时,事情变得更糟了。

然后人们制定了 UTF-8. UTF-8 是用于保存 Unicode code points 的另一套系统。
每一个 U+ 数字,在内存中占用 8 bit. 在 UTF-8 中,任何一个 0~127 的 code point 占用一个字节。
只有 128 以及更大的才占用 2, 3, 直到 6 个字节。
具体如下图所示:

16进制的最小的数 16进制的最大的数 内存中的字节序列
------------------------------------------------------------------------------
00000000 0000007F 0vvvvvvv
00000080 000007FF 110vvvvv 10vvvvvv
00000800 0000FFFF 1110vvvv 10vvvvvv 10vvvvvv
00010000 001FFFFF 11110vvv 10vvvvvv 10vvvvvv 10vvvvvv
00200000 03FFFFFF 111110vv 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv
04000000 7FFFFFFF 1111110v 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv

这看起来很不错,其中的英文字符和 ASCII 中一样。所以美国人根本没意识到有什么错误。只有世界上的其他国家需要使用高位的字节。
特别的,"Hello" 这个字符串,Unicode code point 为 U+0048 U+0065 U+006C U+006C U+006F, 会被存储为 48 65 6C 6C 6F。
和 ASCII, ANSI, 以及在这个星球上的任何一个 OEM 的字符集中表示的含义都一样。
现在,如果你需要表示重音的字符,或者希腊语,你需要使用多个字节来表示一个 code point. 但美国人不会介意这些。
(UTF-8 还有一个好处就是,老的字符串处理程序使用一个为 0 的字节来表示 null-terminator, 不会截断字符串)

到目前为止已经介绍了三种 Unicode 的表示方法:

传统的双字节表示方法, 称为 UCS-2(因为有 2 个字节) 或者 UTF-16(因为有 16 个位)
而且你还要搞清楚是高位在前的,还是高位在后的 UCS-2.

还有一种就是新的 UTF-8. 如果你的程序只使用英文的话,它仍然会工作正常。

实际上还有一堆的其他办法对 Unicode 进行编码:
有 UTF-7,这种编码方式大部分和 UTF-8 相同,但保证高位一定为 0.
所以如果你必须通过某种 Email 系统传送 Unicode,这些系统认为 7 位足够了,那使用 UTF-7 会正常。
还有 UCS-4, 储存每一个 code point 为 4 个字节。它的优点是每一个字符都保存为同样长的。但很明显,缺点是浪费太多存储空间了。 所以,现在你思考问题要把每一个字符想象成抽象的一个 unicode code point. 而它们同样可以使用任何旧的方式编码。
举例来说,你可以把 Unicode 字符串 Hello (U+0048 U+0065 U+006C U+006C U+006F) 编码(encode)为
ASCII, 或者古老的 OEM 希腊语编码,或者希柏莱 ANSI 编码,等等。而有些字符串不能显示!
也就是说,假如你要表示一个在某个编码中没有对应的 Unicode code point, 通常会显示为一个 ? 或者一个白色的小方框。

英文常用的一些编码有, Windows-1252(Windows 9x 标准 for 西欧语言)
以及 ISO-8859-1, aka Latin-1(对任何西欧语言也有效)
如果用这些编码来尝试存储俄文字符,你会得到一堆的 ?

UTF 7, 8, 16 以及 32 都有一个优点,能够正确的存储任何的 code point.

最简单,也是最重要的几个概念
====================================================================
一个字符串不指定它使用什么编码是没有意义的。
再也不要假定, “纯”文本(plain text) 是 ASCII.
没有 “纯文本” 这个东西。

如果你有一个字符串,在内存中,在文件中,或者在 Email 消息里,你必须知道它的编码是什么。否则你无法正确的解释或者显示给用户。
所有的诸如 “我的网页不能正常显示了”,或者 ”Email 消息不能正常显示了“ 之类的愚蠢问题, 都是因为, 没有告诉你到底是使用的那种编码,
UTF-8 还是 ASCII 还是 ISO 8859-1 或者 Windows 1252 ?? 那么自然无法正常的解释和显示,甚至不知道字符串该在哪里结束。

那么如何保留这样的编码标志,来表示字符串的编码? 有一些基本的办法。
比如对于 Email 来说,在表单的 header 中加上:

Content-Type:text/plain;charset="UTF-8"

对于 Web 页面来说,原来的做法是, Web 服务器随着 web 页面本身一起,发送一个类似于 Content-Type 的 http header.
(不是在 HTML 里面,而是作为一个 response header 在 HTML 页之前发送)

这样做有一个问题。如果你的 Web 服务器同时有多个站点,站点由多个不同的人用不同的语言开发的程序混在一起。那么 Web 服务器将无从得知,
每一个文件是用什么编码方式写的。这样也就无法发送正确的 Content-Type header.
如果你能够在每一个 HTML 文件中记录 Content-Type 信息,那么就很方便了。可这念头似乎也很疯狂,因为你还没有知道用什么编码方式去
读取这个文件,又怎么能读出编码信息呢?
幸好,几乎每一种编码中,对 32~127 的字符都解释的相同。所以你可以在每一个 html 文件中这么写:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

但是要注意, 这个 meta 标签必须放在 head 中靠前面的位置才能保证不会出问题。 因为 Web 服务器读到这里的时候,就会停止解析,
然后用读到的这个编码方式重新解析页面。

那么,作为 Web 浏览器来说,如果没有在 meta 标签中或者 http headers 中发现 Content-Type, 会怎么样呢?
IE 是这么做的:
先尝试去猜,根据特定的字节出现在各种语言的典型的编码中的频率。
如果编码设定不正常,用户可以通过 View|Encoding 菜单来尝试不同的编码方式。(当然,不是每个人都知道该这样做)

在 VB, COM, Windows NT/2000/XP 中,默认的字符串类型是 UCS-2(2字节)的。
在 C++ 代码中, 我们可以定义字符串为 wchar_t(wide char),同时用 wcs 系列的函数代替 str 系列的函数。
如 wcscat, wcslen, 而不是 strcat, strlen.
在 C 代码中,要创建 UCS-2 字符串的话,只要在前面加一个 "L", 如 L"Hello"

对于 Web 页面,最好统一为使用 UTF-8 编码。 这个编码已经被各种 web 浏览器支持了很多年了。

(完)

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』

每日一帖

『 GuoLing's 』  Steve Jobs Commencement Speech                     

"Stay Hungry, Stay Foolish"
  

Thank you. I'm honored to be with you today for your commencement from one of the finest universities in the world. Truth be told, I never graduated from college and this is the closest I've ever gotten to a college graduation.

Today I want to tell you three stories from my life. That's it. No big deal. Just three stories. The first story is about connecting the dots.

I dropped out of Reed College after the first six months but then stayed around as a drop-in for another eighteen months or so before I really quit. So why did I drop out? It started before I was born. My biological mother was a young, unwed graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife, except that when I popped out, they decided at the last minute that they really wanted a girl. So my parents, who were on a waiting list, got a call in the middle of the night asking, "We've got an unexpected baby boy. Do you want him?" They said, "Of course." My biological mother found out later that my mother had never graduated from college and that my father had never graduated from high school. She refused to sign the final adoption papers. She only relented a few months later when my parents promised that I would go to college.

This was the start in my life. And seventeen years later, I did go to college, but I na?vely chose a college that was almost as expensive as Stanford, and all of my working-class parents' savings were being spent on my college tuition. After six months, I couldn't see the value in it. I had no idea what I wanted to do with my life, and no idea of how college was going to help me figure it out, and here I was, spending all the money my parents had saved their entire life. So I decided to drop out and trust that it would all work out OK. It was pretty scary at the time, but looking back, it was one of the best decisions I ever made. The minute I dropped out, I could stop taking the required classes that didn't interest me and begin dropping in on the ones that looked far more interesting.

It wasn't all romantic. I didn't have a dorm room, so I slept on the floor in friends' rooms. I returned Coke bottles for the five-cent deposits to buy food with, and I would walk the seven miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on. Let me give you one example.

Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer was beautifully hand-calligraphed. Because I had dropped out and didn't have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and sans-serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can't capture, and I found it fascinating.

None of this had even a hope of any practical application in my life. But ten years later when we were designing the first Macintosh computer, it all came back to me, and we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts, and since Windows just copied the Mac, it's likely that no personal computer would have them.

If I had never dropped out, I would have never dropped in on that calligraphy class and personals computers might not have the wonderful typography that they do.

Of course it was impossible to connect the dots looking forward when I was in college, but it was very, very clear looking backwards 10 years later. Again, you can't connect the dots looking forward. You can only connect them looking backwards, so you have to trust that the dots will somehow connect in your future. You have to trust in something--your gut, destiny, life, karma, whatever--because believing that the dots will connect down the road will give you the confidence to follow your heart, even when it leads you off the well- worn path, and that will make all the difference.

My second story is about love and loss. I was lucky. I found what I loved to do early in life. Woz and I started Apple in my parents' garage when I was twenty. We worked hard and in ten years, Apple had grown from just the two of us in a garage into a $2 billion company with over 4,000 employees. We'd just released our finest creation, the Macintosh, a year earlier, and I'd just turned thirty, and then I got fired. How can you get fired from a company you started? Well, as Apple grew, we hired someone who I thought was very talented to run the company with me, and for the first year or so, things went well. But then our visions of the future began to diverge, and eventually we had a falling out. When we did, our board of directors sided with him, and so at thirty, I was out, and very publicly out. What had been the focus of my entire adult life was gone, and it was devastating. I really didn't know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down, that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure and I even thought about running away from the Valley. But something slowly began to dawn on me. I still loved what I did. The turn of events at Apple had not changed that one bit. I'd been rejected but I was still in love. And so I decided to start over.

I didn't see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods in my life. During the next five years I started a company named NeXT, another company named Pixar and fell in love with an amazing woman who would become my wife. Pixar went on to create the world's first computer-animated feature film, "Toy Story," and is now the most successful animation studio in the world.

In a remarkable turn of events, Apple bought NeXT and I returned to Apple and the technology we developed at NeXT is at the heart of Apple's current renaissance, and Lorene and I have a wonderful family together.

I'm pretty sure none of this would have happened if I hadn't been fired from Apple. It was awful-tasting medicine but I guess the patient needed it. Sometimes life's going to hit you in the head with a brick. Don't lose faith. I'm convinced that the only thing that kept me going was that I loved what I did. You've got to find what you love, and that is as true for work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work, and the only way to do great work is to love what you do. If you haven't found it yet, keep looking, and don't settle. As with all matters of the heart, you'll know when you find it, and like any great relationship it just gets better and better as the years roll on. So keep looking. Don't settle.

My third story is about death. When I was 17 I read a quote that went something like "If you live each day as if it was your last, someday you'll most certainly be right." It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself, "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "no" for too many days in a row, I know I need to change something. Remembering that I'll be dead soon is the most important thing I've ever encountered to help me make the big choices in life, because almost everything--all external expectations, all pride, all fear of embarrassment or failure--these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.

About a year ago, I was diagnosed with cancer. I had a scan at 7:30 in the morning and it clearly showed a tumor on my pancreas. I didn't even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctors' code for "prepare to die." It means to try and tell your kids everything you thought you'd have the next ten years to tell them, in just a few months. It means to make sure that everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes.

I lived with that diagnosis all day. Later that evening I had a biopsy where they stuck an endoscope down my throat, through my stomach into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated but my wife, who was there, told me that when they viewed the cells under a microscope, the doctor started crying, because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and, thankfully, I am fine now.

This was the closest I've been to facing death, and I hope it's the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept. No one wants to die, even people who want to go to Heaven don't want to die to get there, and yet, death is the destination we all share. No one has ever escaped it. And that is as it should be, because death is very likely the single best invention of life. It's life's change agent; it clears out the old to make way for the new. right now, the new is you. But someday, not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it's quite true. Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma, which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice, heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

When I was young, there was an amazing publication called The Whole Earth Catalogue, which was one of the bibles of my generation. It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch. This was in the late Sixties, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and Polaroid cameras. it was sort of like Google in paperback form thirty-five years before Google came along. I was idealistic, overflowing with neat tools and great notions. Stewart and his team put out several issues of the The Whole Earth Catalogue, and then when it had run its course, they put out a final issue. It was the mid-Seventies and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Beneath were the words, "Stay hungry, stay foolish." It was their farewell message as they signed off. "Stay hungry, stay foolish." And I have always wished that for myself, and now, as you graduate to begin anew, I wish that for you. Stay hungry, stay foolish.

Thank you all, very much.

『 ?рēn-Ρlāм ? 』
『 Open-Palm ? 』
 
『 编辑日志 』