转:Linux内核管理风范

看到了太好的文章,立刻转贴了。 表面上是个面向技术人员的文章,但里面提到的观点对其他行业的人都可能会有很多启发。

文章原作者是Linux之父Linus Torvalds, 原文标题 Linux kernel management style, 翻译者是habpi7@googlemail.com, 译文原地址在http://wiki.woodpecker.org.cn/moin/LinuxKernelManaStyle, 英文原文在 http://openlife.cc/onlinebook/epilogue-linux-kernel-management-style-linus-torvalds

============================

1. 中译.Linux内核管理风范

1.1. 导言

Linus Torvalds 在2004年把一篇讲”Linux内核的管理风格”的文章放在了内核源码文档里。这篇文章有意对应他以前写的关于编码 风格的文章(比如烧书仪式),也有技术人员熟悉的Dilbert卡通的影子。 Henrik Ingo 写”Open Life: The Philosophy of Open Source“一书的时候,拿这篇文章作了后记。

这篇文章其实是总结了Linus十几年里领导开源运动的经验。更重要的是,它讲述了一种与传统不同的做事理念,一种后互联网时代的、尊重技术和自由的理念。

Linus的写作诙谐生动,完全不同于ESR的《大教堂和市集》。所以我作了比较自由的翻译。以下是译文。

 

1.2. Linux内核的管理风格

