Linux最与众不同的地方在于它具有开放源程序代码(Open Source)的特性,也就是使用者可以自由修改Linux的核心程序,从而获得想要实现的各种功能。本书即是通过带领初学者一步一步地修改Linux Kernel的方式进行深入研究,所介绍的内容由浅入深,适合各种程度的读者。
本书从Linux的基本程序设计开始,一直到Linux Kernel Module的核心修改等,都是通过简单的范例来引导读者学习。最终可以使读者随心所欲地修改Linux Kernel,轻轻松松地进入Linux的核心世界。
本书从介绍TCP/IP应用程序开始,进一步深入介绍Linux的TCP/IP Kernel,并介绍如何使用Kernel Module的方式修改Linux的TCP/IP模块,以及有弹性地扩展Linux Kernel功能。本书旨在教会读者最初级的基础技能,以便于以后做更深入的研究,特别适合希望对Linux Kernel Module编程有入门级认识的读者。随书光盘中包含本书各章的范例程序代码。
第1章 Linux Kernel基础
1.1 Linux Kernel简介
1.2 如何编译和更换Linux Kernel
1.3 习题
第2章 Linux Kernel Module程序基础
2.1 gee与MaLefile使用简介
2.2 第一个Linux程序
2.3 第一个Linux Module程序
2.4 什么是Linux Kernel Module
2.5 由命令行传递参数到Linux Kernel Module
2.6 习题
第3章 Linux Kernel Source的函数调用关系
3.1 Linux Kernel Source Tree简介
3.2 Linux网络应用层程序
3.2.1 UDP应川程序
3.2.2 TCP应用程序
3.3 Linux TCP/IP Kernel连接建立过程
3.3.1 socket()函数
3.3.2 bind()函数
3.3.3 listen()函数
3.3.4 connect()函数
3.3.5 accept()函数
3.4 Linux TCP/IP Kernel数据传输过程
3.4.1 数据传送过程
3.4.2 数据接收过程
3.5 习题
第4章 利用Modu e修改Linux TCP/IP Kernel
4.1 对Linux网络核心程序稍加修改
4.2 利用Module修改Linux网络核心程序
4.3 利用IP Layer的Module修改输出封包的IP Header内容
4.4 利用Module得知收到的SYN封包数
4.5 利用Module得知收到的ACK封包数
4.6 利用Module依照几率丢弃送往特定IP地址的封包
4.7 习题
第5章 Linux Kernel Module进阶
5.1 Kernel Module之间的变量共享
5.2 编写一个可以让Kernel Module调用的公用子程序
5.3 Linux Proc简介
5.4 编写Proc文件驱动程序实现应用程序与Kernel间的消息传递
5.5 利用Module搭配Proc将输出封包的信息显示在Proc的文件中
5.6 习题
第6章 交错式Linux源程序代码跟踪方法
6.1 安装Linux Cross Source
6.2 Linux Cross Source使用说明
第7章 Linux远程调试(Remote Debug)
7.1 硬件的准备与安装
7.2 软件的准备与安装
7.3 Linux远程调试的实际练习
第8章 核心2.6版Kernel Module
8.1 module-init-tools的更新
8.2 由Kernel 2.4版升级到Kernel 2.6版
8.3 配合核心版本2.6版Module的Kernel Source修改方法
8.4 编译并执行核心版本2.6版的Kernel Module
8.5 习题
参考文献