第一个坡:抛弃旧的思惟习惯,熟练使用 Linux 命令行git
推荐书籍shell
若是你想全面学习 Linux 命令,推荐你阅读《鸟哥的 Li...编程
第二个坡:经过系统调用或者 glibc,学会本身进行程序设计vim
推荐书籍 网络
《UNIX 环境高级编程》,这本书有代码,有介绍,有原理并发
第三个坡:了解 Linux 内核机制,反复研习重点突破socket
推荐书籍 《深刻理解 LINUX 内核》学习
第四坡:阅读 Linux 内核代码,聚焦核心逻辑和场景命令行
开源软件代码纷繁复杂,一开始看确定晕,找不着北。设计
开始阅读代码不要纠结一城一池的得失,不要每一行都必定要搞清楚
它是干吗的,而要聚焦于核心逻辑和使用场景。
推荐书籍:《LINUX 内核源代码情景分析》
第五坡:实验定制化 Linux 组件,已经没人能阻挡你成为内
核开发工程师了
须要仔细配置
最后一坡:面向真实场景的开发,实践没有终点
# 学习路径
## Step1: 熟悉Linux命令行
基础:--help、man
进阶:sed、awk、正则、管道、grep、find、shell脚本、vim、git
## Step2: 系统调用和glibc => 编程
+ 进程树 fork
+ 进程同步 信号量
+ 应用层与传输层的分界线 socket编程
> [《UNIX环境高级编程》]()
## Step3: Linux内核机制
> [《深刻理解Linux内核》]()
> 这本书内核版本比较老~
## Step4: 阅读Linux内核源码,聚焦核心逻辑和场景
+ 虚拟化 kvm
+ 网络 内核协议栈
> [《Linux内核源码情景分析》]()
## Step5:实验定制化Linux组件
> 专栏最后两个实验
## Step6: 面向真实场景开发,实践~
+ 并发与并行
+ 锁与保护
+ 扩展性和兼容性