Linux网络编程&内核学习

时间:2023-03-08 16:08:30

c语言:

基础篇

1.《写给大家看的C语言书(第2版)》

Linux网络编程&内核学习

原书名: Absolute Beginner's Guide to C (2nd Edition) 
原出版社: Sams 
作者: (美)Greg Perry    [作译者介绍] 
译者: 谢晓钢 刘艳娟 
丛书名: 图灵程序设计丛书 C/C++系列 
出版社:人民邮电出版社 
ISBN:9787115216359
上架时间:2009-12-10
出版日期:2010 年1月
开本:16开
页码:308

说明:这本是入门最好的,最简单,最好懂

2.《C语言程序设计:现代方法:第2版》

Linux网络编程&内核学习

老版,其实改变不大

Linux网络编程&内核学习

原书名: C Programming: A Modern Approach, 2nd Edition 
原出版社: W. W. Norton & Company 
作者: (美)K. N. King    [作译者介绍] 
译者: 吕秀锋 黄倩 
丛书名: 图灵程序设计丛书 C/C++系列 
出版社:人民邮电出版社 
ISBN:9787115219572
上架时间:2010-3-16
出版日期:2010 年4月
开本:16开
页码:600

说明:被誉为"近10年来最好的一部C语言著作"。

3.《C语言解析教程》和《C语言教程》

Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习

原书名: C by Dissection The Essentials of C Programming Fourth Edition 
原出版社: Addison-Wesley 
作者: (美)Al Kelley Ira Pohl    [作译者介绍] 
译者: 麻志毅 
丛书名: 计算机科学丛书 
出版社:机械工业出版社 
ISBN:7111093364
上架时间:2002-1-24
出版日期:2002 年1月
页码:436

原书名: A Book on C: Programming in C (4th Edition) 
原出版社: Addison-Wesley 
作者: (美)Al Kelley, Ira Pohl    [作译者介绍] 
译者: 徐波 
丛书名: 计算机科学丛书 
出版社:机械工业出版社 
ISBN:7111202139
上架时间:2006-12-13
出版日期:2007 年1月

说明:2本书相似度很大。《C语言解析教程》基础一点,而《C语言教程》相对难点,第二本先后2006年和2011年2次出版,内容是一样的,现在只能买新版,要说区别就是2011版比2006版贵点。这本书写的超级经典,值得一看。

4.《C语言大全第四版》

Linux网络编程&内核学习

作者: 赫伯特・希尔特
译者: 王子恢 戴健鹏 等
出版社: 电子工业出版社
出版年: 2001-9-1
页数: 560
定价: 48.00
装帧: 平装(无盘)
ISBN: 9787505369153

说明:这本完全适合零基础的,另外这本书买不到了,虽然计算机更新换代很快,但是C永远不会淘汰,最起码20年内还不会。

入门书籍比较老了 2001年的 有电子版的  讲的比较全  也很好懂  需要注意不要下载错了!

———————————————————————————————————————

5.《C Primer Plus》

Linux网络编程&内核学习

副标题: Primer Plus
作者: Stephen Prata / 云巅工作室
译者: 云巅工作室
出版社: 人民邮电出版社
出版年: 2005-2
页数: 626
定价: 60.00元
装帧: 平装
ISBN: 9787115130228

说明:有基础可以直接看这本经典的入门书。书很厚,近700页,却不没有让我觉得任何的烦琐。

———————————————————————————————————————

提高篇

1.《C和指针》(一定要看,如果只买一本C的书那么就是这本)

Linux网络编程&内核学习

作者: Kenneth A.Reek
译者: 徐波
出版社: 人民邮电出版社
出版年: 2008 年4月
页数: 448
定价: 65.00
装帧: 平装
ISBN: 9787115172013

说明:入门后提高的书,也可以当入门书,但是这本书其实有一定的深度,所以不推荐做第一本!

这本书最大的特点就是和指针结合在一起进行讲解。这是最经典的一本我觉得。

———————————————————————————————————————

2.《C程序设计语言(第2版·新版)》

Linux网络编程&内核学习

作者: 克尼汉
译者: 徐宝文
出版社: 机械工业出版社
出版年: 2004-1
页数: 258
定价: 30.00元
装帧: 平装
ISBN: 9787111128069

说明:同名的太多,一定不要买国内的!这本书作者是C语言之父。所以推荐这本书不需要太多的理由吧。

入门后提高的书,也可以当入门书。数很薄但精简,内容详实,值得一读。

———————————————————————————————————————

3.《C语言核心技术》

作者: (美)Peter Prinz    Tony Crawford    
译者: O'Reilly *公司 
丛书名: 坚果系列 
出版社:机械工业出版社 
ISBN:9787111220503
上架时间:2007-8-28
出版日期:2007 年8月
开本:16开
页码:589

Linux网络编程&内核学习

