当前位置:  技术问答>linux和unix

跪求大牛传授linux内核学习方法和路线

    来源: 互联网  发布时间:2017-05-25

    本文导语:  本人学习linux内核一个周了,但是内核中的东西实在是看不太懂,而且不知道那些部分是必须要看的,现在在看linux内核的启动过程。比较困难,请高人指点。 | 以下是我给你的建议,一定要...

本人学习linux内核一个周了,但是内核中的东西实在是看不太懂,而且不知道那些部分是必须要看的,现在在看linux内核的启动过程。比较困难,请高人指点。

|
以下是我给你的建议,一定要给分啊。

1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。
2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。
3. 有了Linux内核的了解,还需要具体研究Linux内核源码。最经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学。这本书学起来相当费力了,那么多多代码要研究。不过这本书如果学明白了,恭喜你,Linux内核你已经很熟悉了。
4. 如果要开发设备驱动,可以学习《linux设备驱动程序》O'Reilly出版社的。这本作为驱动的入门是很好的资料。另外还有一本《精通Linux 驱动程序开发》也是不错的教材,可以参考着看。学习驱动,免不了要学习一些硬件的协议和资料,研究哪个就找到相应的硬件文档,把硬件的工作原理搞明白。这些就不细说了。
5. 网络部分,学些Linux网络部分就学习《深入理解LINUX网络技术内幕》。这本书把Linux的网络部分讲的非常清晰透彻。但是通常不做这方面的工作研究,也不用研究这么深,毕竟现在国内相关职位较少。
6. 现在Linux相关的工作,多集中在一些嵌入式开发领域,arm,mips等,要学习以下这些体系架构的的资料,了解CPU的设计和工作方式。ARM就看对应的芯片手册,讲的很细致。MIPS就看 《see mips run》,有一二两版,两版内容有些差异,推荐都看。
7. 补充一点经验。不要认为Linux很庞大,很复杂,就觉的很难学。任何东西认真学下来都是能学会的,看你都恒心和毅力了。另外,不要走弯路,不要看市面上讲什么Linux0.11的那些书,直接学你要学的东西。就像学C语言看什么谭浩强一样,弯路走了,力气没少花,还严重影响学习效果。

你问的内核,多给你说几句应用编程,有时候经常会需要的:
1. 学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统都认识。
2. 针对Linux,有本 《Linux系统编程》,学完上一本,这本很快看一遍就懂了。主要是针对Linux具体懂一些内容,讲的挺全了,很实用。
3. Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。

这些内容,你分几年时间,分步计划学习,就会成为Linux高手了。



|
如果没有学过OS,先看汤子赢:这本书虽然是通用教材,但是OS思想算法绝大多数和linux基本一致,也算必备基础
然后看内核主线.看过后你会发现和上面那本书框架差不多,不过这里单一针对linux主要的算法和实现原理
再升级:这是不朽之作,真正的把内核原理剖析的相当细,原理讲解也很清楚!
其他分支《深入理解网络技术内幕》《设备驱动》《精通设备驱动开发》《内核架构》都可以涉猎,此外还有个边角料《程序员自我修养,装载,链接》这个看了对内核进程PCB相关段内容有帮助,以及linux主要程序格式ELF解析
一定要看看源代码, 祝你学习愉快!

|
据我所知,没有啥捷径吧。老实一点一点啃吧。个人愚见:看看经典的书,比如《Linux内核设计与实现》->《深入理解Linux内核》->《Linux驱动程序》,当然读源码必不可少,推荐对一下早期的0.11版本吧。研究这玩意,大部分人还是为了练内功吧。真正能在上面动刀的人不多吧?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 半路出家转行学编程如何才能成为大牛?
  • 呼唤大牛,大牛降临护乎!!!(linux,开启进程问题)
  • 求大牛们赐教!
  • 请大牛指导程序思路
  • 难道csdn没有gstreamer大牛?
  • EJB这么火,决定开始学习,请各位大牛指教,初学该看什么书?
  • 首先,这不是个问题,是个总结。(弱智型的。大牛们不要笑话俺)
  • 那位大牛能知道????
  • 请教版上大牛~
  • 安装net-snmp时遇到问题了,请大牛们指导
  • [求助大牛]如何将连续的多个空格换成tab?
  • [跪求大牛]硬盘有点泄露了。。。
  • 求shell大牛指点
  • 请教各位大牛一个makefile的问题
  • linux下采集视频数据的相关问题,是大牛就进来吧~~
  • 请大牛帮忙,shell脚本的问题
  • 有关Ubuntu的问题,请大牛指点(内详)
  • linux的图形界面为什么没有命令行重要呢,大牛们帮我解惑吧
  • linux大牛来救!HTTP服务器配置文件directory容器中options参数怎么一回事?
  • 请教各位大牛~~那个系统调用open()创建的是什么类型的文件?
  • !!请各位大牛帮忙了,在linux下提取系统时间的话,用什么方法能提取到比毫秒更精确的时间呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3