Linux内核模块编程入门指南
1. 背景与动机
近年来,对基于Linux内核的操作系统的兴趣激增,特别是在各类移动设备中,如Android系统。同时,设备中处理器数量不断增加,以及硬件平台的广泛拓展,都使得对Linux内核机制的理解和应用变得愈发重要。
1.1 编写初衷
最初,为Global Logic公司的员工组织培训课程,总结了在IP电话项目中积累的开发经验,形成了本书的雏形。随着时间推移,经过多次修订和完善,旨在为有一定经验的系统软件开发人员提供参考。
1.2 目标读者
本书主要面向希望利用内核机制进行应用开发的人员,而非直接编写内核代码的开发者。读者需具备系统编程经验,熟悉C语言,对POSIX系统有一定了解。
2. 内核模块概述
2.1 Linux与GNU
在网络上,常能看到关于“Linux GNU”或“GNU Linux”的争论,但本质上,Linux侧重于内核,而GNU则涵盖了用户空间的编程。Linux内核是单块式的,与用户代码运行在不同的模式和地址空间。早期的Linux系统是整体编译的,后来引入了内核模块机制,使得功能可以动态加载和卸载。
2.2 模块编程的基本概念
用户编写的程序通常以 main() 函数开始,以 exit() 函数结束。而内核模块则允许用户在特权模式下执行代码,通过特定命令(如 insmod 和 rmmod )进行加载和卸载。
超级会员免费看
订阅专栏 解锁全文
5081

被折叠的 条评论
为什么被折叠?



