Linux内核广泛采用的侵入式数据结构设计恐怕很难应用到一般程序开发中。基本上是个高维十字链表,一个节点(struct)可以同时位于多个hash/list/tree中。我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的,
我师父给了一些上位机学习方法和资料,让我不断提升自己,感谢帮助过我的人,
如大家和我一样需要我可以分享资料在评论区扣888或私我888
如果你本身就要从事内核开发,那么以上这些都不是问题。对于这用户态写server的人,学内核的目的是什么,学到的知识能不能/要不要/如何用到日常开发中,这是值得思考的。
同样的情况也出现在 Java 开发者身上,一般的 Java 程序员要不要读 JVM 的实现?我记得
对此有过精彩的论述,我完全同意他的看法。特别是当你功力不够时,强行去读源码,结果读错了地方(一个函数有多个实现,你读的那个其实没有被调用,甚至没有被编译),造成了错误的认识,回头来还跟人争论说JVM/kernel里是如何如何实现的,那还不如不读。
逢人就推荐阅读 Linux 内核源码,就像向每个学数据结构的人推荐 TAOCP 一样,是中文网络上特有的现象,我对此是不赞成的。