Archive for October, 2007

见到了Herbert Xu!

October 30th, 2007

前几天突然接到Bryan Wu发来的email,说Herbert Xu要到西安了,问能否安排见个面。当时看了感到很惊讶,虽然早就听说Herbert要来中国,可没想到他已经到了,更没想到他还会来西安!前一篇文章中已经提到久仰Herbert大名,能见到其人那真是再好不过了。真是一个巨大的惊喜!

Herbert上周周末就到西安了,和他在电话中约定好定于这周二来我们学校给我们做个讲座,Herbert很爽快地就答应了。如约今天请他到我们学校这边过来,下午提前去了实验室。没想到Herbert到了之后才给我打电话,还让他因此在学校门口等了好一会儿。因为在Kernel Summit 2007的合影上见过Herbert,所以能一眼认出他来。;) 见到Herbert的第一感觉就是,比照片上还要年轻!

把Herbert带到我们小组的实验室,和我们大家围坐在一起聊了起来。Herbert其实很健谈的,问他的问题他都能够详细解答,而且还能展开话题。一谈起TCP/IP来他就滔滔不绝,听他这么一说我就感觉自己的计算机网络就相当于没学过!-_-!谈话中,Herbert谈到了他丰富的工作经历,他说他在做kernel之前还做过卫星网络,写过IPSec……

不知不觉中,时间就过去了。快到4:30时就带Herbert去教室。到了那一看,整个教室坐满了人,其中还有一些大一的年轻人。我们稍作准备就开始了讲座。我简单介绍了Herbert之后,Herbert就正式开始讲了。这时我才注意到,Herbert特意把外套脱了,想给大家看一下他参加内核峰会时的T-shirt,以此激励更多同学参加Linux内核开发。这么冷的天,还能这么心细地照顾大家,真的很佩服他!

在下面一个多小时的时间里,Herbert向我们详细讲述了内核开发的历史,内核社区的运作,和他自己的一些经验。这虽然是Herbert第一次用中文做讲座(后来听他说的),但讲得确实非常精彩!讲座生动而且平易近人,一些专业术语解释得很清楚,其中还不乏一些有趣的比喻,老师和学生都很称赞!陈老师还夸他讲课水平不低于大学里的老师。

Herbert的讲座给我的最大收获有两个:一是,要多做一些发行版开发的工作,Herbert自己就是这么走过来的,这话分量自然不轻。好好记一笔。二是,做开发,不仅仅是内核开发,最关键的还是多读代码,读不同人的代码,读得多了自然就会对这种庞大的项目得心应手。调试程序也就不用依赖gdb这样的工具,只用printf就够了。他现在调试程序,包括内核,就靠backtrace信息和额外打印的一些变量值就足够了!如果你做不到这一点,那只能说明你对代码还是不熟悉,继续读代码吧!这是Herbert的亲身经验,一定要学习!

Herbert讲完后我还趁机提两个问题,一是问他如何处理这么多邮件,二是问他如何管理patch。原来他和我一样是用mutt。不过说到管理patch时,Herbert说他维护的crypt子系统patch比较少,基本上都人工解决可能的冲突,用git就足够了。这也说明了另一点,牛人们都追求简单,有些复杂问题是我们把它想得更复杂了!其实很简单的处理就足够了。

讲座完后我们还邀请Herbert一起吃饭。和他聊天时发现,Herbert不仅在内核开发方面经验丰富,而且对世界历史,中国历史,数学等知识也很有见解,谈到中国政治时他比我们这些土生土长的中国人知道得还多!崩溃……他知识太渊博了!佩服佩服!Orz

牛人之言不我欺!与牛人一席话,胜读十年书。;)

明天就能见到Herbert Xu了!

October 29th, 2007

呵呵,传说中的牛人,以前都是在网上听说其大名的,记得第一次去Herbert Xu的主页还是在加入内核邮件列表之前,那时就已经很佩服他了。他对Debian作出了很大的贡献。进了内核邮件列表之后,对Herbert Xu的工作有了更多的了解。他是一个资深的内核开发者,是网络领域我所知道最厉害的华人了。他负责维护Linux内核的Crypto API部分,他维护的git tree是:

http://www.kernel.org/git/?p=linux/kernel/git/herbert/cryptodev-2.6.git;a=summary

Herbert Xu应该是Kernel Summit的常客,今年的亮相可以在这里看到:

http://lwn.net/Articles/248891/

更让我们佩服的是Herbert Xu还是一个很爱国人,当他听说Debian里要设定台湾为Taiwan,而不是原定的Taiwan, Province of China时,他就愤然离开了自己工作已久的Debian社区。下午在和我们系主任聊时,他也对此颇加赞扬!恩,牛人这一点也值得我们好好学习!

啥都不说,就得着明天一睹牛人风采了~!

虚拟机啊,虚拟机~!

October 28th, 2007

前一段时间不怎么走运,配了两个虚拟机都没配好,相当郁闷。

这两天否极泰来。Qemu在Fengguang Wu的指点下终于又跑起来了,原因还是配置内核时一些选项没有设置成y,郁闷。相当不容易啊,这次说什么不能不备份了,也顺便上传到网站上一份,可以在<-这里->看到。顺便说一句,FC7自带的虚拟机管理器不错,不过调试内核还是不能用它。没事玩儿的时候用用不错。而且FC7把Xen也给集成了,很强悍,可惜我还不知道怎么用它……

另一个虚拟机是UML,可能有不少人还不知道它,它其实是在用户空间的运行的Linux,把Linux内核放到一个用户空间进程里来跑。这两天看它的源代码时发现,其实它的中断什么的全都是用用户空间的东西模拟出来的。UML其实不需要多麻烦的配置,关键是我正好赶上UML子系统出问题(我用的是非稳定版内核),去UML用户邮件列表上发了N个邮件问Jeff,然后加了三四个patch之后,UML才总算运行起来。使用当前Linu-tree的同学可以试一下Jeff和Al的补丁[1],以及Al的另一个补丁[2],加这三个patch之后UML就可以顺利运行了。

UML其实挺好用的,而且编译迅速,以后就准备用它来测试内核了。现在一个很关键的问题是,虚拟机和主机之间的通信问题。Qemu以前弄好过,可现在又不是怎么弄了。UML还没有思路。看来又得折腾一阵子了……

[1] http://marc.info/?l=linux-kernel&m=119332492222601&q=raw

[2] http://lkml.org/lkml/2007/10/27/253

也许(汪国真)

October 27th, 2007

也许,永远没有那一天
前程如朝霞般绚烂
也许,永远没有那一天
成功如灯火般辉煌
也许,只能是这样
攀援却达不到峰顶
也许,只能是这样
奔流却掀不起波浪

也许,我们能给予你的
只有一颗
饱经沧桑的心
和满脸风霜

Plan For Next

October 26th, 2007

The best way to predict the future is to invent it.
- Alan Kay

虽然最近已经被找工作已经弄得够烦了,可也要坚持继续学习,坚持“两手抓两手都要硬”的原则。^_^…

先给自己制定一个Todo-List,以免失去大的方向。

1. 接管hubackup,在它的基础上进一步完善,争取做成Gnome下最好的备份工具。

2. 修复UML中的几个bug,刚发现的,其中一个还不知道如何补。这完成后准备用UML搭建调试环境。

3. 做一个实际的内核项目——SwapoutClustering,足以当毕业设计了,paper还也可以乘机发一把。;-)

4. 继续目前参与的开源项目,并着手准备参与valgrind,haiku,pcc这三个我很看好的项目。

5. (远期计划)自己写一个可以跑的内核。(以前写过一个残废的)

6. (远期计划)自己写一个可以用的C编译器。

7. (更远期计划)自己设计一门编程语言,并写出其编译器。

最后三个近期可不做详细考虑。

Cheers!

深入理解Linux内核构建系统(一)

October 25th, 2007

Linux内核编译命令

作者:西邮 王聪

{做人要厚道,转载请注明出处!}

make tags
生成tags文件,供浏览代码使用。
make cscope
生成cscope索引文件,也是为了方便浏览源代码。

make oldconfig
在旧的.config基础上生成新的.config,非常有用。
make silentoldconfig
同上,但比较安静。;)
make defconfig
生成包含全部默认选项的.config文件。
make allyesconfig
生成包含全部选项的.config文件。
make allnoconfig
拒绝全部选项。
make randconfig
随机选择一些选项,一般供开发者测试使用。
make {config|xconfig|gconfig|menuconfig}
手工选择选项,只是用户界面不同,比如xconfig和gconfig都是图形界面的。