IN A NUTSHELL 系列是程序员的案头参考书. 本书由O‘REILLY*公司翻译,从根本上保证了翻译的质量。

———————————————————————————————————————

4.《C 陷阱与缺陷》

Linux网络编程&内核学习

作者: Andrew Koenig
译者: 高巍
出版社: 人民邮电出版社
出版年: 2008-2
页数: 172
定价: 30.00元
装帧: 平装
ISBN: 9787115171795

说明:提高的书。这本书虽然著于1989年,但其中的要点却不过时,讲的全是C语言的精华,已经第18次印刷了,多本书里提到这本书。书很薄。

———————————————————————————————————————

5.《C专家编程》

Linux网络编程&内核学习

作者: Peter Van / Der Linden
译者: 徐波
出版社: 人民邮电出版社
出版年: 2008-2
页数: 291
定价: 45.00元
装帧: 平装
ISBN: 9787115171801

说明:提高版,和.《C和指针》.《C 陷阱与缺陷》是一个系列。

———————————————————————————————————————

6《你必须知道的495个C语言问题》

Linux网络编程&内核学习

作者: Steve Summit
出版社: 人民邮电出版社
出版年: 2009-2
页数: 260
定价: 45.00元
装帧: 平装
丛书: 图灵程序设计丛书
ISBN: 9787115194329

说明:这本书讲的都是技巧总结,都是经常遇到的一些容易混淆的问题。

———————————————————————————————————————

数据结构和算法

1.《数据结构基础(C语言版)第二版》

Linux网络编程&内核学习

作者: (美)Ellis Horowitz
译者: 朱仲涛 
丛书名: 世界著名计算机教材精选 
出版社:清华大学出版社 
ISBN:9787302186960
上架时间:2009-3-27
出版日期:2009 年3月
开本:16开
页码:470

下面是第一版 2本书居然是2个出版社分别翻译  买一本就够了 千万不要买重

Linux网络编程&内核学习

作者: Ellis Horowitz / Sartaj Sahni / Susan Anderson-Freed
译者: 李建中 / 张岩 / 李治军
出版社: 机械工业出版社
出版年: 2006-7
页数: 376
定价: 48.00元
装帧: 平装
ISBN: 9787111187981
说明:层次清晰,代码质量高。 有一定难度,需要有基础。书非常经典,适合计算机专业的人进行深入的学习。

———————————————————————————————————————

2.《数据结构与算法分析:C语言描述(原书第2版)》

Linux网络编程&内核学习

副标题: C语言描述
作者: 维斯
译者: 冯舜玺
出版社: 机械工业出版社
出版年: 2004-1
页数: 391
定价: 35.00元
装帧: 平装
ISBN: 9787111127482

说明:学好基础以后,还需要看看算法数据结构的书。

里面的分析数学公式恰到好处,没有算法导论的令人望而生畏,也没有国内图书的草草了事,既学习了数据结构又有刚刚好的算法分析,很容易使人产生共鸣。

Linux网络编程

首先要说讲述计算机网络和TCP/IP的书很多。

先要学习网络知识才谈得上编程

讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。

《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。

目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。

Linux网络编程&内核学习

第五版是2012年出的,也比较新。

作  者: (美)特南鲍姆,(美)韦瑟罗尔 著 严伟,潘爱民 译 丛 书 名:
出 版 社: 清华大学出版社ISBN:9787302274629出版时间:2012-03-01

-----------------------------------------------------------------------------

《计算机网络:自顶向下方法(原书第4版) 》

作  者: (美)库罗斯 著 陈鸣 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111165057出版时间:2009-01-01

《计算机网络系统方法(原书第4版)》

作  者: (美)彼得森(Peterson,L.L.),(美)戴维(Davie,B.S) 著 薛静锋 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111251385出版时间:2009-02-01

Linux网络编程&内核学习Linux网络编程&内核学习

如果觉得Tanenbaum的看的不够过瘾可以看这2本,这2本出版的时间和版面的差不多,各有特色,特别是“自顶向下”是一个很好的概念!

------------------------------------------------------------------------------

了解网络知识看看上面的     开发必看下面的

------------------------------------------------------------------------------

如果说只是了解网络基础知识看看上面3本即可,但是要想做开发一定要看下面的

《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本

其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》

作者W.Richard Stevens个人网站  http://www.kohala.com/

大师作品部部经典,可惜1999年去另一个世界维护Unix了。。。。。。。。。

说明:搞Linux网络编程的,想学TCP/IP的一定要看大师W.Richard Stevens这六本书,基本上六本书看完基础也就搭好了。

Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习

