关于作者

姓名:应富鸣

性别:男

出生日期:1983-02-17

地区:福建-厦门

联系电话:

QQ:251352447婚否:未婚
用户名:fmying
笔名:fmying
地区: 福建-厦门
行业:博士

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



访问统计:
文章个数:112
评论个数:122
留言条数:25




Powered by BlogDriver 2.1

鹰隼试翼,风尘翕张

 

我热爱自然,尊敬自然,崇拜自然,渴望了解自然,所以我选择了化学作为我一生的职业,盼望有一天,自然的奥秘、自然的美能被我们揭开,能让人类拥有一双上帝之手,人类能和自然和谐共处。

文章

量子力学简史  (作者置顶)

      记得当我拿到录取通知书后,别人问我,你是读什么专业的?我说,化学。“化学?好啊!今后出来去做药,搞分析,还有那些合成纤维……”(另加一堆化工和材料的东西,晕-_||)我说,不是,是量化,理论化学。这下,他们没说的了。因为,根本没听说过。

      想想很是无奈啊。怎么在人们的眼中,化学就只剩下了分析,制药?连带材料和化工都算上了??觉得自己有必要借用一下自己博客的有限空间,普及一下量化。

      说到量化,就不能不说物理的量子力学。量子化学是量子力学在化学中的应用。量子力学的产生只不过短短的一百来年,和那些发展了几百上千年的经典物理学相比,量子力学实在是非常年轻。但是它的发展史却是非常激动人心的。

      19世纪末,牛顿力学体系早已建立并且完善化。而耗费了好几代物理学家毕生心血的波动方程体系,也在那时由一个 叫麦克思韦的人统一起来。那是个激动人心的方程组,总共7个方程,完美无缺地将光波、电磁波和机械波(比如声波和水波)的运动方程统一了起来。当时,人们非常乐观地认为,物理学已经臻于完善,除了那几个小黑点之外。记不清是哪个物理学家了,当他想要学物理时,他的老师这样告诉他:放弃吧,物理是一门已经完善了的学科。但是,那个学生最终成为了量子力学的开创者之一。

      然而,就是那几个小黑点,那几朵乌云,掀起了一股物理学史上史无前例的惊涛骇浪。

      第一朵乌云是黑体辐射。所谓黑体,就是一种能吸收所有到达它那里的能量的一种物体。在一定的温度下,黑体也可以以光波的形式辐射能量,这就是黑体辐射了。德国物理学家普朗克在研究黑体辐射时,发现了一个现象:一定温度下,黑体辐射的波长有一个最大值;并且,温度越高,最大值越靠近紫外光。我们知道,紫外光的能量比可见光要高。这就意味着:温度越高,黑体辐射出的能量也就越高。首先,最大值的问题是经典的物理学所无法解释的。因为,按照经典的物理学知识,这个最大值是不合理的。另外,温度和能量的关系也是经典物理无法解释的。普朗克大胆地猜想:能量不是连续的,而是有个最小的单位,是成包发送的,其能量和辐射的光波的频率成正比例函数关系,就是说,能量是“量子化”的。普朗克成了量子力学的第一人。

      同时,在英国,汤姆逊教授的原子“葡萄干模型”也遭到了打击。大家都知道,原子由质子、中子和电子组成。汤姆逊认为,带正电的质子和不带电的中子成为原子的主体,电子均匀的嵌在由质子和中子组成的“面包”的表面,像葡萄干一样,整个原子就像是一个葡萄干面包,所以称为“葡萄干模型”。但是,汤姆逊的学生卢瑟福在做实验时发现了和“葡萄干模型”理论完全相反的结果。卢瑟福(当时已经毕业)在用氦原子核轰击金属薄膜的时候,发现了一部分氦原子核的大角度偏转,个别的干脆给弹了回来。按照卢瑟福的说法,这就像是你用一颗炮弹轰击一张卷烟纸,自己却被反弹回的炮弹击中一样不可思议。于是,卢瑟福放弃了“葡萄干模型”,建立了行星模型。就是说,原子核是太阳,其它的电子像地球围绕太阳一样,绕核旋转。

      但是,卢瑟福的行星模型却受到了怀疑,连卢瑟福本人也摇摆不定。因为,按照经典物理,绕核旋转的电子会不断辐射出能量,自己因为不断地失去能量而离核越来越近,最终落入原子核内,“湮灭”。行星模型下的原子是不稳定的。所以,当时支持行星模型的人可谓少之又少。

      这时,卢瑟福的学生玻尔得知了普朗克的能量量子化的观点,就利用普朗克的量子观点,结合经典物理理论,引入了一个假设:电子绕核运动是在一些特定的轨道上的。在这些轨道上,电子稳定存在,不辐射能量。利用这个假设,玻尔处理了氢原子,得到了一系列的稳定轨道,并计算了一些光谱的能量。玻尔取得了巨大的成功,因为他的理论计算结果和实验惊人得一致。玻尔理论成了当时和实验吻合得最好的理论。但是,在解释精细光谱和多电子原子时,玻尔失败了。后来,玻尔理论被包括在了薛定谔方程中。玻尔理论的失败并不是量子的失败,而是因为引入了太多经典物理的结论,玻尔理论并没有完全脱离经典物理的框架,这才是他失败的根本原因。

     与此同时,另一条路上,另一群人也正在向这边走来。他们研究的是第二朵乌云:光电效应。光电效应是指:用光打到金属表面,金属会释放出电子,称为光电子。由于光电子的出现首先要求电子脱离金属的束缚,需要消耗一定的能量,因此,电子所需的能量有一个最小值,超过这个最小值光电子才能出现。具体的最小值取决于不同的金属。按照经典的波动力学,波的能量和振幅有关。而且,由于能量是连续的,可以累加,所以,只要照射时间足够,再弱的光都可以使金属产生光电效应。但是,实验却和人们开了一个天大的玩笑:光电效应和振幅无关,却和频率呈现了一个简单的线性关系!而且,光电效应的产生有个最低频率的问题。只要频率足够,再弱的光都能瞬间打出光电子;反之,如果频率低于这个最低的频率,照射时间再长也没用。这点是无法用经典的波动力学解释的。这个问题同样极大地困扰着当时的物理学家们,没有一个很好的理论可以解释这种现象。

      这时,一个家喻户晓人物出现了。他就是——爱因斯坦。爱因斯坦在总结了前人的经验,并吸收了普朗克的量子化思想后,提出“光子”来解释光电效应。在爱因斯坦的“光子说”中,光不是波,而是一种粒子束——光子束。光子的静止质量为零,因此我们无法讨论光子静止时的经典物理性质。但是,光子有能量,每个光子的能量的表达遵循普朗克的能量表达式。光子束的密度越高,光强越强。当光子打到金属表面时,电子就会吸收它的能量。如果频率足够,那么电子就能吸收足够的能量来脱离金属表面形成光电子;如果频率不够,说明能量不够,那么,就无法打出光电子来。爱因斯坦的光子理论完美地解释了光电效应,获得了诺贝尔物理学奖。

      两朵乌云,竟然都需要用量子理论才能解释,这点让物理学家们大跌眼镜。这预示着,原来物理学并不完美,还有一个很大的领域未被人们发现!

      爱因斯坦的光子说掀起了一次风暴,人们发现,原来长期以来人们认为的波和粒子不同的观点是错误的!原来,波动性和粒子性是可以合二为一的!这就是著名的“波粒二象性”。光可以同时呈现波动性(波的性质,如干涉和衍射)和粒子性(光电效应),看起来很难理解,那是因为我们习惯了宏观物质的波粒分离的性质。

      受爱因斯坦的启发,法国的年轻学者德布罗意大胆地提出假设:“我们在光的方面犯的错误是把波动性想得太多,那么,在物质方面是不是犯了相反的错误呢?”这样,他推导出一个公式,得出结论:电子也有波动性。后来,这个假设为电子衍射实验所证实。波粒二象性得到了广义的证明。

      德布罗意的成果传到匈牙利,一个数学物理学工作者根据德布罗意的成果推导出一个著名的以他的名字命名的方程:薛定谔方程。在这个简单而唯美的方程中,我们可以看到,物质的波动是如何与时间、空间和能量美妙地联系在一起的。同时,这个方程也成了整个量子力学的基础。量子力学和量子化学工作者的任务,就是求解薛定谔方程,来取得所研究的微观对象的性质。

      在薛定谔方程还没有出现的时候,另一对师徒——波恩和海森堡,共同推导出了一个方程。这个方程使用了当时科学家尚了解不多的矩阵语言,表述了和薛定谔方程同样的意思。后人将海森堡的称为矩阵力学,而将薛定谔的成为波动力学。因为薛定谔方程在形式上和经典力学中的驻波方程是一样的。

      海森堡的贡献不止是创立了矩阵力学,而且得出了一个重要的结论:海森堡测不准原理。这个原理给了当时的许多科学家当头一棒。因为他们当时希望能够同时准确测定粒子的位置和动量,但是总是事与愿违——只能测定其中一项。海森堡指出:根据测不准原理,的确只能精确求得一项。同样不能同时准确求得的还有时间和能量。现在,我们关心的主要是能量。

      根据薛定谔方程,我们很容易就得出了和玻尔相同的结果。而且,整个得出的过程是如此自然,不需要像玻尔的一样引入许多人为的假设。因此,薛定谔方程引起了人们极大的关注。但是,薛定谔方程的物理意义是什么?人们意见不统一。玻尔等人认为是几率波,而爱因斯坦、薛定谔等人认为是电磁波。玻尔等人的观点令爱因斯坦等恼怒不已。爱因斯坦说了一句非常经典的话:“难道上帝掷色子吗?”而薛定谔也提出了他著名的“薛定谔猫”(见附注)来反驳所谓的“几率”论。但是,我们可以看到,“薛定谔猫”仍然是试图用经典的现象来解释微观世界理论的方法。现在,人们普遍接受了几率的说法。根据几率的说法,玻尔的稳定轨道就不存在了,因为,那只是电子出现的几率最大的地方。

   有一点需要说明的是:量子力学是建立在假设上的,这些假设无法证明,但是经实验检验,都是正确的。就好象公理无法被证明,但是是正确的一样。

      到了20世纪20年代末(大约27年),海特勒-伦敦合作首先使用了电子配对成键的思想处理了氢分子,并且得到了在当时不错的结果,奠定了价键理论的基本思想,其后的分子轨道方法在初期对氢分子的处理结果尚不如海特勒-伦敦的处理结果。在处理多电子体系时,慕里根的电子密度计算、洪特的洪特规则、泡利的不相容原理、波恩-奥本海默(“曼哈顿”工程负责人)近似我们提供了极大的帮助。而 MO(分子轨道)和 DFT(密度泛函理论)体系以及基于经典理论的分子动力学、蒙特卡罗统计方法的建立,使我们快速处理复杂体系、探讨反应机理成为了可能。而狄拉克的贡献就是:将相对论引入了量子力学,将传统量子力学中的一个强制引入的参数自然导出。最后,量子电动力学也被建立。对于这些,笔者了解不多,因此无法详细叙述。

      现在,当科学工作者使用着Gaussian、Gamess、ADF、CHARMM、MS等等大型科学计算程序方便地处理复杂分子体系,甚至探讨起复杂酶的反应机理和DNA的时候,当我们在日常生活中惊讶于现在科技的腾飞速度,并享受着它带来的种种好处的时候,我们不应该忘记上世纪初那些量子力学的开拓者,不应该忘记那些默默无闻的理论工作者。没有他们,我们的世界将是另一副我们可能根本无法接受的样子。但是,现在的理论界似乎正在逐渐地被人淡忘。人们总是津津乐道于什么新材料、纳米、制药、分析等领域,看到的都是能快速赚钱,实用主义泛滥;甚至有应用学者讨厌理论工作者的!真的很让人痛心。

      让我们记住下面的名字:

      普朗克、爱因斯坦、卢瑟福、玻尔、德布罗意、薛定谔、海森堡、波恩、奥本海默、泡利、狄拉克、费米(李政道导师)、特勒(杨振宁导师)、霍夫曼、福井谦一、休克尔……还有许多不知名的人,他们同样为量子力学的发展作出了重要的贡献。他们的每一次成功、欢笑和哭泣,都值得我们和他们一起欢呼和哭泣,值得我们为此动容。因为,正是他们的努力,计算机、纳米,很多很多我们现在熟悉的名词和技术才能成为现实,有的,比如电脑,现在已经成为了我们日常生活中极其重要的一部分。

      量子力学是枯燥抽象的,因为整天都在推导、计算,而且没有经典的图景可以想象;量子力学又是唯美的,那一个个的方程式,揭示出了物质世界的一种美,一种理性抽象的美。祝愿基础理论学科能够一路走好。也希望人们能够越来越关心了解理论。

                                                                                谨以此文纪念刚刚过去的2005国际物理年


