EDA365电子论坛网

标题: 大牛建议的Linux 内核学习路线 [打印本页]

作者: mytomorrow    时间: 2019-8-30 08:30
标题: 大牛建议的Linux 内核学习路线

1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。

2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。
! J" Y  j  B4 c7 X; b3. 有了Linux内核的了解,还需要具体研究Linux内核源码。最经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学。这本书学起来相当费力了,那么多多代码要研究。不过这本书如果学明白了,恭喜你,Linux内核你已经很熟悉了。
& L! [4 ]5 i/ a
9 j' `; X( \, S2 P5 m: r. C
4. 如果要开发设备驱动,可以学习《linux设备驱动程序》O'Reilly出版社的。这本作为驱动的入门是很好的资料。另外还有一本《精通Linux 驱动程序开发》也是不错的教材,可以参考着看。学习驱动,免不了要学习一些硬件的协议和资料,研究哪个就找到相应的硬件文档,把硬件的工作原理搞明白。这些就不细说了。
2 O: M1 [/ X2 b+ {

( L/ j5 G% M) _; E5. 网络部分,学些Linux网络部分就学习《深入理解LINUX网络技术内幕》。这本书把Linux的网络部分讲的非常清晰透彻。但是通常不做这方面的工作研究,也不用研究这么深,毕竟现在国内相关职位较少。

2 t2 T& j; s- y/ z5 L4 X5 {/ ^3 W" M
! ]9 u& R8 v! a, w1 |; w6. 现在Linux相关的工作,多集中在一些嵌入式开发领域,arm,mips等,要学习以下这些体系架构的的资料,了解CPU的设计和工作方式。ARM就看对应的芯片手册,讲的很细致。MIPS就看 《see mips run》,有一二两版,两版内容有些差异,推荐都看。

, c% t1 r- X( P2 o! p
# m$ L) m2 l& u  V3 p/ G7. 补充一点经验。不要认为Linux很庞大,很复杂,就觉的很难学。任何东西认真学下来都是能学会的,看你都恒心和毅力了。另外,不要走弯路,不要看市面上讲什么Linux0.11的那些书,直接学你要学的东西。就像学C语言看什么谭浩强一样,弯路走了,力气没少花,还严重影响学习效果。
7 E! }0 ]: z/ h1 Q( A8 U3 f1 @& y4 `; t6 C  e) [* J4 Q

, q  V# }6 }* ?* e你问的内核,多给你说几句应用编程,有时候经常会需要的:
' ~6 c- C5 }6 i9 s' |, X! k
- p8 c. X# E, Q' ~: l
1. 学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统都认识。

7 S' F5 c, `% U7 d
8 E% V4 G8 i6 I7 K( P; Q2 j  T2. 针对Linux,有本 《Linux系统编程》,学完上一本,这本很快看一遍就懂了。主要是针对Linux具体懂一些内容,讲的挺全了,很实用。
5 r( x! S4 e3 N" M

, S2 m9 r! D" t3 Z1 }3. Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。
0 X0 w# c/ B# ]* Z! d) Z6 ?$ D, F$ G4 [
% ^- d! {; Z3 f6 A, w" Z
这些内容,分几年时间,分步计划学习,相信很快就会成为Linux高手了。
7 K2 d/ R) C' t  x4 t

! H& {0 E( N- B' b7 Y

/ {+ Z9 J& ]4 H' I4 I  Z, v  M& q0 p) }
3 K9 i2 J  [* V) ^6 u
" P5 a% O. O' Z6 L  h
6 }) l- t& U( q

" o4 ~5 ?) v$ g7 @* `2 e$ v8 u* l
作者: freebigfish    时间: 2019-8-30 09:18
楼主是四级,我也是四级,怎么你就那么突出呢?拜一个




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2