Linux内核管理风格

内核社区管理是一个很独特很有挑战性的事情, 各系统维护者拥有很大的权利,却又无法命令和管理社区参与者; 一边不停的拒绝人们各种功能提交,一边却希望开发者留在自己的领域继续贡献力量。这篇文章向您揭示,成功的社区维护者如何展示领导力(捣糨糊)。
祝大家 假期快乐!

这是一个简短的文档,描述了Linux内核的首选(或编造的,取决于您问谁)管理风格。 它的目的是在某种程度上参照 process/coding-style.rst 主要是为了避免反复回答 [1] 相同(或类似)的问题。

管理风格是非常个人化的,比简单的编码风格规则更难以量化,因此本文档可能与实 际情况有关,也可能与实际情况无关。起初它是一个玩笑,但这并不意味着它可能不 是真的。你得自己决定。

顺便说一句,在谈到“核心管理者”时,主要是技术负责人,而不是在公司内部进行传 统管理的人。如果你签署了采购订单或者对你的团队的预算有任何了解,你几乎肯定 不是一个核心管理者。这些建议可能适用于您,也可能不适用于您。

首先,我建议你购买“高效人的七个习惯”,而不是阅读它。烧了它,这是一个伟大的 象征性姿态。

[1] 本文件并不是通过回答问题,而是通过让提问者痛苦地明白,我们不知道 答案是什么。
不管怎样,这里是:

1)决策
每个人都认为管理者做决定,而且决策很重要。决定越大越痛苦,管理者就必须越高级。 这很明显,但事实并非如此。

游戏的名字是 避免 做出决定。尤其是,如果有人告诉你“选择(a)或(b), 我们真的需要你来做决定”,你就是陷入麻烦的管理者。你管理的人比你更了解细节, 所以如果他们来找你做技术决策,你完蛋了。你显然没有能力为他们做这个决定。

(推论:如果你管理的人不比你更了解细节,你也会被搞砸,尽管原因完全不同。 也就是说,你的工作是错的,他们应该管理你的才智)

所以游戏的名字是 避免 做出决定,至少是那些大而痛苦的决定。做一些小的 和非结果性的决定是很好的,并且使您看起来好像知道自己在做什么,所以内核管理者 需要做的是将那些大的和痛苦的决定变成那些没有人真正关心的小事情。

这有助于认识到一个大的决定和一个小的决定之间的关键区别是你是否可以在事后修正 你的决定。任何决定都可以通过始终确保如果你错了(而且你一定会错),你以后总是 可以通过回溯来弥补损失。突然间,你就要做两个无关紧要的决定,一个是错误的,另 一个是正确的。

人们甚至会认为这是真正的领导能力(咳,胡说,咳)。

因此,避免重大决策的关键在于避免做那些无法挽回的事情。不要被引导到一个你无法 逃离的角落。走投无路的老鼠可能很危险——走投无路的管理者真可怜。

事实证明,由于没有人会愚蠢到让内核管理者承担巨大的财政责任,所以通常很容易 回溯。既然你不可能浪费掉你无法偿还的巨额资金,你唯一可以回溯的就是技术决策, 而回溯很容易:只要告诉大家你是个不称职的傻瓜,说对不起,然后撤销你去年让别 人所做的毫无价值的工作。突然间,你一年前做的决定不在是一个重大的决定,因为 它很容易被推翻。

事实证明,有些人对接受这种方法有困难,原因有两个:

承认你是个白痴比看起来更难。我们都喜欢保持形象,在公共场合说你错了有时 确实很难。
如果有人告诉你,你去年所做的工作终究是不值得的,那么对那些可怜的低级工 程师来说也是很困难的,虽然实际的 工作 很容易删除,但你可能已经不可 挽回地失去了工程师的信任。记住:“不可撤销”是我们一开始就试图避免的, 而你的决定终究是一个重大的决定。
令人欣慰的是,这两个原因都可以通过预先承认你没有任何线索,提前告诉人们你的 决定完全是初步的,而且可能是错误的事情来有效地缓解。你应该始终保留改变主意 的权利,并让人们 意识 到这一点。当你 还没有 做过真正愚蠢的事情的时 候,承认自己是愚蠢的要容易得多。

然后,当它真的被证明是愚蠢的时候,人们就转动他们的眼珠说“哎呀,下次不要了”。

这种对不称职的先发制人的承认,也可能使真正做这项工作的人也会三思是否值得做。 毕竟,如果他们不确定这是否是一个好主意,你肯定不应该通过向他们保证他们所做 的工作将会进入(内核)鼓励他们。在他们开始一项巨大的努力之前,至少让他们三 思而后行。

记住:他们最好比你更了解细节,而且他们通常认为他们对每件事都有答案。作为一 个管理者,你能做的最好的事情不是灌输自信,而是对他们所做的事情进行健康的批 判性思考。