W.Richard Stevens(1951-1999),国际知名的UNIX和网络专家,受人人尊敬的作家。他的著作有《UNIX网络编程》(两卷本),《UNIX环境高级编程》,《TCP/IP详解》(三卷本)等,同时他还是广受欢迎的教师和顾问。

  Stevens先生1951年生于赞比亚,早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程。

  Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。

  W. Richard Stevens对我们这些学习Unix/Linux的程序员的影响是巨大的,每每捧读老先生的书都会被感动,不仅被他那丰富的知识所折服,更是被他那一丝不苟,严谨治学的态度所倾倒。“他不清楚的,他下决心要弄明白。他知道的,他要努力传授给所有感兴趣的人们!”这就是我们的Stevens!一生能有其一部力作可谓无憾矣!而况七部乎?

  一位朋友说:“Stevens的书一定要全部认真地去读的。”我想他是对的。最后,对Stevens在天英灵说声:谢谢您!想必这时他正坐在上帝身边,继续从事他的写作。

W. Richard Stevens Biography 
http://www.kohala.com/start/bio1.html

W. Richard Stevens' Home Page 
http://www.kohala.com/start/

W. Richard Stevens on Wikipedia 
http://en.wikipedia.org/wiki/W._Richard_Stevens

Guru of the Unix gurus 
http://archive.salon.com/tech/feature/2000/09/01/rich_stevens/index.html

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《用TCP/IP进行网际互连第一卷:原理、协议与结构(第五版)》

《用TCP/IP进行网际互连第二卷——设计、实现与内核》

《用TCP/IP进行网际互连第三卷:客户-服务器编程与应用(Linux/POSIX套接字版)》

Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习

说明:这个系列也是三卷本,和《TCP/IP详解》三卷本一样也是经典,区别是  网际互联 偏重理论而 详解偏重实际。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

如果你看了上面2套TCP/IP的书6本还不尽兴,还有一套书可以作为提高或者查缺补漏

Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习Linux网络编程&内核学习

虽然与W.Richard Stevens TCP/IP详解 有一定的差距,但仍不失为下一代IPv6网络的参考工具书,值得收藏学习

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《TCP/IP协议族(第4版)》

Linux网络编程&内核学习

比TCP/IP详解要容易理解一些,并且图文并茂是本书的一大特色,还有就是举得例子比较多,有助于读者理解概念性的东西,给人感觉不是特别枯燥。总之,这本书适合初学者,而TCP/IP详解适合有一定网络方面基础的人。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《TCP/IP协议原理与应用(第3版)》

Linux网络编程&内核学习

写的非常好,建议一定要买!可作入门,但即使是高手,也应看看,学习作者分析问题的方法和思想。其实是无数次印刷了,经典不能错过。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《TCP/IP高效编程 : 改善网络程序的44个技巧》

Linux网络编程&内核学习

很明显属于技巧类的书,同样这本书很老,但是还是很有参考价值,这本书中大量出现Unix网络编程的提示,可以作为其补充。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《TCP/IP路由技术》

Linux网络编程&内核学习Linux网络编程&内核学习

思科出的

这本书主要在讲内部路由协议,有RIP、RIPV2、RIPng、IGRP、EIGRP、OSPF、IS-IS协议,详实的描述了基本上现在主要的内部网关协议的工作原理,它们的优点与不足,以及配置方法(基于CISCO 路由器产品)和排错等。本书称不上非常的通俗,但是在有一定的基础的情况下还是比较容易看懂的。本书是世面上极少见的讲述内部网关路由技术的经典书籍,内容极为丰富。对于想清楚的了解内部网关协议的工作原理以及想探究网络通信事物的本质的人来说是一本不可或缺的好书。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

《linux网络体系结构:linux内核中网络协议的设计与实现》

Linux网络编程&内核学习Linux网络编程&内核学习

出版社: 清华大学出版社
装帧: 平装
出版年: 2006-7
又名: The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel
书名: Linux网络体系结构
说明:翻译的很不好,建议看原版,可以下电子版。

一本在kernel实现网络功能的基础书籍,最好还是看英文版的,翻译的实在太烂了。有条件的还是看原版吧,没办法啊,中国的此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。一并把内核结构和各功能在内核中的关系也搞清楚了。

Linux内核学习

关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。

Linux Kernel 四库全书

1. Linux内核设计与实现 Edition 2   
2. Linux设备驱动 Edition 3   
3. Linux内核源代码情景分析   
4. 深入理解Linux内核(第三版)

1.《Linux内核设计与实现》
Linux网络编程&内核学习

本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。

2.《深入理解Linux内核》
Linux网络编程&内核学习

此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。
此书图表很多,形象地给出了关键数据结构的定义,与《Linux内核源代码情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《Linux内核源代码情景分析》。

3.《LINUX设备驱动程序(第3版)》
Linux网络编程&内核学习

这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧

其中关于同步与互斥、内存分配的部分,感觉很不错。

4.《Linux内核源代码情景分析》

Linux网络编程&内核学习

