1、源码下载:

https://www.kernel.org/

HTTP https://www.kernel.org/pub/
GIT https://git.kernel.org/

官网下载经常速度太慢,无法下载,提供另一个链接:

http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/

 

2、如何学习:

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

2)了解Linux的机制。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透;

3)有了Linux内核的了解,还需要具体研究Linux内核源码。最经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学,这本书学起来相当费力了,那么多多代码要研究;

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

5)学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统都认识;

6)Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。