顺便说一句,另一种避免做出决定的方法是看起来很可怜的抱怨 “我们不能两者兼 得吗?” 相信我,它是有效的。如果不清楚哪种方法更好,他们最终会弄清楚的。 最终的答案可能是两个团队都会因为这种情况而感到沮丧,以至于他们放弃了。

这听起来像是一个失败,但这通常是一个迹象,表明两个项目都有问题,而参与其中 的人不能做决定的原因是他们都是错误的。你最终会闻到玫瑰的味道,你避免了另一 个你本可以搞砸的决定。

2)人
大多数人都是白痴,做一名管理者意味着你必须处理好这件事,也许更重要的是, 他们 必须处理好你。

事实证明,虽然很容易纠正技术错误,但不容易纠正人格障碍。你只能和他们的和 你的(人格障碍)共处。

但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何 无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而 亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据 1)决策 成为绝不可以做的事情。

这里只有几个简单的规则:

不要叫人笨蛋(至少不要在公共场合)
学习如何在忘记规则(1)时道歉
问题在于 #1 很容易去做,因为你可以用数百万种不同的方式说“你是一个笨蛋” [2] 有时甚至没有意识到,而且几乎总是带着一种白热化的信念,认为你是对的。

你越确信自己是对的(让我们面对现实吧,你可以把几乎所有人都称为坏人,而且你 经常是对的),事后道歉就越难。

要解决此问题,您实际上只有两个选项:

非常擅长道歉
把“爱”均匀地散开,没有人会真正感觉到自己被不公平地瞄准了。让它有足够的 创造性,他们甚至可能会觉得好笑。
选择永远保持礼貌是不存在的。没有人会相信一个如此明显地隐藏了他们真实性格的人。

[2] 保罗·西蒙演唱了“离开爱人的50种方法”,因为坦率地说,“告诉开发者 他们是D*CKHEAD” 的100万种方法都无法确认。但我确信他已经这么想了。
3)人2 - 好人
虽然大多数人都是白痴,但不幸的是,据此推论你也是白痴,尽管我们都自我感觉良 好,我们比普通人更好(让我们面对现实吧,没有人相信他们是普通人或低于普通人), 我们也应该承认我们不是最锋利的刀,而且会有其他人比你更不像白痴。

有些人对聪明人反应不好。其他人利用它们。

作为内核维护人员,确保您在第二组中。接受他们,因为他们会让你的工作更容易。 特别是,他们能够为你做决定,这就是游戏的全部内容。

所以当你发现一个比你聪明的人时,就顺其自然吧。你的管理职责在很大程度上变成 了“听起来像是个好主意——去尝试吧”,或者“听起来不错,但是XXX呢?”“。第二个版 本尤其是一个很好的方法,要么学习一些关于“XXX”的新东西,要么通过指出一些聪明 人没有想到的东西来显得更具管理性。无论哪种情况,你都会赢。

要注意的一件事是认识到一个领域的伟大不一定会转化为其他领域。所以你可能会向 特定的方向刺激人们,但让我们面对现实吧,他们可能擅长他们所做的事情,而且对 其他事情都很差劲。好消息是,人们往往会自然而然地重拾他们擅长的东西,所以当 你向某个方向刺激他们时,你并不是在做不可逆转的事情,只是不要用力推。

4)责备
事情会出问题的,人们希望去责备人。贴标签,你就是受责备的人。

事实上,接受责备并不难,尤其是当人们意识到这不 全是 你的过错时。这让我 们找到了承担责任的最佳方式:为别人承担这件事。你会感觉很好,他们会感觉很好, 没有受到指责. 那谁,失去了他们的全部36GB SQ收藏的人,因为你的无能将勉强承 认,你至少没有试图逃避责任。

然后让真正搞砸了的开发人员(如果你能找到他们)私下知道他们搞砸了。不仅是为 了将来可以避免,而且为了让他们知道他们欠你一个人情。而且,也许更重要的是, 他们也可能是能够解决问题的人。因为,让我们面对现实吧,肯定不是你。

承担责任也是你首先成为管理者的原因。这是让人们信任你,让你获得潜在的荣耀的 一部分,因为你就是那个会说“我搞砸了”的人。如果你已经遵循了以前的规则,你现 在已经很擅长说了。

5)应避免的事情
有一件事人们甚至比被称为“笨蛋”更讨厌,那就是在一个神圣的声音中被称为“笨蛋”。 第一个你可以道歉,第二个你不会真正得到机会。即使你做得很好,他们也可能不再 倾听。

我们都认为自己比别人强,这意味着当别人装腔作势时,这会让我们很恼火。你也许 在道德和智力上比你周围的每个人都优越,但不要试图太明显,除非你真的打算激怒 某人 [3]

同样,不要对事情太客气或太微妙。礼貌很容易落得落花流水,把问题隐藏起来, 正如他们所说,“在互联网上,没人能听到你的含蓄。”用一个钝器把这一点锤进去, 因为你不能真的依靠别人来获得你的观点。

