说明:本篇文章只是为了和大家分享下我学习内核的历程,希望对大家学习内核有一定的帮助。+
本人一度认为,做linux c语言开发最牛x的方向就是内核开发,所以也曾一度自学linux内核。什么《深入理解linux内核》、《linux设备驱动程序》、《linux内核代码情景分析》等等的这些书我都看过,但基本上都是看个两三天就不想看了,完全不得要领。然后忽然发现, 我可能需要找一条适合我自己的学习linux内核的路。
机缘巧合下,公司的网管同事有一个需求,开发一个netfilter模块,以支持SNAT非连续地址池。因为在内核2.6.10版本以上,就把这个功能删除了,理由是用的人很少。。。
于是,我就开始了我的内核学习历程。
首先netfilter模块的代码并不是很难,学习netfilter框架代码之后,我对linux内核模块的概念、模块开发、网络堆栈部分的代码以及内核常用的数据结构和一些技巧都有了一定的了解,这样就方便了以后的进一步研究。