一直都觉得双向链表在内核中非常重要。
双向链表最主要的就是用了container_of这个宏。
而container_of又是建立在typeof的基础之上的。
没有typeof,就没有container_of,双向链表,就没有max,mix这些宏,就没有...
linux内核将typeof已经发挥到极致了。
container_of中包含的面向对象的思想。
min,max包含的泛型设计的思想。
C++所推崇的两大思想在linux内核中全都得到了体现。
有时候我想,在没有遇到linux内核之前,我如果看到了typeof能否将typeof用的这么神奇?
用不了这么神奇,typeof在我眼中也仅仅是typeof而已。也只不过是能取到变量类型的一个关键字而已。
linux内核的学习无非就是先会用,不会用的话就看源码,再去用,还不会再去看源码,等到会用的时候就不能仅仅停留在用的阶段了。
要学会发现美,内核之美。 学习linux内核中所包含的设计思想,谈哲学你我可能都还不够格,我们没有所谓哲学修养,但你我都是有思想的。
学习就是不断的完善自我,取彼之长,补已之短而已。学内核的一个目的就是学习其技巧与思想。
也许你今天可以依照ldd3写出一个字符设备,但是你是否总感觉不踏实?总感觉捅不破那层纸?
学习吧。为了捅破这层纸,请以原码为师,只有深入到源码的层次,你才能真正体会到内核之美,否则谈架构谈框架都是镜花水月。