免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 18406 | 回复: 43
打印 上一主题 下一主题

fudan_abc的Linux内核修炼之道 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-01 22:51 |只看该作者 |倒序浏览
本帖最后由 ilttv.cn 于 2010-07-30 11:11 编辑

fudan_abc的Linux那些事儿系列,应该很多人都看过,现在新书《Linux内核修炼之道》要出来,博客blog.csdn.net/fudan_abc上已经有更新了,下面从里面转点内容,大家可以瞅瞅撒~

书已经可以买到了,网上购买链接为: 卓越当当china-pub

前言


至此落笔之际,恰至Linux问世18周年,18年的成长,如梦似幻,风雨颇多,感慨颇多。

犹自忆起多年以前一位前辈训导时的箴言:今天的必然正是由之前一系列的偶然所决定的。过去的某年某月,我偶然初识Linux就身陷其中,至今仍找不到出去的路,而正是这次乃至之后的多次偶然相联合,从而决定了今日的我要在此写下这些话。那么,当您偶然地拿起这本书,偶然地看到这段话,您是否会问自己:这样的偶然又会导致什么样的必然?

如果您依然决定继续这次的偶然之旅,那么首先请认识两个人,准确的说是一个人和一只企鹅。这个人自然就是Linus Torvalds,我们也可是称他为Linus或李纳斯,正是这位来自芬兰的天才,在1991年1月2日,攥着在圣诞节和生日得到的钱,偶然地做出了一个重大的财政决定,分期三年买一台价格3500美元得相貌平平得计算机,从而Linux开始了。

企鹅则是Linux的标志,很多人可能不知道Linus,但是却可能知道这只企鹅,这是一个奇怪的现象,就像很多人知道微软,却不知道比尔盖茨。不管怎么说,是Linus塑造了这只企鹅,并让它有一副爽透了的样子,就像刚刚吞下一扎啤酒。除此之外,这只企鹅还要很特别,其他的企鹅都是黑嘴巴黑脚蹼,但它却是黄嘴巴黄脚蹼,这使它看上去好像是鸭子与企鹅的杂交品种,也许它是唐老鸭在南极之旅中与一只当地企鹅一夜倾情的结晶。

其次,在您继续之前,我还想请您问自己一个问题:我在强迫自己学习内核么?我很希望您能回答不是,但希望与现实往往都有段不小的距离,因为很多时候,我都发现身边的人是因为觉得内核很高深而强迫自己喜欢的。强迫自己去喜欢一个人是多么痛苦的事情。或许,针对这个问题,最让人愉悦的回答是“说实话,我学习的热情从来都没有低落过。”正如Linus在自己的自传《Just for Fun》中希望的那样。

本书的组织形式

本书将Linux内核的学习分为四个层次:全面了解,掌握基本功;兴趣导向,选择重点深度钻研;融入社区,参与开发做贡献;坚持,坚持,再坚持。总结起来,就是“全面了解抓基本,兴趣导向深钻研;融入社区做贡献,坚持坚持再坚持。”(如果您是一个修真小说爱好者,尽可以将其与炼气、筑基、结丹和元婴等层次相对应。)

第一层次修炼的内容包括了前三章,目的是希望您能够对Linux以及内核有个全面的认识和了解,掌握分析Linux内核源代码的分析方法。

第1章主要介绍了Linux的18年成长史,或许您会乐意陪我一起缅怀下这过去的十八年。

第2章介绍内核的配置和编译过程,和任何大型软件源码的学习一样,学会编译和配置是第一步。

第3章介绍学习内核需要的基础,内核的体系结构、目录结构、代码特点,浏览内核代码的工具,最后,突出强调了内核源码分析过程中极为重要的两个角色——Kconfig和Makefile,并以USB子系统为例,演示了如何利用这两个角色进行代码分析。


第二层次的修炼包括了第4~11章的内容,对内核多数部分的工作原理进行介绍。按照认识的发展规律,在第一层次修炼中已经对内核有个全局的认识和了解之后,接下来就应该以兴趣为导向,寻找一个子系统或模块,对其代码深入钻研和分析,不懂的地方就通过社区、邮件列表或者直接发Email给 maintainer请教等途径弄懂,切勿得过且过,这样分析下来,对同步、中断等等内核的很多机制也同样会非常了解,俗话说一通则百通就是这个道理。

