这本《深入Linux内核》相信很多程序员的书柜上都有这本书,但是真正能够啃完理解其中技术的在我看来可能少之又少,不知道有没有它书籍销量的百分之一。
这里我不禁就产生了一个疑问:Linux内核是不是需要大多数程序员都去了解学习?
对于本身正在从事或就要从事内核开发的人来说,这个当然不是一个问题。但是对于那些用户态写server的人,学内核的目的是什么,学到的知识能不能/要不要/如何用到日常开发中,这是值得思考的。
所以你是为什么要去学习Linux内核的?
我学习Linux内核一个原因是目前在工作上需要掌握内核相关的知识。系统移植升级,性能优化,软硬件裁剪,客制化,安全加强,基础软件trouble shooting,都需要对Linux尤其是内核有一定的掌握。但最重要的还是掌握内核能让我看问题看的更深刻。
当然这是很清楚自己的需求,对于Linux内核自己有明确的学习技术提升点。但是不可否认的是也有不少的朋友,只是单纯的觉得这个玩意儿很厉害,我要去学学看。但是可能对于自己的工作及技术方向的提升作用微乎其微,反而半懂不懂徒增自己的烦恼,打击自己的自信心。
1.那需要Linux内核,我们需要提前准备哪些知识点?
2.其次我们需要了解Linux内核的特点:
结合了unix操作系统的一些基础概念
3.Linux主要学习的技术点是什么?
内存管理
- 内存原理
- 虚拟内存
- 内存系统调用
设备驱动
- 设备子系统
- Linux设备模型
- 字符设备驱动
- 块设备驱动
- 网卡设备驱动
- 蓝牙子系统
网络
- 网络基础架构
- 网络协议栈
- 系统API调用
文件系统
- 虚拟文件系统VFS
- 磁盘文件系统
- 用户空间系统
至少我们在学习之前至少我们是需要明白,对于这个技术内容的简单概述,它所提供的内容是不是我们所需要的。
如果逢人就推荐阅读 Linux 内核源码,就像向每个学数据结构的人推荐 TAOCP 一样,是中文网络上特有的现象,这种情况是很无语的。现在的不少面试官也是,明明在公司的所有项目都用不到半点的技术内容,还拿在面试过程中,重点考核,就很无语~
所以,学习还是不要盲目,事倍功半的事可不好想!
最后,给合适学习及想学习Linux内核的朋友推荐一些资料:
Linux内核本身的代码量是十分庞大的,如果你不是内核狂热者,建议还是从前人的总结中去学习提升。
书籍
入门:《Linux内核设计与实现》、《奔跑吧linux内核:入门篇》
《Linux内核设计与实现》是五星推荐,作为一个初学者而言,如何刚开始就接触《深入理解Linux内核》的话,不夸张的说,可能会打击到自己的学习积极性。而这本《Linux内核设计与实现》就特别合适初学者,全书300多页,但是技术点却很全面。
进阶:《深入理解Linux内核》
作为一名中高级Linux内核开发者的话,这本《深入理解Linux内核》永远不是绕不过的一道坎。
这本书写的很全面,基本上涉及了linux内核所有核心的内容。可以说是必看!但是正如我在文章开始所说,往往买了就是劝退。如果能真正学下来,那收获还是十分丰厚的。
视频教程
关于Linux内核的视频教程网上有很多,但是大家搜过的都知道,很多都是入门级别的,能够深入的讲解Linux内核的视频很少。这里就不做推荐了。
最后
书籍视频看的再多,自己不动手的话,也不会有什么效果,分享给大家一些我的Linux学习笔记参考
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289418.html