Linux内核很神秘也很好玩,作为一名工程技术人员都有一窥究竟的想法和冲动。目前市面上介绍Linux内核的书不讲是浩如烟海,那也是汗牛充栋。如何在这么多资料中找到一条掌握Linux内核的捷径呢,本人谨就将自己的阅读体验整理如下。
在工程技术上,对一件事情的掌握上分为两大基本的层次,即宏观理解和微观掌握。宏观理解是希望建立一个比较大的视图,用英文来说就是bird view,如内核中分为那几大基本部件,各自的功能是什么。微观掌握就是在宏观的基础上通过具体的实践来验证自己的认知是否准确到位。两者可以说是互为因果,相辅相成。
上面瞎扯了一些认识论的问题,下面来谈具体的资料,具体的书名可能大家都已经听说过。
- 深入理解Linux内核 understanding the linux kernel 缩写UTLK
- Linux Kernel Development
- Linux Device Driver
- 深入理解linux网络内幕 understanding linux network internals
- 深入浅出linux tcp/ip协议栈
其中1是为了建立一个好的宏观视角,这本书在讲述内核四大子系统(内存,文件,进程,I/O)方面绝对堪称经典。
有了一个好的宏观视图还不够,只有在具体的实践中才能验证自己的掌握程度,那么2就是为此做了一个好的过度,让读者在代码编写层面打下一个好基础。
Linux内核牵涉到的内容非常多,非常杂,想全部掌握那是不可能的。在微观掌握的层面就需要有所侧重,个人以设备驱动和网络子系统为研究重点,故推荐3,4,5.
上面就是我对自己已经看过的书的笼统总结和概括。如果一下子去看《深入理解Linux内核》有难度的话,那么可以先看一下《Linux内核设计的艺术》一书,这本以内核0.12为讲述主体,可以帮助读者在很短的时间内知道内核主要要处理哪些事情,以及是如何实现的。有了这个为蓝本,再来理解以2.6内核为主要讲述目标的UTLK可能会好一些。
如果上述的书籍是英文的话,最好看英文原版而不是翻译的版本。
阅读(1465) | 评论(0) | 转发(0) |