学习Linux内核的方法小结

来源:互联网 发布:软件注册码 分享 编辑:程序博客网 时间:2024/05/18 11:33

假定你会C语言,而且明白C语言面向对象编程的schme,对操作系统(包括调度,内存分配,分页,同步,etc)比较了解。那么你可以按照如下顺序学习Linux 内核。

   1.看Linux DeviceDriver这本书。这是为了让你懂得编译内核模块的方法。还有为Linux各种设备留下一些印象。同时一遍看书一边看某些设备的源代码,推荐看如下几个设备的源代码:mem,raw,hidmouse。看mem是为了了解字符设备的基本编写方法和概念。比如如何利用dev_t,如何利用不同的Minor部分确定该Device的功能,等等。看raw是为了了解如何利用Linux的DeviceModel。hidmouse是为了了解如何利用interrupt方式与usbhub通信,以及usb设备驱动的基本架构。至于PCI我还没研究。其实第一次看的时候可以忽略PCIDriver后面的所有章节。自己写一个只有逻辑的字符设备驱动即可进行下一步。

   2.看Understanding theLinuxKernel这本书。这本书没什么好说的,经典。适合从头看到尾一次,选感兴趣章节再看N次。为什么我不支持大家第一次就看这本书?这是因为里面描述了许多内核的数据结构,不自己写一些设备驱动,很难熟悉他们。

   3.好了,现在看了N次Understanding the Linux Kernel了。再看一次Linux Device Driver吧。然后什么设备驱动,内核rookit,你都可以畅通无阻了。