书很好,很经典,是浙大教授毛德操写的,可惜成书于2001年之后一直没有更新。分上下册。

很多是基于2.4内核讲解的需要注意。如果学习的话也建议学习2.6,2.6跟2.4比发生了很多显著改善,应该学习的。

全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。
上册讲解内存管理、中断、异常与系统调用、进程控制、文件系统与传统Unix IPC;下册讲解socket、设备驱动、SMP和引导。

本书基于Intel IA32体系,由于厚度大,很多体系上的知识都捎带讲解了,所以如果你想深入了解内核的工作机制而又不非常熟悉Intel CPU的体系构造,本书是最合适的。

这本书可以结合陈莉君老师的《深入分析Linux内核源代码》,这本书也是2.4内核的,网上可以下载

Linux网络编程&内核学习

作者: 陈莉君
出版社: 人民邮电出版社
出版年: 2002-8
页数: 531
ISBN: 9787115105257

说明:陈老师是上述《深入理解Linux内核》和《Linux内核设计与实现》的作者,曾通读过linux的所有代码。

==================扩充阅读==================

5.《Linux内核源代码分析》

Linux网络编程&内核学习

作者: (美)Scott Maxwell
译者: 冯锐/邢飞/等
出版社: 机械工业出版社
出版年: 2000-06
页数: 633
ISBN: 9787111080923

点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。

6. 《LINUX KERNEL技术手册》

Linux网络编程&内核学习

参考手册,很薄,值得一看。

7.《深入Linux内核架构》

Linux网络编程&内核学习

这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。

如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。 建议可以一边去翻在国内已经闻名已经久的四本Linux内核著作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。

8.《Linux内核完全注释》

Linux网络编程&内核学习

此书出自同济一个博士--赵炯。

本书作者赵炯谈《Linux内核完全注释》和《Linux内核源代码情景分析》..
主要描述和注释了Linux 0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。同样,该书也能作为阅读现代Linux内核源代码的一本参考手册使用。由于该书是对代码逐条进行注释的,因此也能作为深入学习C语言编程的参考书。另外,该书不仅配备有完整的Linux 0.11系统试验环境,而且本人还在一年前就在网上专门建立了一个针对该书的网站“www.oldlinux.org”,专门开辟了一个讨论该书所涉及的Linux内核实现的论坛。目前该网站的内容已经被权威Linux内核发布网站www.kernel.org全部作了镜像(mirrors.kernel.org)。

http://oldlinux.org/index_cn.html

网站宗旨:

收集Linux从酝酿到开发初始版本有关的所有资料和信息(1991-1995);

重新建立起最古老的Linux可运行系统,这些系统在其它地方很难再找到了;

为初学者提供一个学习Linux内核基本工作原理的最简单方法。

本书新版:《Linux内核完全剖析--基于0.12内核》

Linux网络编程&内核学习

2009年出的,很厚。

===============自制操作系统系列==================

9.《Orange S:一个操作系统的实现》

Linux网络编程&内核学习

作者:于渊

出版社: 电子工业出版社; 第1版 (2009年6月1日)

本书第一版2005年出版,这是第二版。

从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。

10.《30天自制操作系统
Linux网络编程&内核学习
作者: (日)川合秀实    [作译者介绍]
译者: 周自恒 李黎明 曾祥江 张文旭
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115287960

点评:小日本写的,不过确实写的内容很好,讲怎么自己一步步写操作系统,从汇编到C都有涉及。

_________________________________________________________________________

unix是Linux的基础,学习linux也要看unix

Unix的绝版好书

UNIX操作系统设计

Linux网络编程&内核学习

原书名:The Design of the UNIX Operating System

作者: (美)Maurice J.Bach   
    译者: 陈葆钰 王旭 柳纯录 冯雪山
    丛书名: 计算机科学丛书
    出版社:机械工业出版社
    ISBN:9787111373971

点评:当年linux之父参考过,非常经典,无需多言

----------------------------------------------------------

UNIX编程环境


Linux网络编程&内核学习
    原书名:The UNIX Programming Environment

作者: Brianw.Kernighan   
    译者: 陈向群
    丛书名: 计算机科学丛书
    出版社:机械工业出版社 
点评:非常好的入门书.书中绝无生僻的角落,对于入门来说没有什么难以理解的。但是字里行间浸透了作者设计unix的指导思想,这一点是别的入门书无法企及的。
  

  书中提及的点滴都是实用的方法和准则,而这些充斥着在unix上一整天的工作,即使是有经验的用户学过此书后工作效率也会提升。

 

UNIX高级教程系统技术内幕

Linux网络编程&内核学习

作者: (美)Uresh Vahalia 
译者: 聊鸿斌/等 
出版社: 清华大学出版社
出版年: 1999-05

点评:老书,有电子版。linux/unix的*宝贝!

来源:http://blog.****.net/21aspnet?viewmode=contents