请高手推荐些学习linux内核的资料

zouxueping 2009-03-05 11:08:16
我的基本情况如下:没有使用过linux,接触C语言十年了,熟悉UC/OS,nucleus操作系统,windows和CE有所了解,移植过MICROWINDOWS,从事嵌入式编程多年。眼见linux平台下资源丰富,也想分一杯羹。望各路高手推荐些学习资料,包括书籍、网站、源码等,谢谢分享!
...全文
725 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tang608 2009-04-10
  • 打赏
  • 举报
回复
<引的帖子>

建议学习路径:

  首先先学学编辑器,vim, emacs什么的都行。
然后学make file文件,只要知道一点就行,这样就可以准备编程序了。

  然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。

  如果想学习UNIX/LINUX的编程,《Advanced Programing in Unix Envirement》绝对经典的教材,加深一下功底,学习《Unix Network Programing》的第二卷。这样基本上系统方面的就可以掌握了。

  然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。
如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。

  对于几本经典教材的评价:

  《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。

  《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。

  《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。

  《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。

  《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。

  《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
有一个清晰的认识。

  《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。


推荐《unix环境高级编程》
《linux kernel development》(中文名忘了)
《linux内核剖析》
《linux设备驱动》
《深入理解linux内核》
morris88 2009-04-06
  • 打赏
  • 举报
回复
从你的经历来看,貌似先看看《linux内核源代码情景分析》这个更好吧,它写的很不错。
sahusoft 2009-04-06
  • 打赏
  • 举报
回复
Linux设备驱动开发.pdf(LDD3)
http://download.csdn.net/source/1122732
loveisbug 2009-03-20
  • 打赏
  • 举报
回复
情景分析是很好。
bxhzct 2009-03-20
  • 打赏
  • 举报
回复
在网上下个linux 0.11的pdf看,上面的注释很前面,很不错
楼主努力
c++plus 2009-03-19
  • 打赏
  • 举报
回复
:::
liu_xiaosan 2009-03-13
  • 打赏
  • 举报
回复
接触C语言10年居然对linux这么陌生?
starlight2009 2009-03-13
  • 打赏
  • 举报
回复
学习之中..!!
xhy_851221 2009-03-08
  • 打赏
  • 举报
回复
linux内核完全剖析讲的是0.11版本,感觉LZ的水平似乎不用这本来入门了
《深入理解LINUX内核》讲的是2.6内核,可以配着内核源代码来看。
国内也有一本讲内核的《linux内核源代码情景分析》浙江大学的,讲的2.4,网上
都说很好,没看过。
bainan 2009-03-07
  • 打赏
  • 举报
回复
Understand linux kernel 3rd edition (深入理解linux内核)很经典啊

Linux 设备驱动 Edition 3 也很不错

还有就是利用网络查找资料
white1977 2009-03-05
  • 打赏
  • 举报
回复
看你想做那部分了。是应用程序、驱动还是内核。
linux kernel :http://wiki.zh-kernel.org/
linux drivers: http://www.linuxdriver.cn/
linux programm :http://www.chineselinuxuniversity.net/
white1977 2009-03-05
  • 打赏
  • 举报
回复
看你想做那部分了。是应用程序、驱动还是内核。
linux kernel :http://wiki.zh-kernel.org/
linux drivers: http://www.linuxdriver.cn/
linux programm :http://www.chineselinuxuniversity.net/
  • 打赏
  • 举报
回复
赵炯的那本内核呢?可以看下.
独孤过儿 2009-03-05
  • 打赏
  • 举报
回复
Linux内核完全注释 赵炯

Understand linux kernel 3rd edition
wuyu637 2009-03-05
  • 打赏
  • 举报
回复
http://www.kerneltravel.net/
pottichu 2009-03-05
  • 打赏
  • 举报
回复
以你的水平,上手这些东西应该是很容易的。

不要开始就急着看内核代码,先看看《LINUX内核设计与实现 Edition 2 》
对kernel有一个整体的认识。
再读《Linux 设备驱动 Edition 3 》对驱动开发有个感性的认识。

至于内核版本, 肯定是2.6 了。
zouxueping 2009-03-05
  • 打赏
  • 举报
回复
谢谢各位指点,三个方面我都有其它平台经验,都想了解一下,主要是内核。哪个版本的linux代码可读性好,适合学习些啊。
saintswordsman 2009-03-05
  • 打赏
  • 举报
回复
linux2.6内核标准教程
人民邮电出版社
pottichu 2009-03-05
  • 打赏
  • 举报
回复
1. LINUX内核设计与实现 Edition 2
2. Linux 设备驱动 Edition 3
3. LINUX内核源代码情景分析
4. 深入理解LINUX内核(第三版)

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