我从事云计算网络开发已经超过一年了,今天从我个人的角度总结一下我的学习路径。
OpenStack是一个开源的IaaS(Infrastructure as a Service,基础设施即服务)云计算平台,Neutron作为它的网络组件,提供了云计算环境下的虚拟网络功能,虚拟网络的主要特点是SDN(Software Defined Network,软件定义网络)和NFV(Network Function Virtualization,网络功能虚拟化)
我的学习路径是:
1、阅读TCPv1,学习网络知识
2、理解Neutron,学习虚拟网络知识
3、借助《深入理解Nginx》阅读Nginx源码,学习一个高性能服务器的具体实现。由于Nginx源码包含非常多的系统调用,同时阅读UNPv1-2,学习Linux网络编程
4、阅读APUE,学习Linux系统编程
5、借助《深入浅出DPDK》阅读DPDK源码,学习基于DPDK开发高性能网络应用
6、阅读内核协议栈源码,学习网络底层细节
1、Linux内核
1.1 四库全书
(1)Linux内核设计与实现(LKD)
https://book.douban.com/subject/6097773/
(2)深入理解Linux内核(ULK)
https://book.douban.com/subject/2287506/
(3)Linux设备驱动程序(LDD)
https://book.douban.com/subject/1723151/
(4)Linux内核源代码情景分析
https://book.douban.com/subject/1231584/
https://book.douban.com/subject/1240321/
1.2 驱动
深入Linux设备驱动程序内核机制
https://book.douban.com/subject/10433743/
Linux设备驱动开发详解
https://book.douban.com/subject/26600201/
1.3 网络
深入理解Linux网络技术内幕
https://book.douban.com/subject/4015134/
Linux内核源码剖析 TCP/IP实现
https://book.douban.com/subject/5914256/
2、计算机基础
2.1 数据结构
算法导论(CLRS)
https://book.douban.com/subject/20432061/
2.2 计算机组成原理
深入理解计算机系统(CSAPP)
https://book.douban.com/subject/26912767/
2.3 操作系统
操作系统导论(OSTEP)
https://book.douban.com/subject/33463930/
2.4 计算机网络
TCP/IP详解 卷1:协议(TCPv1)
https://book.douban.com/subject/26825411/
2.5 编译原理
编译原理(龙书)
https://book.douban.com/subject/3296317/
现代编译原理(虎书)
https://book.douban.com/subject/30191414/
高级编译器设计与实现(鲸书)
https://book.douban.com/subject/1400374/
2.6 其它
程序员的自我修养
https://book.douban.com/subject/3652388/
鸟哥的Linux私房菜 基础学习篇
https://book.douban.com/subject/30359954/