自己总结的Linux学习路线,还在这条路上继续奔跑着…
我将其总结为4个阶段吧:
- 入门 - 抛弃旧的思维习惯,熟练使用 Linux 命令行
从Window切换到Linux是一件很痛苦的事情,因为人类接受信息最快的方式就是图形化的信息。所以,我们需要先从熟悉命令行开始。在这一阶段,推荐的书籍是《鸟哥的私房菜》、《linux shell脚本攻略》。
- 《鸟哥的私房菜》- 几乎每个linux程序的必经之路。
- 《linux shell脚本攻略》- 印度人写的,二十岁的时侯写下了这本书,那时他已经是Ubuntu 和Fedora的源码贡献者了。
- 中级 - 通过系统调用或内核接口,学会自己进行程序设计
这一部分,我的建议是分两部分学习:
- linux程序设计,通过系统调用学会在linux环境下进行C/C 程序开发。推荐的书籍有《Linux环境下C编程指南》、《UNIX 环境高级编程》。
- linux驱动开发,学会基本的linux内核数据结构、接口等等,了解linux设备模型、设备树等,为理解内核打下坚实的基础。推荐的书籍有《LDD3》、《Linux设备驱动开发详解》。
- 高级 - 软硬结合,反复阅读代码
这一部分还是分为2部分:
- ARM体系架构学习,推荐阅读,ARMv6、ARMv7和ARMv8架构的数据手册,汇编语言等等。
- linux内核源码解析,对每个子系统的代码架构深入研究,能对内核进行模块裁剪等。推荐的书籍有《Linux内核设计与实现》、《Linux内核源代码情景分析》和《深入理解Linux内核(第三版)》。
- 大牛 - 活到老,学到老 俗话说,活到老,学到老。学习是永无止境的。到这一阶段,可以到linux.org官网研究每个子系统的代码,并为世界作出贡献了。
最后,再说一点,英语非常重要。很多好的资料都是英文的,国内有些翻译本不是太好。尤其是google搜索时,学会使用英文关键词非常重要。
一起努力吧。