null
On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com
How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy
The Linux Kernel Module Programming Guide
The Linux Kernel Module Programming Guide
Peter Jay Salzman
Michael Burian
Ori Pomerantz
Copyright
© 2001 Peter Jay Salzman
2005-05-26 ver 2.6.1
Table of Contents
Foreword
1.
Authorship
2.
Versioning and Notes
3.
Acknowledgements
1.
Introduction
1.1.
What Is A Kernel Module?
1.2.
How Do Modules Get Into The Kernel?
2.
Hello World
2.1.
Hello, World (part 1): The Simplest Module
2.2.
Compiling Kernel Modules
2.3.
Hello World (part 2)
2.4.
Hello World (part 3): The
__init
and
__exit
Macros
2.5.
Hello World (part 4): Licensing and Module Documentation
2.6.
Passing Command Line Arguments to a Module
2.7.
Modules Spanning Multiple Files
2.8.
Building modules for a precompiled kernel
3.
Preliminaries
3.1.
Modules vs Programs
4.
Character Device Files
4.1.
Character Device Drivers
5.
The /proc File System
5.1.
The /proc File System
5.2.
Read and Write a /proc File
5.3.
Manage /proc file with standard filesystem
6.
Using /proc For Input
6.1.
TODO: Write a chapter about sysfs
7.
Talking To Device Files
7.1.
Talking to Device Files (writes and IOCTLs)
8.
System Calls
8.1.
System Calls
9.
Blocking Processes
9.1.
Blocking Processes
10.
Replacing Printks
10.1.
Replacing
printk
10.2.
Flashing keyboard LEDs
11.
Scheduling Tasks
11.1.
Scheduling Tasks
12.
Interrupt Handlers
12.1.
Interrupt Handlers
13.
Symmetric Multi Processing
13.1.
Symmetrical Multi-Processing
14.
Common Pitfalls
14.1.
Common Pitfalls
A.
Changes: 2.0 To 2.2
A.1.
Changes between 2.4 and 2.6
B.
Where To Go From Here
B.1.
Where From Here?
Index
List of Examples
2-1.
hello-1.c
2-2.
Makefile for a basic kernel module
2-3.
hello-2.c
2-4.
Makefile for both our modules
2-5.
hello-3.c
2-6.
hello-4.c
2-7.
hello-5.c
2-8.
start.c
2-9.
stop.c
2-10.
Makefile
4-1.
chardev.c
5-1.
procfs1.c
5-2.
procfs2.c
5-3.
procfs3.c
7-1.
chardev.c
7-2.
chardev.h
7-3.
ioctl.c
8-1.
syscall.c
9-1.
sleep.c
9-2.
cat_noblock.c
10-1.
print_string.c
10-2.
kbleds.c
11-1.
sched.c
12-1.
intrpt.c
Next
Foreword
>
Published under the terms of the GNU General Public License
Design by Interspire
x