见到了Herbert Xu!

前几天突然接到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

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