(Linux kernel management style, by Linus Torvalds. Retrieved from http://openlife.cc/node/43, Jan-28-2008)

这个简单文档描述Linux内核偏爱的(或编造的,取决于你问谁)管理模式。它在一定程度上是编码风格文档的影子,主要写来避免一遍又一遍回答同一类问题*。

  • 管理风格是很个人化的,比起简单的编码风格条例更难量化,所以这个文档跟现实可能沾边也可能不沾边。它开始于游戏,但是不见得就不作数。你只有自个儿决定。
  • 顺便说一下,我们说到”内核管理者”的时候,完全是说技术带头人,不是公司里那些作传统管理工作的人。如果你是在订单上签名的人或者对你们组的预算知道一丁半点,你几乎一定不是个”内核管理者”。这些建议对你可能适用也可能不适用。
  • 首先,我建议你买一本《高度成功人士的七个习惯》,不-要读它,烧了。表一下决心。
    • (*) 这个文档不见得”回答”多少问题,更大程度上是展示我们的无知,让提问者死了这条心。

不管怎样,开讲了:

 

1.2.1. 第一章:决定

每个人都觉得管理者是作决定的,作决定是很重要的。决定越大、越艰难,管理者就越伟大。这一点很深刻、很明显,但不见得正确。

  • 事情的要义是避免-作决定的必要性。特别是,当有人告诉你”是甲还是乙,我们需要你来作决定”,你作管理的麻烦就来了。你手下的人一般比你更懂具体问题,所以要是他们找你作一个技术性的决定,你死定了。要替他们作决定,你显然水平不够。

(推论:如果你手下的人不比你更懂具体问题,你还是死定了,尽管出于完全不同的原因。说白了就是你站错了岗位,应该他们-来管理你的才华才对。)

  • 所以要义是避免-决定,至少避免大的和艰难的决定。作小的、不重要的决定还好了,而且让你挺挺板板、面上有光。所以一个内核管理者需要的是把大的艰难的决定变成没人在乎的小事情。
  • 帮你点拨一下,大决定和小决定的区别在于你能否事后修补得了。如果你犯错了的时候(而且你会-犯错),你能返回来弥补损失,那么你可以把任何的决定变成”小决定”。一下子,你的表现机会多了一倍:你要作两-个不重要的决定,错误决定”加上”正确决定。
  • 而且大家甚至会认为这是领导才能(咳咳,狗屁,咳咳)。因此避免作重大决定的要点成了仅仅避免做不可逆反的事情。不要被牵引到一个无路可逃的角落里。困在角落里的耗子或许是危险的,困在角落里的管理者不过是个可怜虫。
  • 事实上,不管怎样-,没有人会愚蠢到让一个内核管理者承担太大的财政责任,所以纠正错误一般不是多难。既然你没有机会浪费掉你倾家荡产也还不清的巨额经费,你要纠正的不过是一个技术性的决定。那就好办了:告诉每个人你是个不称职的白痴,说对不起,把你让大家上一年作的无用功都扔掉。一下子,你一年前作的决定也不见得是什么重大决定,既然能简单的撤销掉。
  • 然而事实上,有些人搞不来这个办法。有两个原因:
    • (一)承认自己是傻瓜做起来蛮难的。我们都喜欢保持形象,公开认错有时候是很困难。
    • (二)对下级的工程师来说,被人告知自己上一年的工作落得一文不值,也是很恼火的。实际的工作结果-可以删除了事,但你可能就永久性的失去了这个工程师的信任。记住,”永久性”是我们要避免的第一件事,这样你的决定最终还是一个重大决定。
  • 所幸的是,你对两个原因都可以棋高一着,未雨绸缪,防患未然。办法是:事先就承认你狗屁不懂,告诉大家你的决定不过是摸着石头过河,说不定就掉河里了。
  • 你应该永远保留改变决定的权利,而且要让大家明白-这一点。而且在你做了真正的傻事之前承认你是个傻瓜要容易的多。
  • 这样,当事情真的到了傻冒的地步,人们不过是翻下眼皮,说:”唉……真是灵验啊……”
  • 这种事先承认不足的做法可能还会让下面真正做事的人三思而后行,想一下值不值。说回来,如果他们-都不确定是个好主意,你铁定了不应该给他们开绿灯,煽风点火。至少要让他们在开始大动作之前好好想一下。
  • 记住:他们在细节上应该知道的比你多,而且他们一般觉得一切已在掌握之中。作为管理者,你能做的最好的事情不是给他们填充信心,而是给他们适量的批判理性。
  • 顺便说一下,另外一个避免决定的办法是装可怜,简单地问”我们为什么不能两个都做呢?” 相信我,这个有用。如果不清楚哪条路子更好一些,他们最终会整明白的。答案或许是两帮人都挫败灰心,双双放弃。
  • 这听起来像是个失败,但它一般是两个项目都有问题的迹象,大家无法决定的原因是双方都错了。结果是你成了智慧的舵手,而且你又避免了一个本来会死得很难看的决定。

 

1.2.2. 第二章:人

大多数人都是傻瓜,当管理者就意味着你不得不和这一点打交道。或许更重要的是,他们-不得不和你-打交道。

  • 事实证明,消除技术性问题还是容易的,消除人脑筋里的问题就没那么容易了。你就不得不忍受这些问题,他们的还有你自个儿的问题。

然而,为了做好内核管理者,最好记住不要自绝后路,伤及无辜,或树敌过众。现实是,疏远人们是蛮容易的,把他们拉拢回来就难了。因此”疏远”直接归类到”不可逆反”的事情里,就是第一章里说的大忌。

  • 这里只有两条简单的规则:
    • (一)不要骂人猪头(至少不要在公开场合下)
    • (二)要是你忘了第一条,学会怎样道歉
  • 第一条的问题是太容易违反,因为你有一万种骂人猪头的办法*,有时不自觉就骂了,而且几乎总是义愤填膺、义正严词。
  • 而且你越是骂的热血沸腾(让我们来面对事实,你可以骂几乎任何-人猪头,你往往不-会骂错),事后你越难道歉。
  • 要解决这个问题,你其实只有两条路子:
    • (一)成为道歉专家
    • (二)”遍洒博爱,处处留情”,这样没有人会觉得受到了特殊待遇。骂出新意,骂出水准,他们没准会找到艺术的享受。
  • 第三条路子,始终如一的作谦谦君子,是行不通的。没有人会信任城府太深的人。
  • *保罗西蒙的歌唱道”失恋五十种”,是因为老实说,”骂一个程序员猪头一万种”没有那么押韵。不过我相信他肯定考虑过这个。

 

1.2.3. 第三章:能人

尽管现实是大多数人都是傻瓜,不幸的推论包括你也是傻瓜之一,尽管我们都心安理得的自认比傻瓜高明(让我们来面对事实,没有人自认傻瓜或不如傻瓜),我们还是应该承认我们不是独步江湖,总会有一些人不像我们一样的傻瓜。一些人嫉贤妒能,另一些人从善如流。

  • 确定你,作为一个内核管理者,属于第二种。贴紧了高手能人,因为他们会使你的工作变容易。特别是,他们将能够替你作决定,这正是事情的要义。
  • 所以你要是发现了比你聪明的人,顺水推舟好了。你的管理职责很大程度上就成了说一下”听起来是个好主意,放手去干吧”,或者”这个不错,那个XXX怎么样呢?”。第二个版本尤其有效:你要么学到一些关于”XXX”的新东西,要么指出了聪明人都没想到的东西,表现得胸有-韬略。随便那种情况,你都是赢家。
  • 另外一件要小心的事情是,一个人在一方面厉害不见得在其他方面也厉害。你或许煽动谁做什么,但是让我们来面对事实,他或许精通自己的一亩三分地却其他什么都做不来。好的消息是,人们自然而然的倾向于选择自己擅长的事情来做。所以你真的-煽动一下,一般不见得会造成什么不可逆反的后果,只是不要用铁扇公主的芭蕉扇来煽。

 

1.2.4. 第四章:担当

事情总会出错的,大家会找人来责怪。哈,就是你了。

  • 担当责任其实不是那么难的,尤其是当大家心里也有数,不全-是你的错的时候。这带来了担当责任的最好的方式:代人受过。你会因为挑起了担子而心安,那个真正搞砸了的家伙不会成为众矢之的而颓废,至于那个因为你的失职而丢失了半个硬盘的A片的家伙,也会嘟嘟囔囔的承认你至少没有猥猥琐琐的推卸责任。
  • 然后,私下-告诉那个搞砸了的家伙是他搞砸了(如果你能发现他的话)。这样不仅让他以后避免重犯,而且让他知道他欠你一个人情。而且,或许更重要的是,他可能就是那个能修补事故的人。因为,让我们来面对事实,你肯定不行。
  • 担当责任也是最初你来作管理者的原因。这是领导者的本分。大家能信任你,给你荣誉,是因为你在必要的时候能说”是我不好”。而且如果你已经遵循了前面的规则,你现在说这个应该很在行了。

 

1.2.5. 第五章:禁区

比骂人”猪头”更招人恨的是用挖苦的语调骂人”猪头”。你可以为前一个道歉,后一个你都不会有道歉的机会。即使你其他方面都做的很好,他们可能也不会再听你的了。

  • 我们都自我感觉良好,就是说当别人指手划脚的时候,真的-是可忍孰不可忍。你可能在才智品行上超出你周围所有的人,但是你要不是真的想-招惹谁的话*,不要”表现”得太明显。类似的,处理问题不要太客气或微妙。客气往往会隔靴搔痒,不得要害。就像人家说的,”在互联网上,没有人听得到你微妙”。大张旗鼓、锣鼓喧天的把你的意见摆出来,不然你没法指望大家领悟到。
  • 一点幽默可以帮助润滑你的蛮横和说教。过分夸张到荒诞的地步,既能充分表达你的观点,又不至于让对方难堪,因为他只会认为你在发疯。这样就可以绕过我们每个人都有的、抵制批评的心理盲区。
    • *支一招:和你的工作不直接相关的网络论坛(译者按:Linus是说新闻组。没看到西方国家的论坛事业有中国这么发达。)是发泄的好地方。隔三岔五的,狞笑着写点侮辱人的帖子来点燃战火,会让你再次焕发青春。只是不要把战火烧到自己的老巢。

 

1.2.6. 第六章:为什么是我?

  • 既然你的主要职责好像就是代人受过,赤裸裸的展示自己如何不称职,显然的问题是:那你为什么还要做呢?
  • 首要的是,可能有也可能没有尖叫着的小女生(或者小男生,我们不要作道学家或性别岐视)来敲你更衣室的门,作”负责人”会-给你带来巨大的个人成就感。不用说你的”领导”其实是拼命从后面追赶大家、努力跟上大家的步伐。每个人还是会认为你是”负责人”。

如果你能驾驭得了,这是一项伟大的工作。

 

让SecureCRT登录Debian时显示彩色

前一阵用上一个新服务器,操作系统是Debian,用SecureCRT SSH登陆上去, 显示只有黑白色。 以前在RHES上也遇到这个问题,算是轻车熟路,到Session Option的Emulation里, 把Terminal选为Xterm, ANSI Color打上勾,上次就是这么解决的。

image

可重新连接后,居然还是黑白。 立刻去google解决方案,查到了不少,但没一个说的全的,最后总算东拼西凑把问题解决了,下面就是解决过程。

先解决ls的色彩问题。

编辑 ~/.bashrc,加入如下代码:

export PS1=’\[\033[1;32;40m\]\u@\h:\w\$ \[\033[0m\]’
umask 022

export LS_OPTIONS=’–color=auto’
eval “`dircolors`”
alias ls=’ls $LS_OPTIONS’
alias ll=’ls $LS_OPTIONS -l’
alias l=’ls $LS_OPTIONS -lA’

再重新登陆上去,ls有颜色了,但这个方法仅在root帐号下是有效的,用普通用户帐号登录上去还是不行。应该用普通帐号登录上去编辑~/.bash_profile,加入下面代码:

if [ -f ~/.bashrc ]
then
    source ~/.bashrc
fi

重新登录后ls的颜色问题解决了, 接下来解决vi的颜色问题。

编辑下面的文件

/etc/vim/vimrc

把下面代码前的注释去掉。

syntax on

但发现这样做还不行, 不但不显示色彩,启动vim的时候还提示不认识syntax on,解析配置文件失败。 原来是系统安装的vim不全,执行

apt-get install vim-full

完整的vim有300多M,安装过程会比较长。

然后在~/.bashrc中添加下面的指令

alias vi=’vim’

退出登录再重新连接,充满色彩的vi又回来了。

装了Ubuntu

版本6.06。 下面是浏览新浪网的截图:

效果不错, 就是中文字体不太好, 应该可以靠下载字体解决。安装过程非常简单,不比前几天安的Vista复杂. 随机安的软件里有OpenOffice, 浏览器Firefox, 还有Gaim Messenger, Evolution Email, Softphone, 多媒体播放器,居然还支持Remote Desktop, 绝对够用了. 据说Suse Linux的桌面比它的更酷,还没看过。2000年的Gnome就已经很漂亮, 但当时的配套桌面软件还不是那么成熟,现在感觉已经是完全可以和 Windows一角短长了。

将来Linux会不会在桌面市场替代Windows呢? 太古老的话题,可总是吸引人们讨论下去。 我现在用的软件有两个趋势, 一个是越来越多用Web的软件, 比如RSS Reader用Google Reader; Email 虽然还是用Outlook处理,但越来越多的用gmail; One note很少用了, 而是用google 的notebook, 家里记账原先用excel, 现在用google spreadsheet. 另一个趋势就是用开源的软件越来越多, 设计数据库用DB Designer, Text Editor用notepad++, 开发Linux下的C++程序用Eclipse, 记日记用Wordpress。 昨晚仔细看了看Vista, 说实话, 相当让我失望。 感觉并没有什么特别吸引人的特性。当初DOS到Windows 3.0, Windows3.1到Windows 95, Windows 95到98, 到2000都还是有特别吸引我的地方,让我迫不及待的升级。从2000到XP这个积极性就下降了很多, 到了Vista没带给我任何想升级的冲动。不知道是不是真的老了,还是Vista真的让人失望。

如果说Windows 和Linux是IT世界的两极,我好像越来越偏向Linux了。