[嵌入式linux] 如何高效学习linux内核

[复制链接]
3749|18
 楼主| sunplusedu2012a 发表于 2012-11-30 12:10 | 显示全部楼层 |阅读模式
很多人在学习linux内核过程中容易犯的一个极其严重路线错误:对linux几乎不懂就开始学习内核。我个人推荐一个学习路线是:使用linux〉linxu系统编程开发---〉驱动开发和分析linux内核。而我差不多相反,实际上你不会使用linux也可以学习内核,但是如果你懂了这些东西学习更有效率。
  如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后的嵌入式系统的开发有很好的影响。如果你想从事嵌入式linux系统开发,最好对内核有所了解。如果仅仅是做应用开发没有必要。我打个比喻:c、c++、java等语言是武林中的某个武林派别的话,如什么拳法,什么刀法等,那么linux内核应该是一个人的内功的反应。
  看内核期间是个非常痛苦的过程,看情景分析有种在森林中找出路,其间我组织了一些同学学习内核,几乎没有几个能**下来的。我认为我是**下来了。情景分析在看第一、第二遍是几乎没有摸到门道,我分析有三个方面的原因:1、自己的基础差,这是最关键的。2、内核本身很难。3、没有交流和高人指点。到了第三遍时我才摸到门,才差不多知道个linux的大概脉络,很多细节也是稀里糊涂。
  下面是我推荐的学习linux内核的重要书籍:
  Linux内核
  1、《深入理解Linux内核》(第三版)
  2、《Linux内核源代码情景分析》毛德操 胡希明著
lelee007 发表于 2012-12-1 23:52 | 显示全部楼层
有软件功底的话,把源码情景分析多看两遍就差不多可以研究kernel了
brandnew 发表于 2012-12-3 22:10 | 显示全部楼层
从init/main.c开始哈。
zoomone 发表于 2012-12-12 23:42 | 显示全部楼层
brandnew 发表于 2012-12-3 22:10
从init/main.c开始哈。

我是从Head.S开始的,可是到init/main.c就看不动了。linux是由多个子系统拼组起来的庞大系统,而main.c承担了各个子系统的初始化工作,要是能将mian.c彻底搞明白基本要对各个子系统有所了解,这很不容易。所以,我现在从单个子系统学起。:lol

评分

参与人数 1威望 +5 收起 理由
dong_abc + 5 赞一个!

查看全部评分

江枫渔火 发表于 2012-12-13 15:15 | 显示全部楼层
还有很长的路~唉,都老了
梅花望青竹 发表于 2012-12-14 22:38 | 显示全部楼层
才入门而已
zh5202 发表于 2012-12-18 12:43 | 显示全部楼层
才开始,路还很漫长啊
scb 发表于 2012-12-18 13:27 | 显示全部楼层
08只能不断看代码,反复看书
scb 发表于 2012-12-18 13:39 | 显示全部楼层
08aa只能不断看代码,反复看书
scb 发表于 2012-12-18 13:43 | 显示全部楼层
08宪章多写代码
qq1959837802 发表于 2013-1-3 13:09 | 显示全部楼层
还没开始,才学到linux环境编程
qinhuan7 发表于 2013-1-4 21:10 | 显示全部楼层
yanwenbin33 发表于 2013-2-4 18:31 | 显示全部楼层
只是开始看《深入理解linux内核》,看第一遍呢,能看懂的不多啊!源代码还不敢看。想先了解内核怎么工作的,再看源码怎么实现相应功能的,不知道这样行不行啊?
zxw_linux 发表于 2013-2-17 15:54 | 显示全部楼层
我觉得LS的方法是可以的
Mr_driver 发表于 2013-2-19 12:42 | 显示全部楼层
真相只有一个,答案尽在源码、、、
fpyelech 发表于 2013-2-23 16:33 | 显示全部楼层
<<Linux内核设计与实现>>   这本书怎么样?
outstanding 发表于 2013-7-15 09:53 | 显示全部楼层
黄昏初见 发表于 2013-7-21 20:22 | 显示全部楼层
请问楼主,你看的是这几本书,还是内核源代码?
看云听歌 发表于 2013-7-22 18:02 | 显示全部楼层
第一步看啥,鸟哥的linux私房菜基础怎样:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我很懒,什么也没有留下

49

主题

78

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部