一些幽默可以帮助缓和直率和道德化。过度到荒谬的地步,可以灌输一个观点,而不 会让接受者感到痛苦,他们只是认为你是愚蠢的。因此,它可以帮助我们摆脱对批评 的个人心理障碍。

[3] 提示:与你的工作没有直接关系的网络新闻组是消除你对他人不满的好 方法。偶尔写些侮辱性的帖子,打个喷嚏,让你的情绪得到净化。别把牢骚带回家
6)为什么是我?
既然你的主要责任似乎是为别人的错误承担责任,并且让别人痛苦地明白你是不称职 的,那么显而易见的问题之一就变成了为什么首先要这样做。

首先,虽然你可能会或可能不会听到十几岁女孩(或男孩,让我们不要在这里评判或 性别歧视)敲你的更衣室门,你会得到一个巨大的个人成就感为“负责”。别介意你真 的在领导别人,你要跟上别人,尽可能快地追赶他们。每个人都会认为你是负责人。

如果你可以做到这个, 这是个伟大的工作!

原文地址:https://blog.51cto.com/14464645/2431085

时间: 2024-10-08 12:48:59

Linux内核管理风格的相关文章

[转] Linux内核代码风格 CodingStyle [CH]

from:http://blog.csdn.net/jiang_dlut/article/details/8163731 中文版维护者: 张乐 Zhang Le <[email protected]> 中文版翻译者: 张乐 Zhang Le <[email protected]> 中文版校译者: 王聪 Wang Cong <[email protected]>                wheelz <[email protected]>        

Linux内核代码风格

这是一个简短的文档,描述了linux内核的首选代码风格.代码风格是因人而异的,而且我 不愿意把我的观点强加给任何人,不过这里所讲述的是我必须要维护的代码所遵守的风格, 并且我也希望绝大多数其他代码也能遵守这个风格.请在写代码时至少考虑一下本文所述的 风格. 首先,我建议你打印一份GNU代码规范,然后不要读它.烧了它,这是一个具有重大象征性 意义的动作. 不管怎样,现在我们开始: 第一章:缩进 制表符是8个字符,所以缩进也是8个字符.有些异端运动试图将缩进变为4(乃至2)个字符 深,这几乎相当于尝

Linux 内核管理

Linux内核基础:Linux Kernel:  Linux内核的体积结构是单内核的,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制,使得虽然是单内核,但工作在模块化的方式下,并且模块可以动态装载或卸载:Linux内核负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.如是我们在了解Linux内核的基础上根据自己的需要量身定制一个更高效更稳定的内核,就需要我们手动去编译和配置内核里的各项相关的参数和信息.  内核的组成部分: 1.Kernel:内核核心,一般

Linux内核管理--内存(一)

1)Linux把空闲的物理内存划出一部分用作buffer,cache 2)buffer cache是高速缓存环从,目的是为了解决磁盘读取速度远小于内存这个问题,cpu从内存直接读取最快: 3)但是物理内存有限,不可能所有数据都在物理内存,swap交换分区就出现了,内核会根据""最近经常使用""算法,把不经常使用的内存数据交换到swap: 4)有时可以发现物理内存充足,swap也使用了很多也是正常的,因为linux内存交换是不时在进行的,一个占用内存资源很大的程序开始

二十七、Linux内核管理

内核组成: uname命令 内核:uname,mkinitrd,dracut 模块: lsmod,modinfo,depmod,modprobe,insmod,rmmod /proc,sysctl,/sys,/dev,udevadm,hotplug命令 一.静态视角: Linux内核模块 吸收微内核设计:支持模块化设计: 内核中模块 .ko (kernel object) 程序调用的库 .so (share object) 内核模块相当于程序的库的概念,只是模块只能被kernel调用.库只能被程

Linux内核工程导论——内存管理(一)

Linux内存管理 概要 物理地址管理 很多小型操作系统,例如eCos,vxworks等嵌入式系统,程序中所采用的地址就是实际的物理地址.这里所说的物理地址是CPU所能见到的地址,至于这个地址如何映射到CPU的物理空间的,映射到哪里的,这取决于CPU的种类(例如mips或arm),一般是由硬件完成的.对于软件来说,启动时CPU就能看到一片物理地址.但是一般比嵌入式大一点的系统,刚启动时看到的已经映射到CPU空间的地址并不是全部的可用地址,需要用软件去想办法映射可用的物理存储资源到CPU地址空间.

Linux Kernel - Debug Guide (Linux内核调试指南 )

http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环

linux内核调试指南

linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环境的建立 gdb基础 基本命令 gdb之gui gdb技巧 gdb宏 汇编基础--X86篇 用户手册 AT&

Linux内存管理 【转】

转自:http://blog.chinaunix.net/uid-25909619-id-4491368.html Linux内存管理 摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法.力求从外到内.水到渠成地引导网友分析Linux的内存管理与使用.在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理. 前言 内存管理一向是所有操作系统书