make
默认编译。
make bzImage
编译生成压缩的内核二进制文件,一般你用到的是这个。
make vmlinux
编译生成纯二进制内核文件。
make modules
编译生成内核模块。
make modules_install
安装生成的内核模块。
make {bzdisk|fdimage|isoimage}
编译生成启动软盘镜像,或光盘镜像。
make install
安装编译生成的内核文件,包括设置你的Lilo或Grub。
make all
等价于vmlinux+modules+bzImage。
make rpm
构建内核rpm包。
make foo/bar/foobar.ko
编译单个内核源文件。
make headers_install
安装内核头文件,默认安装到usr目录。
make M=some/sub/dir
编译一个指定的目录。
make O=/path/to/some/dir
把编译过程中生成的文件都放到指定目录中去。
make C={1|2}
用sparse检查内核代码。
make V={0|1|2}
控制编译过程中输出信息的多少。

make help
列出所有的make目标及其相关描述。
make kernelversion
输出Makefile里读到的内核版本信息。
make kernelrelease
输出内核发行标识。

make {rpm-pkg|deb-pkg|tar-pkg|targz-pkg|tarbz2-pkg}
构建{rpm|deb|tar|tar.gz|tar.bz2}格式的内核包。

make {htmldocs|mandocs|pdfdocs|psdocs|xmldocs}
生成{html|man|pdf|ps|xml}格式的内核文档。

make clean
清理生成文件,但会保留.config和一些模块文件。
make mrproper
清理全部文件,包括.config和一些备份文件。
make distclean
在make mrproper的基础上还清理编辑器可能生成的备份文件,patch的rej文件等。

Linux磁盘使用分析

October 23rd, 2007

以前分析都是用df和du,突然间发现了一个巨好用的图形化工具——磁盘使用分析器,英文名叫Baobab。看看下面的截图就知道它有多么友好。

经过仔细分析,发现/tmp目录下的某些cscope文件居然占据了很多空间,马上rm -rf掉。结果根分区的使用率一下从74%下降到60%。妈呀,虚惊一场。

Been there, done that…

October 22nd, 2007

在crquan的帮助下,总算找到了自己所有汇入Linus内核树的补丁了。可以在这里看到:

http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git&a=search&h=HEAD&st=author&s=xiyou.wangcong%40gmail.com

数了数,才十一个。印象中应该比这多,貌似被Andrew拒了几个,-mm树里似乎没了。看来还得努力啊,以后尽量不做clean up这种工作了。得做点儿实际的东西了~~

加油~!我们还刚刚开始~!^_^

vimpress的几个不爽之处

October 21st, 2007

自从老大上次推荐vimpress之后,就尝试用vimpress写了几次博客。可是用了之后发现,其实很不爽。原因如下:

1. 仅支持一个博客的撰写。因为我还要编辑xiyoulinux博客,也想用vimpress,无奈vimpress配置里只能记录一个blog的帐号。

2. 不支持草稿。虽说可以用vim保存到本地,但有时也想保存草稿到服务器,可惜vimpress不支持。

3. 编辑功能不完善(?)。好几次用的时候,BlogOpen之后再BlogSend,结果和没编辑一样~!费解中……

我个人心目中理想的功能应该是:

1. BlogList ALIAS

列出ALIAS指代的博客上的文章。ALIAS可以在配置文件中指定,对应帐号也应该在里面。

2. BlogEdit abc@ALIAS

编辑ALIAS博客上的ID为abc的文章。草稿或许应该有另外的表示方式。

3. BlogSave

把当前正在编辑的保存为草稿,如果是新建文章的话。否则就应该直接保存到原文。

4. BlogNew ALIAS

在ALIAS博客上撰写一篇新文章。

5. BlogPublish ALIAS

把当前的文章发布到ALIAS博客上去。

有兴趣的同学可以根据上面的建议给vimpress打补丁,然后提交给作者。

喝酒

October 20th, 2007

最近真是闲得不行了,居然连着三天晚上都喝酒了。。。

前天,和新浪的唐僧舍得一起吃饭,陪大家一起喝。

昨天,和高中一个铁哥们出去玩,回来兴致不错,又喝了瓶酒。

今天,眼看就要是金经理的小金一下子跌了下来,又陪他喝了瓶闷酒。

不行,这样下去不行~!我要好好学习,天天向上~!

好,从明天起,积极参加各种招聘会,专挑考C语言的笔试面试去,考上给西邮的同学占个位,排挤一下交大的,打击一下面试官。至于名字嘛,要是有xxx市N日游就填自己的,否则就在手机上随机一个美女的名字填上好了。恩,我看行~!

葡驻京办ICP备07006283号