因此第二层次的各个章节里,只是阐释重点的概念和工作原理,帮助您在分析该部分代码时进行理解,并不求详尽。

第4章讨论系统的初始化,万事开头难,系统的初始化是一个很复杂的过程,不过对于内核源码的学习来说,以这个部分开始应该是个不错的选择。特别是子系统初始化的讨论,应该是您选择任何内核子系统开始分析时都需要了解的内容。

第5章讨论系统调用,它是应用程序和内核间的桥梁,学习并理解它是我们走向内核的一个很好的过渡。

第6章讨论内核的中断处理机制,包括几乎任何一本内核书籍都没有涉及的通用IRQ层。

第7章讨论进程的内核抽象,以及进程如何被创建和销毁。如果我们将计算机上运行的操作系统以及各种各样的软件看作一系列有机的生命体,而不是死的指令集合,那么这就是一个进程的世界,只不过与我们人类世界不同的是,进程世界里的个体是一个一个鲜活的进程,而不是人。人的世界有道德与法律去制约管理,进程的世界同样也有自己的管理机制,这就是第7章所要展示的内容——进程管理。

第8章讨论进程的调度,重点讨论了在内核历史上具有重要地位的O(1)调度器和最新的CFS调度起。

第9章讨论内存管理,内存就是进程的家,这里讨论内核如何为每个进程都分配一个家,并尽量的去做到“居者有其屋”,以及保证每个家的安全。

第10章讨论文件系统,主要是虚拟文件系统(VFS),它通过在各种具体的文件系统之上建立一个抽象层,屏蔽了不同文件系统间的差异。

第11章讨论设备驱动,对于驱动开发来说,设备模型的理解是根本,spec、datasheet与内核源代码的利用是关键。
通过第二层次的修炼,您应该对至少一到两个部分有了很深入的理解,对内核代码采用的通用手法也已经很拈熟,那么您应该开始进入第三层次,努力融入到内核的开发社区,此时的您已经不会再是社区中潜水小白的角色,而是会针对某个问题发表自己的见解。您已经可以尝试参与到内核的开发中去,即使仅仅修改了内核中的一个错误单词,翻译了一份大家需要的文档,也是做出了自己的贡献,会得到大家的认可。
本书中第三层次只包括了两章的内容,这是因为内核的修炼之道越往后便越依赖于自己,任何参考书都替代不了自己不断的反思与总结。

第12章讨论参与内核开发需要了解的一些基础信息。

第13章讨论了内核的调试技术,与第12章一样,您可以仅仅将这些内容看成内核修炼中的一些tips。

至于最后的第四层次,更是仅有两个字——坚持。能够在内核的修炼之道上走多远,都取决于我们能够坚持多久,或许一个用一个公式概括更为合适:心态+兴趣+激情+时间+X=Y。

革命尚未成功,我等仍需努力。——与君共勉之。

……

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [报告]
发表于 2010-03-02 08:11 |只看该作者
这个得关注

论坛徽章:
0
3 [报告]
发表于 2010-03-02 09:36 |只看该作者
大家有空可以去逛逛,提些意见,呵呵。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2010-03-02 10:01 |只看该作者
fudan_abc兄让大家钦佩啊

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
5 [报告]
发表于 2010-03-02 10:28 |只看该作者
书还是得多看的。

论坛徽章:
0
6 [报告]
发表于 2010-03-02 18:25 |只看该作者
Linux史记
至此落笔之际,恰至Linux问世18周年,18年的成长,风雨颇多,感慨颇多,谨以这些许年来的点滴之事为Linux的成人礼添彩。

如果你尚未与Linux亲密接触过,那么希望这里的内容可以成为你初识Linux的见证。如果你已经是个Linux达人,那么就选个安静的早晨,抑或下午,陪我一起缅怀下这过去的十八年吧。

Linux诞生记