附注


薛定谔猫:
    薛定谔假设:有一只猫被关在盒子里。盒子里有一只瓶子,内有剧毒物质,如果瓶子被打开,猫就会死掉。瓶子是否会打开取决于盒中粒子的状态。而且,猫是否是死的,只有打开盒子才能知道。那么,在没有打开盒子的时候,猫是死是活?
    按照传统的理解,猫只能是死或者活的一种,即“非此即彼”。但是,根据玻尔等人的“几率”论,我们却可以得出这样的结论:猫既是死的又是活的。同一只猫在同一个时间同时具有活和死两种状态!这是违背常理的。薛定谔想借用这个例子来说明“几率”论的可笑。

- 作者: fmying 2006年01月8日, 星期日 09:31  回复(10) |  引用(1) 加入博采

花开在眼前
 
 花开在眼前
 韩磊
 歌名:花开在眼前
 演唱:韩磊
 作词:吴晓波,罗振宇
 作曲:莫凡
 纪录片《激荡1978-2008》片尾曲
 
 花开在眼前
 已经开了很多很多遍
 每次我总是泪流满面
 像一个不解风情的少年
 
 花开在眼前
 我们一起走过了从前
 每次我总是写下诗篇
 让大风唱出莫名的思念
 
 不知道爱你在哪一点
 不知道爱你从哪一年
 不知道爱你是谁的诺言
 不知道爱你有没有变
 只知道花开在眼前
 只知道年年岁岁 岁岁年年
 我痴恋着你被岁月 追逐的容颜

 花开在眼前
 已经等了很多很多年
 生命中如果还有永远
 就是你绽放的那一瞬间
 
 花开在眼前
 我们一起牵手想明天
 每次我总是临风轻哼
 更好的季节在下一个春天
 
 不知道爱你在哪一点
 不知道爱你从哪一年
 不知道爱你是谁的诺言
 不知道爱你有没有变
 只知道花开在眼前
 只知道年年岁岁 岁岁年年
 我痴恋着你被岁月 追逐的容颜
 
 不知道爱你在哪一点
 不知道爱你从哪一年
 不知道爱你是谁的诺言
 不知道爱你有没有变
 只知道花开在眼前
 只知道年年岁岁 岁岁年年
 我痴恋着你被岁月 追逐的容颜

很喜欢《激荡三十年》,很喜欢这首歌。在韩磊浑厚的声音中,似乎透露出了岁月的沧桑,和人到不惑后对岁月的回顾和反思,对点滴往事的感激。

- 作者: fmying 2009年07月15日, 星期三 23:31  回复(1) |  引用(0) 加入博采

linux系统备份迁移
      今天好好在宿舍呆着,突然被电话和MSN吵了,说组里的服务器出问题了,登录很慢,甚至连不上。唉,谁让我是管理员(之一)呢。只能去实验室了。
      到了实验室,经检测发现是DNS服务器出了故障,导致域名无法正确解析,所有外网网站无法登录不说,组里的服务器也一样,只要使用域名而不是IP就无法ping通,ssh连接也老出问题(用户信息都在DNS服务器上呢,DNS服务器兼作LDAP服务器和邮件服务器)。同样,邮件也无法发送了。这下可急坏了老板和我了。老板要发邮件没法发,要工作没法工作,自然着急。俺是被老板们那着急的样子逼急的。。。。。。
      由于俺没有进入服务器房间的权限,只能将另一个聋哑人叫了过来。他是学生,也是一个管理员。经他检查,发现是服务器硬盘的故障。在经历了半小时内宕机3次的痛苦之后,我们决定更换硬盘。为了那个硬盘,我们忙了6个多小时,第一次啊,sigh。。。。。。
      下面,给出更换服务器硬盘,迁移整个linux系统的过程,做个备份,也方便新手。
      工具:新硬盘,电脑,工具箱,救援盘(此次DNS服务器使用的是Fedora Core 8 i386版本)。
      步骤:
      1  如果老硬盘还可以稳定工作一段时间,就直接将新硬盘设置成从盘(slave)接到服务器上去。如果不行,就需要借助令一台电脑做中转了。鉴于半小时宕3次的经历,我选择了中转。
      2  将服务器的老硬盘设置为从盘挂到中转电脑上后,启动中转电脑,挂载必要的分区(我需要挂载的就是/boot和/ 两项了)。然后将数据复制到一个目录,如:
mount /dev/hdb2 /mnt
cp -ax /mnt/* /users/back/root
这是复制 / 的命令。其中-a表示--archive(存档),可以将原有文件原封不动(属主,组,修改时间,权限都保持不变)地复制到新目录下;-x表示only one file system,不知道是干什么用的。 -ax组合是网络上的帖子里推荐的,在此就一并使用了。
      3  记得保存硬盘最前面的512B内容哦:
dd if=/dev/hdb of=/user/back/grub.fc8 bs=512 count=1
硬盘最前面的512B包含两个内容:最前面446字节是grub,后面64字节是每16字节一组记录一个主分区的分区信息(就是分区表了,这也就是为什么主分区不能超过4个的原因),最后两个字节是结束码,一共512B。
      4  关闭电脑,换上新硬盘,启动后:
dd if=/users/back/grub.fc8 of=/dev/hdb
将老硬盘的分区信息和grub复制到新硬盘上,这样就不用再分区了。如果新老硬盘一样大小,那么分区就结束了,如果不一样大小,再用fdisk调整。像我的老硬盘是10GB,新硬盘是40GB,就要调整了,不然白浪费了30GB空间,不舒服。
      5  按照老硬盘的文件系统格式化新硬盘(我的全是ext3和swap):
mkfs.ext3 /dev/hdb1
mkfs.ext3 /dev/hdb2
mkswap /dev/hdb3
最后留了个swap分区。
      6  将备份的分区内容复制到新硬盘上:
mount /dev/hdb2 /mnt
cp -ax /users/back/root/* /mnt/
      7  针对自己的系统进行必要的修改,比如/etc/fstab。在FC中,/etc/fstab里有如下语句:
LABEL=/         /    ext3    defaults   1 2
可惜,我没有设置LABEL,于是改成
/dev/sda2     /      ext3    defaults    1 2
之所以是sda2,是因为在服务器上这个硬盘被认成设备sda。
同样,/boot/grub/menu.lst也要修改,将
root=LABEL=/
改成
root=/dev/sda2
总之,就是用设备号代替LABEL。
      8  运气好的话,这样就算结束了。可惜,我的运气不好,利用新硬盘启动后无法进入grub界面,于是,我们的救援盘就登场了。将新硬盘设置成主盘,用救援盘启动进入救援模式,然后在shell下输入命令:
grub --no-floppy
进入grub命令行,输入
>root (hd0,0)
>setup (hd0)
>quit
“>”表示提示符,不需输入。(hd0,0)和(hd0)是grub中的硬盘设备表示方法,hd表示硬盘,0表示第一个,hd0就是第一个硬盘的意思。(hd0,0)表示第一个硬盘的第一个分区,就是/dev/sda1,我的/boot分区。grub计数是从0开始而不是1开始的,据说grub2做了改动,变成从1开始了。不过我们现在用的还是grub。
root (hd0,0)表示将/boot分区设定为/dev/sda1,就是/boot目录内容所在的分区。如果/boot被并到 / 中,就直接设置成 / 的设备号。
setup (hd0)表示将grub安装到/dev/sda硬盘的MBR中,就是最前面那512B里。无法启动进入grub界面是因为grub启动出错找不到配置文档所导致,重装grub信息就好。现在重启,应该可以进入了,不行就再装一次。我就装了两次。

好了,至此系统迁移完成,可以正常运行了。我们之所以弄了6个多小时,实在是其中的大错误不犯,小错误不断。。。

- 作者: fmying 2009年07月10日, 星期五 06:34  回复(0) |  引用(0) 加入博采

脑袋里打架了。。。
最近不停地在python,bash,tcl/tk还有awk之间打转。用bash写简单的控制脚本,学习python,tcl和awk用于课题。bash倒还好,毕竟是我自己的默认shell,其它的可就倒霉了。刚看了tcl实例想尝试的,突然发现自己竟然一下不知道该用print(python & awk)还是puts(tcl)。虽然最后确定是puts并且得到了预期结果,可是还是心有余悸。

- 作者: fmying 2009年07月2日, 星期四 22:29  回复(0) |  引用(0) 加入博采

我和Linux
    总想说些什么,毕竟现在用Linux也有近5年的时间了。
    最早接触Linux完全是因为直博上了,老板要我学习Linux,学习Fortran编程。不过现在看来我是误会了老板的一半意思了。老板要我做的是学习基本的Linux应用,而我却一定程度上“玩“上了Linux。从最早什么也不懂,甚至连安装红帽WS 3都要打长途电话寻求“技术支持”,到现在可以自己看WIKI并一定程度上“自如”地配置ArchLinux,并且搭建一个基本的Gentoo Linux操作系统,期间也经历了不少的事情。现在打算把它写下来。
    一开始接触的自然是红帽。红帽的老牌,特别是在中国,是有目共睹的。大凡国内的Linux书籍,如果说到图形界面的配置的,基本凡举例必红帽,有些人甚至觉得Linux就是红帽。我一开始也是这样,除了红帽,其它的发行版本什么都不知道;除了按照默认的选择稍许加加减减装个红帽Linux到我的笔记本上,后续步骤一概不懂,甚至连Fortran 77 编译器都要我一个同学帮我装,网卡驱动没有也不知道怎么弄,多媒体之类的就更不谈了。当时在想:Linux能干什么?能听歌看片么?能写Office文档么?能。。。。。。
    我说到的那个同学接触Linux比我早很多,早在大二的时候他就叫我接触Linux了,不过当时没动,原因有三:第一,惰性使然;第二,没有电脑;第三,在我的想象中,Linux应该和DOS一样,全部敲命令,高深莫测,而我是一个才学会Windows基本操作,知道怎么用鼠标去干活的人,能行么?(大二才学会Windows基本操作,我想我也一定程度上算是个少数派了)而在他帮我安装红帽下的编译器的时候,他告诉我说,别用红帽9和WS 3了,他已经用Debian了。Debian的好处是:只要有网络,一张软盘就可以搞定一个擦作系统。我当时真的是懵了:天啊,多高深啊。
    刚装Linux的时候什么都不懂,一些基本的命令更是一头雾水。于是,在那个同学的推荐下,去图书馆翻看UNIX书籍,看到了AT&T的System V手册,拿来看了一下。基本命令的操作终于突飞猛进了。
    后来,在实验室有了自己的电脑,可以放心大胆地尝试自己的Linux了。于是,我选择了那个“神奇而又高深”的Debian。在看了几遍Linuxsir Debian分站的介绍后,感觉自己对配置中文Linux桌面有个了解了,开始动手。不过刻盘后安装时发现,自己还是记不住,不懂。还好,记得有zhcon这个工具和w3m,一边上网,一边apt-get install,终于将一个KDE桌面折腾出来了。这是自己第一个中文Linux桌面,使用KDE和fcitx,中文字体选用uming。当时Debian的稳定版还是sarge(06年的时候),说句实在话,配置个中文桌面真的比较烦,呵呵。
    有了自己的Linux桌面后,学校BBS的UNIX板块(后来变成Linux版)就成了我常去逛的地方。一天,有人发帖说赠送Ubuntu 5.10(Breezy)的LiveCD光盘,于是我要了一张。尝试后觉得很不错,网卡能自动识别了。只是中文支持还不是很理想,于是,只是尝试了一下。不过从此知道了一个新的基于Debian的发行版本:Ubuntu。还知道作为一个公司的产品,Ubuntu是免费获取的,并且可以Shipit(网上索取免费光盘)。
    终于,随着Ubuntu 6.06(Dapper)的出现,网上好评如潮,我也按捺不住,装了一个。由于有Debian的基础,因此轻车熟路。Dapper果然不辜负网上的评价,中文支持相对以前非常出色,硬件支持也不错。就这样,从那时起,我一直使用Ubuntu,直到7.04的推出——因为硬件开销太大,我的笔记本承受不了了,不得不回到Debian,不过还是在一个家族中。
    期间虽然也尝试过Gentoo,不过因为其复杂的USE FLAG设置,一直没能很好地配置起来,直到现在也是。这是我使用Linux至今的——一个遗憾吧。好在后面还有机会,总是会成功的。openSuSE也用过,内存扛不住,放弃了。Fedora压根就没能在我的笔记本上装上过,检测硬件的时候就挂了——没法获取硬盘信息。
    在使用Ubuntu期间,我有幸认识了一个学长,一个比我高一级的计算机系学长。他在学校里开了一家公司,从事Linux软件服务。他建了一个Linux升级服务器,提供Ubuntu和openSuSE的升级和软件安装服务,需要管理员。我就去揭榜了。虽然发现自己其实什么也不懂,但是和他们在一起,我知道了一些Linux管理方面的知识,并且也提高了自己搜索HOWTO,寻求帮助的能力。这对我今后架设服务器很有帮助。事实上,我在出国前能够帮助系里架设基于Linux的论坛和网站服务器,就是因为这一段经历。
    出国后,买了新笔记本,终于回到了Ubuntu的怀抱。只是,一些软件出现了问题,加上Debian当时糟糕的声卡驱动,迫使我离开已经非常熟悉的Debian类操作系统,转投其他发行版本。2GB的内存,运行openSuSE是足够了,只是openSuSE的速度让我不敢恭维,打开某些程序的一瞬间竟然还卡壳一下!Fedora也不知道怎么回事,在我回国探亲的时候,无线网卡驱动又横生枝节。于是,这两个发行版本也被踢了出去。发现Debian的驱动改进了之后,我曾一度使用Debian。但是陈旧的软件让我痛苦不堪,特别是OpenOffice。倒不是我要用OpenOffice编写文档,而是对MSOffice的兼容性,OO 3比OO 2.4要好。在其他发行版本都换到OO 3的时候,Debian还是2.4,怎么能让我不痛苦?但是,除了自己安装之外,还有别的易用的发行版本么?
    这时,一个新的发行版本——ArchLinux进入了我的视线。在Linuxsir上逛的时候发现,不少人都是用Arch的。Arch是什么?带着这个问题,我看了一下Arch的WIKI,并被Arch吸引。安装之后,由于英语阅读能力提高不少,因此直接用w3m浏览英文网站寻求支持,zhcon之流都省了。Arch果然不错,程序的响应速度快,而且内存消耗比Debian还小,软件很新。Ubuntu等还在2.6.27的内核的时候,Arch已经到了2.6.28了。这样,终于找到了一个适合自己的版本——ArchLinux,我也成了一个Archer了。
    其实,现在想来,自己一路上走来的不少烦恼都是自找麻烦。比如,软件太旧,自己下套件就好,不一定非要换发行版本。只是自己也不知道怎么回事,就是喜欢尝鲜,就是喜欢变。连桌面也一样,一段时间不换就难受。真的是自讨苦吃!
    虽然自己04年才买了第一台电脑(也是第一台笔记本),之后就直博并开始学习Linux了,上手的基础差。不过也正是因为基础差,才能较快地适应Linux的风格并最终选择Linux作为自己的主要操作系统,因为受Windows的影响很小,可塑性大。
    觉得Linux是一个很棒的东西,Linus Torvald和他的自由软件哲学也挺不可思议的。当时很多人都不看好Linux,认为很快就会消亡,因为没有一个强有力的精英队伍去维护它,而是大家修改,感觉一盘散沙,乱糟糟的。但是,Linux却生存了下来,虽然自己内部也有很多问题。我不想说Linux冲击微软之类的话,因为Linux现在还没这个资本。看到一个统计数据,10台电脑里,9台是Windows,一台不到一点是MAC OS X,剩下那一点才是Linux。但是Linux的存在本身就是一个奇迹,因为它证实了开源和自由软件是可行的方案,就好像LFS让无数人头疼,但是ArchLinux脱胎于LFS这点却无疑证实了LFS的可行性一样。希望Linux和那只小企鹅TUX能继续走下去,并越走越好。

- 作者: fmying 2009年03月18日, 星期三 05:40  回复(0) |  引用(0) 加入博采

再次尝试Gentoo失败
    今天尝试了一下Gentoo,结果又以失败告终,而且这次输得比较惨。
    事情是这样的。一直以来就想尝试Gentoo,虽说自己嘴上说因为太麻烦放弃了,但是心里始终不服气不甘心。加上Archlinux虽然不错,但是要命的scim却不稳定。虽说平时用scim的场合不多,编程写文档的时候确实不用scim,但是scim的崩溃却还是挺要命的——甚至能让你的电脑死机!这不,问了一下学校里一个用gentoo的老鸟,开始新一次的折腾了。
    一开始还算顺利。装入Gentoo 2008.0 minimal CD,启动进入livecd界面,没有问题,网卡也正确识别了。我的网卡是marvell 的网卡,一开始还担心Gentoo不认的,这下好,没问题了。DHCP正常,磁盘准备正常。该下载stage3了。考虑到2008.0的stage3比较老旧了,于是弄了个autobuild里面2月25日刚打包的stage3。解压,然后获取portage,一切正常。make.conf编辑正常。chroot后就该装kernel了。kernel的菜单和我以前装2005.1和2006.1的时候有些不同,而且加入了Core 2的选项,不错。make && make modules_install没问题。bzImage也找到了。由于是双核CPU,设置了MAKEOPTS="-j3"后,速度不错。一路绿灯直到安装结束。
    重启动后发现我编译的内核不支持1280*800的宽屏FrameBuffer,0x361没法显示。只能切换到不开vga选项。当时想,反正装完后在图形界面下也没问题。接下来,两大问题让我烦心了。第一,vim编译不通过。第二,我在装Gentoo之前把数据移到了一个ext4格式的移动硬盘上,貌似现在Gentoo的内核对ext4还是有点问题,抑或是我自己编译的问题。感觉内核中设定了ext4支持,命令中也有mkfs.ext4,为什么没法挂载ext4分区?我的数据可全在上头啊!!!!
    vim编译不了,让我怎么工作?我最熟悉的编辑器就是vim了,emacs刚刚开始学,还很不熟练。数据没有,一堆配置文件都在上头呢,还有一些工作数据,可丢不得啊。
    无奈之下,放弃Gentoo,回到Arch。。。。。。
    小插曲:这次安装Arch没有全装Gnome包,经过pacman -Scc清理,根分区4.3GB,包括一个lxde轻量级桌面环境。感觉挺不错的。试试看能不能将lxde下的蓝牙和自动挂载搞定,可以的话,也可以考虑迁移到lxde下,毕竟Gome相对于lxde来说还是大了不少。只是不知道我喜爱的黑色主题在lxde下还能不能使用了。

- 作者: fmying 2009年02月28日, 星期六 05:49  回复(1) |  引用(0) 加入博采

ArchLinux的vsftpd和acpid启动报错原因
    我的ArchLinux现在运行组件正常,只是在启动的时候有两个FAIL让我不舒服。由于ArchLinux在启动后会从屏幕上抹去所有启动信息,这对于我跟踪确定报错模块十分不方便。不过一切组件运行均正常。诧异之下,决定寻找原因。
    首先是查找报错模块。由于发现报错信息总不会早于sshd,vsftpd模块加载,因此确定报错模块肯定是在从这两个模块开始的某个。当时我的/etc/rc.conf中的DAEMONS如下:
DAEMONS=(syslog-ng crond hal dhcdbd networkmanager portmap fam cups sshd vsftpd !network !netfs acpid alsa bluetooth gdm)
于是可以肯定,出错模块之可能是如下几个: sshd,vsftpd,acpid,alsa,bluetooth。gdm一直没有问题。因为最后一个信息是DONE,即gdm正常启动。于是,打开/etc/rc.d下的可疑模块启动文件,发现bluetooth没有报错模块,于是排除。将剩余模块的报错依据设置成打印到屏幕,然后重启,发现sshd和alsa正常,vsftpd和acpid出问题。终于,问题模块找到了。
    接下来开始分析。两个模块的出错依据其实一样。下面只给出vsftpd的启动部分代码:
vsftpd:
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
PID=`pidof -o %PPID /usr/sbin/vsftpd`
case "$1" in
    start)
  stat_busy "Starting vsftpd FTP Daemon"
  if [ -z "$PID" ]; then
          /usr/sbin/vsftpd &
          PID=`pidof -o %PPID /usr/sbin/vsftpd`
          if [ -z $PID ]; then
                  stat_fail
          else
                  add_daemon vsftpd
                  stat_done
          fi
  else
          stat_fail
  fi

可以看到,两个daemon的报错依据是:如果启动后能检测到PID,则说明进程顺利通过,反之则报错。但是我的vsftpd工作正常,能检测到PID啊。于是,我尝试在vsftpd的启动文件中加入一句:
          /usr/sbin/vsftpd &
          sleep 1
          PID=`pidof -o %PPID /usr/sbin/vsftpd`
在启动和检测中加入一句sleep 1用来延迟检测。重新启动后,问题解决。同时,在启动过程中也发现了一个问题:acpid启动时间非常早,远远早于我设定的启动顺序。于是,acpid的问题也解决了——在我设定它启动的时候,其实它早已启动了。将DAEMONS中的acpid禁掉,启动的时候终于全部是DONE了。只是到底为什么acpid会自动启动,还是不清楚。不过从acpid之后跟的是hal来看,应该是hal的依赖问题。
    这次尝试让我发现,其实修改启动文件并不是我想象中的那样。以前使用的是Redhat,Debian之类的发行版本。尤其是Redhat。虽然自己的桌面系统主要是Debian流,但是课题组的计算服务器几乎清一色都是Redhat EL(除了一台使用SuSE EL 9)。当时看Redhat的启动文件发现一头雾水,于是就懈怠了。从此再也没有管过这些配置文件。今天发现,倒也不难——除了自己的系统重启了好些次之外。另外,这篇博客也算一个备份,今后再有这些问题就有据可查了,呵呵。

- 作者: fmying 2009年02月19日, 星期四 06:41  回复(0) |  引用(0) 加入博采

Arch问题基本解决
    周日装了一个archlinux。在发现dbus用户名和组名没有自动加入后,就手动加了一下:
useradd dbus ; groupadd dbus
结果,系统装完后一堆的问题。
    首先是networkmanager怎么都启动不起来,后来左改右改改配置文件,终于出图标了,可是……竟然不能设定无线网络!怎么样都解决不了。最后一怒之下删了networkmanager,改用命令行配置有线网络,用rutilt配置无线网络。-_-||
    电源管理也有问题。装了gnome-power-manager后,将自己的用户名加入power组,应该是可以的了。但是在Shutdown菜单中没发现有suspend选项。怎么回事呢?查找帖子,改配置文件,总算得以看到了。但是,当我点击Restart的时候,却发现迟迟没有反应。奇怪的是,用户log out却没有问题。没辙了……
    蓝牙问题同样头疼。一开始是bluetooth的DAEMON启动起来了,蓝牙模块也打开了,但是怎么也无法在GNOME下看到图标。后来也是在修改了一堆配置文件的情况下才看到了图标,但是依然无法顺利添加设备(我的Sony Ericsson w610c手机)。当时自我安慰说,还好蓝牙功能基本不怎么用。
    随后,发现自动挂载U盘又出了问题!天啊,那可是和网络功能一样时常要用的啊!赶紧折腾,无功而返。最痛苦的是,系统已经检测到并正常识别了U盘的基本信息,却无法挂载!
    今天下午,偶然的机会让我想到了原因:dbus。由于自己添加的dbus的uid和gid都是1002,属于普通用户范围。而系统管理的uid和gid号都很小。比如storage(存储设备组)的gid是95。于是,赶紧上网找到了dbus的uid和gid。鉴于自己的系统被改了很多文件,有些文件自己都不知道在哪里了,干脆,一劳永逸,重装了吧……。重装完之后,在设定dbus的uid和gid的时候,将值设置成了81(网上查到的)。问题迎刃而解了。现在的系统,剩下的问题就是:蓝牙无法传输文件,有两个DAEMON启动的时候显示FAIL而不是DONE。其它目前还没有什么问题。
    其实,这些问题都有一个共同点:和硬件管理有关。网络是网卡管理,电源是电源管理,蓝牙是蓝牙设备的管理,而U盘自动挂载,就是移动设备的管理了。由于dbus的gid的问题,使得有“dbus”组的用户实际上无法管理dbus可以管理的设备。而一点dbus失效,基于dbus的hal也就无法正常工作了。GNOME等桌面环境中,对硬件的控制是通过hal进行的。于是,一个dbus的gid问题,就演变成了很多表观问题了。
    把这篇帖子写出来,是给自己做个备份,同时也希望和我一样的菜鸟们注意一下,不要走不必要的弯路。

- 作者: fmying 2009年02月18日, 星期三 05:27  回复(0) |  引用(0) 加入博采

ArchLinux更正
       昨天写了一篇ArchLinux的体验。今天重新看了看wiki,发现有地方错了。于是重新试验了一下arch,解决了一些问题,可也出来了新问题。

       中文的问题解决了。将locale设置成zh_CN.utf8后,中文显示没问题了。只是所有的命令输出也多了不少汉字,有点不适应,特别是在console下,一堆的方块,完全不知道在干什么。还好不是第一次装了,前期工作轻车熟路,直接安装好了一个可以用的GNOME系统。

       软件包依赖的问题解决了。用pacman -Rsn就可以了,而不是pacman -Rdn。另外,用abs树自己编译软件包的时候,可以用makepkg -s来安装依赖包。

       networkmanager的问题出来了。昨天好好的,今天再装的时候竟然怎么也弄不出图标来。networkmanager没法工作,怎么方便地切换网络啊。查找了一些forum后,总算可以了,但是——只是有线网络可以,无线网络依然不能设定。无奈之下,装了一个wifi-radar,总算也一定程度上搞定了。

      蓝牙问题依然头疼。Google上搜索也找不到相应的帖子。好像根本没有这个蓝牙功能一样,尽管打开了蓝牙开关,但是系统就是无法识别。不知道应该怎么办了。

      不过相对于Debian来说,Arch还是有更好的地方的。虽然麻烦,但是得到的是更高的可定制性,当然对于初学者来说,可定制性的提高意味着易配置性和易用性的降低。ArchLinux的速度总体还是很不错的。使用的时候负载也比较小(因为杂七杂八的软件装得少嘛,呵呵。即使pacman -S gnome,也是一个基本框架,连gnome-terminal和gdm都没有)。看来昨天博客上的话要食言了,可能真会变成一个archer呢?Who knows.

- 作者: fmying 2009年02月16日, 星期一 03:20  回复(0) |  引用(0) 加入博采

体验ArchLinux
      周五晚上看了好久archLinux,想到Linuxsir上有很多人用arch,并说arch好用,想试试看。于是,周六(昨天)刻了一张FTP网络安装的盘,开始体验。

      由于之前看过一些wiki上的官方安装资料,因此开始安装的时候并不复杂。还以为arch挺好的呢。定制性强于debian,又没有Gentoo那么吓人的USE Flag(Gentoo的定制性和它的USE是分不开的,不过结果就是:几乎什么软件都有自己的一套USE参数,有些参数还不在标准的use.desc文件中,让我不胜其烦,最终,放弃)。不过,后来就发现了,原来吐血的在后面!

      光盘安装arch和Gentoo一样,就是一个基本系统,启动进入后就是和DOS一样的黑框白字。好在有FrameBuffer,看起来还是很舒服的,一屏显示的内容也够多。在安装的时候一些基本的时区键盘之类的都弄好了,网络也OK,该装Xorg了。发现不知道怎么用hwd生成xorg.conf!只能马上查wiki(在console下用links上英文wiki,估计现在也就我们这些装Unix类操作系统的人会干了……-_-|)。弄完Xorg后装图形界面,一开始选的是KDE4,发现启动速度好慢……估计默认开了太多特效了。想装networkmanager,发现没有KDE界面的,晕!原来这个软件包已经从二进制仓库中去掉了。算了,换GNOME吧。接下来声卡,networkmanager,cups一堆问题。弄了一个下午终于基本搞定。最后,死在蓝牙上了……竟然没找到wiki上关于蓝牙的安装教程!怒了!算了,换回debian吧……终于,世界清净了。

      首次安装Arch以失败告终。不过,安装Arch还是给了我不少的收获。首先,Arch的rc.conf记录了系统的很多基本设置,并且通过设置MODULES和DAEMONS行可以很好地控制自己系统启动加载的服务和模块,达到高度的定制。其次,由于Arch的文件结构是*BSD的,通过Arch也可以窥知BSD的文件结构。感觉*BSD的结构还是很干净的,非常容易查看。rc.conf如同Gentoo中的make.conf一样,是Arch设置的核心。键盘,网络,主机名等等都在里面设置。Arch良好的定制性和安装上相对于Gentoo的易用性给了我很深的印象。今后有机会的话,我想我还是会在自己的工作机器上安装Arch的。工作机器不同于自己的桌面机,需要的功能,特别是多媒体功能会相对较少,网络也固定,不需要networkmanager,也没有bluetooth的烦恼,应该可以打造一个速度更快,更轻的Arch系统。

      最后,想说一下Arch的不足,当然,只是我个人的看法。首先,是中文显示的问题。我使用的是英文界面,因此中文显示效果很糟糕,字体太粗,有时甚至有大小不一的情况出现。而这点在Debian/Ubuntu中已经得到了很好的解决。在英文界面下即使用sans字体也不存在中文显示的问题,而Arch中就有这方面的缺憾在。之所以要用英文界面是因为老外不懂中文,毕竟现在身在瑞典。另外,不知道为什么,KDE的networkmanager组件knetworkmanager被清出了二进制仓库,好像只能从ABS树中下载源代码包自己PKGBUILD。不知道Arch的开发人员的理由是什么?毕竟有个方便的二进制包对初学者来说会好很多。至于自己打包,还是让老鸟或者对机器速度有偏执的人去弄吧。第三,pacman的功能我还没有完全搞清楚,但是似乎不能像Debian中一样,用一个简单的apt-get autoremove就可以轻易地将很多不再需要的组件去掉。记得从KDE4迁移到GNOME的时候,好像残留了不少的KDE包,但是用pacman -Rdn kde只删除了19个包,而我安装的时候是肯定不止19个的。pacman -Rdn能保证所有的不需要的包都被删除了么?我不清楚,还希望老鸟指点一下。

- 作者: fmying 2009年02月15日, 星期日 07:29  回复(0) |  引用(0) 加入博采