- 浏览: 1074350 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
gaoyun_66:
扯淡,都错的.不要误导别人.主键建在分区字段上,不会报错么?( ...
SQL SERVER 表及索引分区 -
y5ljue:
非常感谢、、、困惑了半天终于解决了、、 ...
一个python处理dos和unix格式文本的换行的问题 -
谭砚耘:
很好的思路
只学一点点:我的技术学习策略 -
energykey:
技术太多,学不完的。但至少要精通一门。
只学一点点:我的技术学习策略 -
huipahaimian:
请问你用了marauroa框架了吗?如何使用?
Crazy Wind手机游戏工作室最新A-RPG力作隆重登场(图)
(zt from Xiao-Feng Li's blog )
Linux内核管理风格 (Linux kernel management style)
(中文翻译:Xiao-Feng Li)
这个短文档介绍了Linux内核所偏爱的(或“造作的”--看你问谁了)管理风格。目的是与文档《CodingStyle》的内容在某种程度上相呼应,主要是为了避免一遍又一遍地回答[1]同样(或类似)的问题。
管理风格非常个人化,很难量化,比几条简单的关于编码风格的规定要难多了,因此这个文档与实际可能有联系,也可能没有联系。开始写时只是闹着玩的,不过也不能说它完全没用。这个只能由你自己决定了。
顺便说一句,当提到“内核管理者”时,指的是技术带头人,而不是公司里的那些传统的管理人员。如果你在你们公司里要签单、或者对你们部门的预算有点儿概念的话,那你基本上可以肯定不是内核管理者。因此这里的建议可能不一定对你有用。
首先,我建议你买一本《高度成功人士的七个习惯》,_不_要读它。烧掉它,这是一个很重要的象征性姿态。
[1] 本文档并没有真地回答什么问题,而是要让提问题的人不得不明白:我们并不知道答案是什么。
好吧,下面开讲:
第一章:决定
大家都以为是管理者在做决定,而且以为做决定很重要。以为决定越大、越难,管理者就一定越高层。这看起来很深刻也很明显,其实不一定正确。
问题的诀窍在于_避免_做决定。特别是当有人对你说“请选择(a)或(b),我们真地需要你做出决定”时,你作为一个管理者就有麻烦了。因为你管理的人应该比你知道更多的细节,如果他们需要你来做出技术决定,你一定麻烦大了。显然你没有能力替他们做出决定。
(推论:如果你的手下不比你了解更多的细节,你一样死定了,尽管死的原因与前面完全不同。这种情况下,看起来你不适合这个管理工作,应该是_他们_来管理你的才华才对。)
因此问题的诀窍是_避免_做决定,至少避免做大的、难的决定。可以做一些小的、没有什么后果的决定,这会让你看起来象是知道你自己在做什么。所以内核管理者要做的就是把大的、难的决定转变成没人在意的小问题。
需 要明白的是,大决定和小决定之间的真正区别在于:你是否可以在后来修正你的决定。任何决定都可以变成一个小决定,只要你能确保下面这条:即在你可能错了的 时候(你_一定_会错的),你总能回过头将其影响消除。这样,突然之间,你变得具有两倍的管理才能:你做出了_两个_没有后果的决定--一个错误的_和_ 一个正确的。
而且人们甚至会认为这是真正的领袖素质(咳,狗屁,咳)。
这样,避免做决定的关键就变成了如何避免做任何不能挽回的事情。不要被堵在一个无处逃生的死胡同。死胡同里的耗子会很危险--而一个死胡同里的管理者就太可怜了。
实 践证明,由于_在任何情况下_都没有人会蠢到真得让内核管理者去承担巨大的财政责任,因此Linux内核中的决定通常是很容易挽回的。既然你没有机会糟蹋 掉一大笔你还不起的钱,你需要挽回的也就是一个技术决定而已;而对技术决定来说,挽回措施也相当容易:只需要告诉别人你是一个手生的笨蛋,说你很抱歉,然 后去除那些你让大家在过去的一年里做的没用的东西。立刻,你一年前所做的决定就根本不是一个大决定了,因为它的影响可以被轻易地消除。
实践证明有些人对这个方法不是很适应,由于下面的两个原因:
- 承认自己是个白痴比想像的要难。我们都要维护自己的形象,到大庭广众之下说自己错了有时候的确非常困难。
- 对那些可怜的底层工程师来说,要别人告诉他们去年做的东西完全没用会有些难度。尽管实际的_工作_本身可以简单地删除掉,你却可能不可挽回地失去那个工程师的信任。记住:“不可挽回”是我们首要竭力避免的,因此你的决定最终还是成了一个大决定。
比 较愉快的是,这两个问题的难度都可以被有效地降低:只要你实现承认自己不是特别明白;并在实施之前告诉大家,你的决定很初步,很有可能是错的。你应该一直 保留改变主意的权利,并让大家非常_清楚_这一点。其实,在你还没有做蠢事之前承认自己愚蠢,要比做了之后要容易的多。
这样,当最终被证明是件蠢事时,人们最多也就转转眼睛,说“唉,他又犯傻了”。
这种事先承认没有把握的做法,也会让那些真正干活的人好好想想是否值得做这件事。千万记住,如果连_他们_都不能肯定,你一定不要用许诺的方法来鼓励他们,即承诺他们的工作会被加到Linux内核中。还是要让他们在启动一项大任务之前深思熟虑一下。
记住:他们会比你知道更多的细节,而且他们通常认为他们对一切相关问题都已了然于胸。这个时候,管理者最好不要再去给他们吃定心丸了,而是给他们一剂用挑剔的眼光审视任务的苦口良药。
顺便提一句,另一种避免做决定的办法是简单地嗔怪道:“我们不能两个都做吗?”并做出一副可怜相。相信我,这的确有效。如果还不清楚到底那个方法更好,他们最终一定会搞清楚的。很可能的结果是,两个小组都对结论感到失望并就此放弃。
放弃听起来似乎是个失败,但这通常是一个信号,表明两个项目都有问题,而两个小组的成员都不能下决定的原因可能就是因为他们都错了。这样你最后倒成了香饽饽,而且你还避免了又一个可能让你死菜的决定。
第二章:人
大多数人是白痴,做为管理者,你必须面对现实、和他们周旋。或许更重要的是,_他们_必须要和_你_周旋。
事实证明,虽然消除技术错误很容易,消除人性的混乱却不容易。你必须与别人的个性共处--以及与你自己的个性共处。
不过,要准备成为一个内核管理者,你最好记着不要断了自己的后路、殃及无辜、或与太多的内核开发者作对。事实证明,与人闹翻很容易,可再想和好就不容易了。因此“闹翻”立刻可以归类为“不可挽回”的行为;按照第一章,绝对应该避免。
有几条简单的规则:
(1) 不要称呼别人“蠢货” (至少不要在公开场合)
(2) 当你忘了(1)时,就学会道歉
(1)的问题是它太容易违反了。你可以有一万种不同的方式骂别人“蠢货”[2],有时候你甚至都没有意识到,而且哪一次你都是不可抑制地义愤填膺。
而且你越是相信你是对的(面对现实吧,你其实可以称呼_任何人_“蠢货”,而且你总_会_是对的),事后道歉对你来说会越难。
要解决这个问题,你只有两个选择:
- 成为道歉高手
- 把你的“爱”均匀播洒,让大家觉得你的出手是公平的。你得有点儿创意,这样他们有时候可能还会觉得挺好玩儿的。
希望靠着礼貌把一切摆平是不可能的。没有人会信任一个明显隐藏自己真实性情的人。
[2]保罗西蒙过去唱《失去爱人方法五十种》,那是因为很明白,《告诉一个开发者是蠢货的方法一万种》听起来没有前者那么有韵味。不过我相信他考虑过后者。
第三章:人 II - 好的那类
既然事实表明大多数人都是白痴,那结论自然很可悲:你也是一位。另外,即使我们都暗自觉得自己高于普通人(承认吧,没有人认为自己是普通人甚至不如普通人),我们也要承认我们不是那只最锋利的刀子,总有人没有你那么白痴。
有些人容不下聪明人。有些人则会利用他们。
作为一个内核的维护者,你要确保你属于第二种。你要紧随聪明人,因为他们能让你的工作变得容易。特别是,他们能替你做决定。这就是问题所在。
因 此,如果你发现有人比你聪明,那就顺水推舟吧。之后你的管理任务就变成诸如“听起来不错--去搞吧”,或者“这个听起来挺好,不过那个xxx怎么样?”。 特别是第二种说法,你要么能跟着学点儿“xxx”的东西,要么能显示_额外_的管理才干,因为你指出了一些聪明人没有想过的东西。不管是哪种情况,你都是 赢家。
值得提出的是,你要明白,在一个领域的牛人在另一个领域就不一定了。因此尽管你可能在几个不同的方向上给与引导激励,需要承认的 是,他们可能只在他们自己的领域是专家,而在其它领域一无是处。值得庆幸的是,人们会自然地象被引力吸引一样被拉回他们擅长的领域。因此,只要你不是激励 的太厉害,那么即使你真地在其它方向上引导了他们,也不至于造成不可挽回的后果。
第四章:责任追究
任何事情都回出错,因此人们需要找个人来承担责任。不好意思,你就是这个人。
承担责任其实并不困难,特别是当人们明白并不全是你的错。这给我们提醒了一种最好的承担责任的方式:承担他人的责任。你会因为替人受过而感觉高尚,他也会因为免于责任而感觉不错。那个由于你的过错而丢失了36GB收藏的家伙也不得不承认,你至少没有试图逃避责任。
然后你要_私下里_让那个真正把事情搞砸的人(如果你能找出他来)知道,是他把事情搞砸了。并不是说他因此就可以避免以后再出问题,而是因此他知道他欠你一个人情。而且,也许更重要的是,他很可能也是那个能修正问题的人;因为,我们得承认,那个人肯定不是你。
承担责任也是你能成为管理者的首要原因。这是别人愿意信任你、并给你可能的荣誉的部分原因,因为正是你能站出来说“是我搞砸了”。如果你已经遵循了前面的规则,现在说这句话对你来说应该很容易了。
第五章:需要避免的东西
有一件事比骂人“蠢货”更让人不能接受,那就是用假惺惺的口气叫人“蠢货”。 前者还可以道歉,后者则没有机会。别人不会再听你的了,即使在你做的很漂亮的时候。
我们每个人都认为自己比别人强,当别人在充大个时,我们会错误地觉得自己_真地_被看扁了。因此,也许你在道德或智力上的确高于他人,但不要太显摆了,除非你是有意要惹恼某个人[3]。
同样,也不要太礼貌或太微妙了。礼貌很容易过度从而掩盖真正的问题,而且正如人们所说:“在互联网上,没人能听出来你的微妙”。因此,还是要大张旗鼓地摆明你的观点,不能寄望人们能揣摩出你的意思。
加点儿幽默能中和你的鲁直和说教。如果你过分到显得荒谬,反倒可以达到你的目的,且不会让接受者感到不爽,他只会觉得你傻的可爱。因此幽默可以帮助克服人性的障碍,而这个障碍这是我们在对待批评时所共有的。
[3]提示:互联网上那些与你的工作无直接关系的讨论组是发泄对他人不满的好地方。每隔一阵儿,带着嘲弄发些讨厌的帖子加入一场论战,会让你感到神清气爽。只是别把垃圾甩在自家门口了。
第六章:为什么是我?
既然你的主要任务是替人受过,并且还要痛苦地让所有的人看出来你是个生手,那么一个显然的问题是:当初干嘛要干这个?
本 质上说,尽管可能不会有十来岁的小姑娘(或小男孩,这里我们不需要提出甄别或扮演性别主义者)尖叫着追到你的更衣室外敲门,你也_必将_由于是“负责人” 而获得巨大的个人成就感。尽管你的所谓领导其实就是竭力追上别人并在其后尽力飞奔,你就不要太在意这些了,因为所有的人仍然会认为你就是负责人。
如果你能把这个问题搞定,那将是一项伟大的成就。
=======================================================================
Original from http://lwn.net/Articles/105375/
[Posted October 6, 2004 by corbet]
Linux kernel management style
This is a short document describing the preferred (or made up, depending on who you ask) management style for the linux kernel. It's meant to mirror the CodingStyle document to some degree, and mainly written to avoid answering (*) the same (or similar) questions over and over again.
Management style is very personal and much harder to quantify than simple coding style rules, so this document may or may not have anything to do with reality. It started as a lark, but that doesn't mean that it might not actually be true. You'll have to decide for yourself.
Btw, when talking about "kernel manager", it's all about the technical lead persons, not the people who do traditional management inside companies. If you sign purchase orders or you have any clue about the budget of your group, you're almost certainly not a kernel manager. These suggestions may or may not apply to you.
First off, I'd suggest buying "Seven Habits of Highly Successful People", and NOT read it. Burn it, it's a great symbolic gesture.
(*) This document does so not so much by answering the question, but by making it painfully obvious to the questioner that we don't have a clue to what the answer is.
Anyway, here goes:
Chapter 1: Decisions
Everybody thinks managers make decisions, and that decision-making is important. The bigger and more painful the decision, the bigger the manager must be to make it. That's very deep and obvious, but it's not actually true.
The name of the game is to _avoid_ having to make a decision. In particular, if somebody tells you "choose (a) or (b), we really need you to decide on this", you're in trouble as a manager. The people you manage had better know the details better than you, so if they come to you for a technical decision, you're screwed. You're clearly not competent to make that decision for them.
(Corollary:if the people you manage don't know the details better than you, you're also screwed, although for a totally different reason. Namely that you are in the wrong job, and that _they_ should be managing your brilliance instead).
So the name of the game is to _avoid_ decisions, at least the big and painful ones. Making small and non-consequential decisions is fine, and makes you look like you know what you're doing, so what a kernel manager needs to do is to turn the big and painful ones into small things where nobody really cares.
It helps to realize that the key difference between a big decision and a small one is whether you can fix your decision afterwards. Any decision can be made small by just always making sure that if you were wrong (and you _will_ be wrong), you can always undo the damage later by backtracking. Suddenly, you get to be doubly managerial for making _two_ inconsequential decisions - the wrong one _and_ the right one.
And people will even see that as true leadership (*cough* bullshit *cough*).
Thus the key to avoiding big decisions becomes to just avoiding to do things that can't be undone. Don't get ushered into a corner from which you cannot escape. A cornered rat may be dangerous - a cornered manager is just pitiful.
It turns out that since nobody would be stupid enough to ever really let a kernel manager have huge fiscal responsibility _anyway_, it's usually fairly easy to backtrack. Since you're not going to be able to waste huge amounts of money that you might not be able to repay, the only thing you can backtrack on is a technical decision, and there back-tracking is very easy: just tell everybody that you were an incompetent nincompoop, say you're sorry, and undo all the worthless work you had people work on for the last year. Suddenly the decision you made a year ago wasn't a big decision after all, since it could be easily undone.
It turns out that some people have trouble with this approach, for two reasons:
- admitting you were an idiot is harder than it looks. We all like to maintain appearances, and coming out in public to say that you were wrong is sometimes very hard indeed.
- having somebody tell you that what you worked on for the last year wasn't worthwhile after all can be hard on the poor lowly engineers too, and while the actual _work_ was easy enough to undo by just deleting it, you may have irrevocably lost the trust of that engineer. And remember: "irrevocable" was what we tried to avoid in the first place, and your decision ended up being a big one after all.
Happily, both of these reasons can be mitigated effectively by just admitting up-front that you don't have a friggin' clue, and telling people ahead of the fact that your decision is purely preliminary, and might be the wrong thing. You should always reserve the right to change your mind, and make people very _aware_ of that. And it's much easier to admit that you are stupid when you haven't _yet_ done the really stupid thing.
Then, when it really does turn out to be stupid, people just roll their eyes and say "Oops, he did it again".
This preemptive admission of incompetence might also make the people who actually do the work also think twice about whether it's worth doing or not. After all, if _they_ aren't certain whether it's a good idea, you sure as hell shouldn't encourage them by promising them that what they work on will be included. Make them at least think twice before they embark on a big endeavor.
Remember: they'd better know more about the details than you do, and they usually already think they have the answer to everything. The best thing you can do as a manager is not to instill confidence, but rather a healthy dose of critical thinking on what they do.
Btw, another way to avoid a decision is to plaintively just whine "can't we just do both?" and look pitiful. Trust me, it works. If it's not clear which approach is better, they'll eventually figure it out. The answer may end up being that both teams get so frustrated by the situation that they just give up.
That may sound like a failure, but it's usually a sign that there was something wrong with both projects, and the reason the people involved couldn't decide was that they were both wrong. You end up coming up smelling like roses, and you avoided yet another decision that you could have screwed up on.
Chapter 2: People
Most people are idiots, and being a manager means you'll have to deal with it, and perhaps more importantly, that _they_ have to deal with _you_.
It turns out that while it's easy to undo technical mistakes, it's not as easy to undo personality disorders. You just have to live with theirs - and yours.
However, in order to prepare yourself as a kernel manager, it's best to remember not to burn any bridges, bomb any innocent villagers, or alienate too many kernel developers. It turns out that alienating people is fairly easy, and un-alienating them is hard. Thus "alienating" immediately falls under the heading of "not reversible", and becomes a no-no according to Chapter 1.
There's just a few simple rules here:
(1) don't call people d*ckheads (at least not in public)
(2) learn how to apologize when you forgot rule (1)
The problem with #1 is that it's very easy to do, since you can say "you're a d*ckhead" in millions of different ways (*), sometimes without even realizing it, and almost always with a white-hot conviction that you are right.
And the more convinced you are that you are right (and let's face it, you can call just about _anybody_ a d*ckhead, and you often _will_ be right), the harder it ends up being to apologize afterwards.
To solve this problem, you really only have two options:
- get really good at apologies
- spread the "love" out so evenly that nobody really ends up feeling like they get unfairly targeted. Make it inventive enough, and they might even be amused.
The option of being unfailingly polite really doesn't exist. Nobody will trust somebody who is so clearly hiding his true character.
(*) Paul Simon sang "Fifty Ways to Lose Your Lover", because quite frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't scan nearly as well. But I'm sure he thought about it.
Chapter 3: People II - the Good Kind
While it turns out that most people are idiots, the corollary to that is sadly that you are one too, and that while we can all bask in the secure knowledge that we're better than the average person (let's face it, nobody ever believes that they're average or below-average), we should also admit that we're not the sharpest knife around, and there will be other people that are less of an idiot that you are.
Some people react badly to smart people. Others take advantage of them.
Make sure that you, as a kernel maintainer, are in the second group. Suck up to them, because they are the people who will make your job easier. In particular, they'll be able to make your decisions for you, which is what the game is all about.
So when you find somebody smarter than you are, just coast along. Your management responsibilities largely become ones of saying "Sounds like a good idea - go wild", or "That sounds good, but what about xxx?". The second version in particular is a great way to either learn something new about "xxx" or seem _extra_ managerial by pointing out something the smarter person hadn't thought about. In either case, you win.
One thing to look out for is to realize that greatness in one area does not necessarily translate to other areas. So you might prod people in specific directions, but let's face it, they might be good at what they do, and suck at everything else. The good news is that people tend to naturally gravitate back to what they are good at, so it's not like you are doing something irreversible when you _do_ prod them in some
direction, just don't push too hard.
Chapter 4: Placing blame
Things will go wrong, and people want somebody to blame. Tag, you're it.
It's not actually that hard to accept the blame, especially if people kind of realize that it wasn't _all_ your fault. Which brings us to the best way of taking the blame: do it for another guy. You'll feel good for taking the fall, he'll feel good about not getting blamed, and the guy who lost his whole 36GB porn-collection because of your incompetence will grudgingly admit that you at least didn't try to weasel out of it.
Then make the developer who really screwed up (if you can find him) know _in_private_ that he screwed up. Not just so he can avoid it in the future, but so that he knows he owes you one. And, perhaps even more importantly, he's also likely the person who can fix it. Because, let's face it, it sure ain't you.
Taking the blame is also why you get to be manager in the first place. It's part of what makes people trust you, and allow you the potential glory, because you're the one who gets to say "I screwed up". And if you've followed the previous rules, you'll be pretty good at saying that by now.
Chapter 5: Things to avoid
There's one thing people hate even more than being called "d*ckhead", and that is being called a "d*ckhead" in a sanctimonious voice. The first you can apologize for, the second one you won't really get the chance. They likely will no longer be listening even if you otherwise do a good job.
We all think we're better than anybody else, which means that when somebody else puts on airs, it _really_ rubs us the wrong way. You may be morally and intellectually superior to everybody around you, but don't try to make it too obvious unless you really _intend_ to irritate somebody (*).
Similarly, don't be too polite or subtle about things. Politeness easily ends up going overboard and hiding the problem, and as they say, "On the internet, nobody can hear you being subtle". Use a big blunt object to hammer the point in, because you can't really depend on people getting your point otherwise.
Some humor can help pad both the bluntness and the moralizing. Going overboard to the point of being ridiculous can drive a point home without making it painful to the recipient, who just thinks you're being silly. It can thus help get through the personal mental block we all have about criticism.
(*) Hint: internet newsgroups that are not directly related to your work are great ways to take out your frustrations at other people. Write insulting posts with a sneer just to get into a good flame every once in a while, and you'll feel cleansed. Just don't crap too close to home.
Chapter 6: Why me?
Since your main responsibility seems to be to take the blame for other peoples mistakes, and make it painfully obvious to everybody else that you're incompetent, the obvious question becomes one of why do it in the first place?
First off, while you may or may not get screaming teenage girls (or boys, let's not be judgmental or sexist here) knocking on your dressing room door, you _will_ get an immense feeling of personal accomplishment for being "in charge". Never mind the fact that you're really leading by trying to keep up with everybody else and running after them as fast as you can. Everybody will still think you're the person in charge.
It's a great job if you can hack it.
相关推荐
3. **内存管理**:深入探讨了Linux内核如何管理和分配内存资源,包括页表结构、分页机制以及各种内存管理技术。 4. **进程调度**:分析了Linux内核中的进程调度策略,如CFS(Completely Fair Scheduler)等,并讨论...
PDF版深入理解Linux内核(第三版)(英文版)Understanding the Linux Kernel Linux 内核是操作系统的核心组件,它负责管理计算机硬件资源,提供基础设施给应用程序, Linux 内核的设计和实现对整个操作系统的性能...
linux内核管理linux内核管理linux内核管理linux内核管理linux内核管理
Linux内核是开源操作系统的核心部分,它负责管理系统的硬件资源,调度进程,提供系统调用接口,以及确保系统的稳定性和安全性。对Linux内核的深入分析对于理解操作系统的工作原理至关重要,尤其是在开发驱动程序、...
"Linux内核注释--Linux kernel introduction"这一资料很可能是对Linux内核源代码的详细解释和注解,帮助开发者理解其工作原理和内部机制。 Linux内核注释通常包含以下几个关键知识点: 1. **进程管理**:内核如何...
《深入理解Linux内核》和《Linux内核设计与实现》是两本经典的Linux内核研究书籍,旨在帮助读者从宏观到微观全面了解Linux操作系统的核心机制。这两本书结合阅读,可以为初学者提供一个系统而深入的学习路径。 ...
这张"linux_kernel_map.png"图对于理解Linux内核的内存管理和运行机制非常有帮助,尤其是对于想要深入学习Linux内核的开发者和系统管理员来说,它是一个宝贵的参考工具。通过分析和研究这张图,我们可以更清晰地了解...
Linux内核文档是Linux操作系统核心部分的官方文档,它涵盖了内核的使用、安装、配置、开发和维护等方面的内容。这些文档是Linux内核开发团队和社区成员共同努力、持续更新的工作成果。文档内容包括但不限于许可证...
2. 宏内核架构:Linux遵循宏内核(Monolithic kernel)架构,内核中的所有组件几乎都运行在同一个地址空间,这通常提供了比微内核更好的性能,但也可能导致更复杂的内核代码和管理难度。 3. 进程调度:Linux内核...
阅读《奔跑吧,Linux内核(ARM)》,读者将了解到如何在ARM平台上调试内核,包括使用GDB进行远程调试,以及利用kernel log和sysfs来获取内核运行时信息。此外,书中的实例可能涵盖了内核模块开发,这是扩展内核功能的...
linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...
linux 内核升级步骤 Linux 内核升级是指将 Linux 操作系统的内核从低版本升级到高版本的过程。在本文中,我们将以 Linux 2.4 内核升级到 2.6 内核为例,详细介绍升级的步骤。 为何需要升级 Linux 内核?升级 Linux...
该内核的源代码包括文件系统、进程管理、内存管理和网络协议等多个子系统。它采用模块化的设计理念,允许开发者扩展和替换不同的部分。Linux 0.11内核具有高度的可移植性和可扩展性,可以在多个硬件平台上运行,并且...
### Linux内核源代码的阅读及相关工具介绍 #### 引言 随着Linux系统的广泛应用与不断发展,深入了解其内部机制变得越来越重要。而理解Linux的核心部分——内核,最直接有效的方式便是阅读并分析其源代码。很多人对...
深入Linux内核.pdf 深入Linux内核.pdf是关于Linux操作系统内核的详细介绍,涵盖了内核的概念、版本号、配置和创建、模块支持等方面的知识点。 Linux操作系统是目前最红火的操作系统,尤其对 于喜欢“DIY”的我们...
Linux内核是Linux操作系统的核心部分,负责管理系统的硬件资源,如处理器、内存和磁盘,以及提供系统调用来供应用程序使用。它是开源的,这意味着任何人都可以查看、修改和分发它的源代码。内核更新通常包含性能优化...
【Linux内核经典面试题详解】 1. Linux内核锁:Linux内核中主要有自旋锁和信号量两种锁机制。自旋锁用于保护短暂的、不会引起阻塞的临界区,而信号量则允许任务在无法获取锁时进入睡眠状态,适合处理可能长时间持有...