1987年
MINIX诞生,而我也已端坐于学堂之中,隐去一身的稚气,能够摇头晃脑的吟诵几句诗赋了。若真是冥冥中自有定数的话,或许这时就暗定了4年后Linux的诞生。

1991年
Linus Torvalds,一个芬兰的大学生,对于他不能按照意愿访问大学UNIX服务器而感到很愤怒,于是开始为一个以后被称为“Linux”的内核而工作,并于这一年的10月5日发布了Linux 0.01。

1992年
4月,第一个Linux新闻组“comp.os.linux”建立。10月,第一个可以安装的Linux版本SLS发布。同年,我拿到了平生的第一个毕业证。

1993年
8月,第一本关于Linux的著作《Linux Installation and Getting Started Version 1》出版。而这一年,我最敬佩的语文老师患病离去了,从此,我知道了生活中不仅仅只有欢聚,还有伤别。

1994年
Linux 1.0发布,并采用GPL(GNU General Public License,通用公共许可证)协议。大家要Linus Torvalds想一只吉祥物,Linus突然想到小时候去动物园被一只企鹅追着满地打滚,还被咬了一口!既然想不到其它的吉祥物了,干脆就以这支企鹅来当吉祥物算了!

泰坦尼克的狂潮

1995年
4月,召开首届Linux博览会,一个以Linux为特征的商业展览博览会。几个月后,我迎来了第二个中学阶段。

1996年
Linux 2.0发布,它第一个支持了SMP(对称多处理器)架构。此时Linux的全球用户已经达到了350万左右。

1997年
首例Linux病毒“Bliss”被发现。电影《泰坦尼克号》所用的160台Alpha图形工作站中,有105台采用了Linux。

1998年
1月,第一份Linux新闻周刊出版,同时,Netscape宣布他们将在自由软件许可协议下发布浏览器的源代码,这为Linux和自由软件的发展提供了广阔空间。
2月,Eric Raymond和他的朋友门提出了“open source”的概念,申请了该商标特权并且组建了opensource.org网站,从而开始推动Linux的商业化发展。
4月,Linux广泛被美国国家公共新闻广播报道,标志Linux在主流、非技术性的媒体界首次出现。
5月,Google搜索引擎开始流行,不仅仅是因为它是最好的搜索引擎,而且还因为它是基于Linux和具有Linux特色的搜索网页。
6月,“从来没有一个用户向我提起Linux,Linux就像众多的免费产品一样,虽然它是很小的,却得到了一群忠诚的拥护者。”比尔盖茨在6月25日的《PC周刊》上说。
7月,KDE和GNOME的桌面之争在其拥护者之间愈演愈烈,Linus以实际行动中表明KDE非常好用,在这种情况下,KDE1.0诞生了。Oracle、Informix、Sybase都宣布将积极支持Linux。Linux开始成为一个家喻户晓的词。
9月,Dave Whitinge和Dwight Johnson创建了LinuxToday.com,该网站后来被Internet.com收购,不过它一直是访问量最高和最容易阅读的Linux入门网站。
12月,一篇来自IDC的报导说Linux的发行量在1998年涨了200%以上,它的市场占有率也增加了150%以上。Linux拥有17%的市场占有率并且增长率超过了市场上其它任何一个系统。

同年,我迎来了人生中一个非常重要的时刻:我上大学了!

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
7 [报告]
发表于 2010-03-02 18:27 |只看该作者
LZ什么时候出书啊?

论坛徽章:
0
8 [报告]
发表于 2010-03-02 18:39 |只看该作者
回复 7# goter


    内核修炼之道就这两三个月就上市吧,那些事儿usb部分的合集也是这个时间,这个风格与博客上保持不变,另外还更新了很多有意思的东东,呵呵。

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
9 [报告]
发表于 2010-03-02 18:42 |只看该作者
回复 8# ilttv.cn
那就是要出两本实体书?不知道你是A呢还是B呢还是C呢

论坛徽章:
0
10 [报告]
发表于 2010-03-02 18:44 |只看该作者
回复 9# goter


    呵呵,是两本吧,那些事儿本来没想着出的,就是写着娱乐大家的,博文视点的一编辑朋友说可以出,就整理了下。至于修炼之道,是人邮的一编辑朋友约的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP