陈怀临:闲聊Kernel Engineer的境界

from 墙外楼 http://www.letscorp.net/archives/20820?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+letscorp%2FaDmw+%28%E5%A2%99%E5%A4%96%E6%A5%BC%29

http://feedads.g.doubleclick.net/~ah/f/ctbn5ii4cillfbvbd8tai5qk0k/300/250?ca=1&fh=280#http%3A%2F%2Fwww.letscorp.net%2Farchives%2F20820

陈怀临注:这几天在新浪微博乱喷。整理一下,弟兄们提提意见。。。许多观点不一定对。就是闲聊呀。。。

我来瞎谈一下Kernel Engineer的几个境界。瞎谈呀,弟兄们别当真。

(一)

1. 喜欢OS。别的啥也看不上。
2. 读kernel代码,每天特来劲。饭桌上特牛逼:-)
3. 觉得自己啥也不懂,看了就忘,特沮丧。
4. 玩板子,特来劲,饭桌上具牛逼。

(二)

1. 开始谁也看不起,觉得做网络的其实就是大傻。 做Driver的其实就是脑残。
2. 喜欢做芯片的,特别是做CPU的。会开始补充体系结构的知识。
3. 发现bus很重要,但大多数人不懂。
4. 慢慢往硬件上靠。

(三)

1. 轻微自闭症倾向开始。会在办公室贴时序图,die图,觉得漂亮。
2. 会好奇做编译后端。发现做编译的人其实都不懂编译。
3. 发现绝大多数人不会调程序。
4. 很奇怪身边的傻子们如何混到工作,而且一个个还不知道自己特傻。
5. 很痛苦ing

(四)

1. 价值观开始改变,Open Source里的大腕才是心目中的Hero。其他的都看不起。自己的老板,老板的老板基本上都不在眼里
2. 天天琢磨如何在Open Source做贡献,而非在自己的公司做贡献。
3. 上班就是混。自己做的东西公司的人基本上不懂。

(五)

1. 狂喜欢写汇编,而且特意从来不加注释。
2. 经常看着2,3行知道有错误的priviledge的代码但不知道哪里有错,感叹网络工程师用GDB还不会抓bug,可见智商有多低
3. 最怕的不是crash,而是板子的LED不闪了,系统死了。

(六)

1. 当一个晚上去调 5 块板子,每个板子都是不同的CPU的时候,离崩溃已经不远。
2. 世界上最难的不是调厂商开发板子+自己的kernel;也不是自己的烂板子+linux;而是自己的烂板子+自己写的烂kernel。没有技术底线就与一个女人没有道德底线一样,不是可怕;而是噩梦。

(七)

1. Kernel工程师在某一天突然会害怕。对不确定性(undeterministic)的无法控制(板子不稳定,dram不稳定,kernel不问题)
2. 会开始往上做,看stack。发现网络的精华:代码就是一堆callback指针;实质就是几个Queue。才突然了解为什么大傻都能做网络工程师。

(八)

1. 会发现网络最难的不是转发,而是控制。
2. 会特别羡慕能把网络设备config的特溜的Testing工程师。Kernel工程师通常喜欢手快和对设备熟悉的,不喜欢大傻。
3. 总是试图建立一个完整的网络Picture,但感觉不好,很喜欢去数据中心看看。

(九)

1. 感觉网络不难;Kernel也不难;还是集成最难。
2. 似乎有一天还是觉得软件比硬件头绪多,更难处理。
3. 不知道想干嘛了。

(十)

1. 会开始喜欢做总结,例如,硬件工程师最喜欢的借口是:估计电源有问题;网络工程师最喜欢的借口是:Memory coruption的问题(内存践踏?);Kernel工程师最喜欢的借口是:不知道什么问题。

(十一)

1. 认识到简单就是最美的,原因是你永远至少留下一个严重bug。能不做的就坚决不做。把系统做复杂的人只有两种:水平差;骗公司预算。
2. 要从单机系统的kernel/os扩展到分布和并行系统
3. 会试图理解分时系统的调度单位是CPU时间片;但实时系统的调度单位是Packet。

(十二)

1. 跳出三界外,不在五行中。任何一个技术本身就是为了解决问题。就像一个男人喜欢一个女人。如果爱她,一定希望上床缠绵的。
2. kernel engineer最大的忌讳不是不懂复杂和充满细节的细节,而是概念不清,脑袋不好使。
3. 写胶片是kernel engineer最厌恶的,傻逼流程。

(十三)

1. Divide and Conquer,分而治之kernel engineer或者任何engineer唯一需要的工作方法,除了了Brutal Search。但偏偏许多人不会。
2. The separation of mechanism and policy,机制与策略的分离就是OS的所有形而上学。但就是老师讲不清;学生听不懂;工程师不会用。

(十四)

1. 做网络的,99%是为了一个工作;做Kernel的,99%是为了一个爱好。
2. Kernel engineer不来钱,但工作的保险系数高。
3. kernel的工作类似与你不爱一个女人,一定无法赤裸相对。

(结束语)
1. 形而下的最高境界就是“得意忘形”-得其意忘其形。
2. 能down做芯片;就能up做APP。是一个表达逻辑的过程而已。
3. 人在江湖飘,焉能不带刀。要做tip of the sword,要的是忍受寂寞。钱是个WBD,多点最好;少点也无所谓。
4. 牛逼的人从来是留下文字,而非铜臭。

{lang: ‘zh-CN’}

相关日志

  • 暂无相关日志

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s