[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

suggestions for new kernel hacking-HOWTO



Hi all,

I am considering putting together a new, more in depth kernel hacking
HOWTO.  

The existing HOWTO (by Rusty), although an excellent source of technical
information does not contain much practical advice on how to get
started.

Therefore I would like to propose the following structure (for your
comments):

- Intro
        - Who is this document for etc.
        - Prerequisites

- Key Kernel Concepts
	(placing these in a good order is important)
        - virtual memory/memory management
        - virtual file system/IO management
        - process/scheduling
        - contexts/interrupts/exceptions
        - system calls/signals/IPC
        - boot sequence

- Kernel source tour
        What goes where in the source tree

- Tools
        - source code navigation (lxr, cscope, tags)
        - source code manipulation (vim, diff, patch, RCS/CVS)

- How do I... ?
        - Print messages to kernel logs
        - create a new module
        - Add a system call
        - write ioctls
        - Add a /proc entry
        - Write a driver for a new device
        - Add an option to the kernel configuation

- Kernel Debugging
        - A word on debugging
        - Different approaches
                - local running kernel
                - UML
        - two box debugging (I have already write a sort of mini HOWTO
on this, which can be found at
http://www.kernelhacking.org/docs/2boxdebugging.txt)
        	- Setting up
                	- hardware
                	- software
        	- Preparing the source
        	- Example debugging session
        	- Troublshooting

- Kernel Profiling
	How to find bottlenecks

- Hacking Tips
        - Avoiding deadlock
	<add to this list!>

- Books

- FAQ

- Links

- where to get help
        - mailing lists
        - irc

- references

I'm interested in hearing from seasoned kernel hackers (on what
should/shouldn't go in this HOWTO) and newbies (what is particularly
puzzling or not clear when setting out), hence the cross posting of this
message.

I do not have all the know how/experience required to write this
document single handed, so I am also looking for willing volunteers to
contribute their expertise/know how/tips and to proof read/make
suggestions as the document progresses.

My website (http://www.kernelhacking.org) will serve as a base for this
project.

best regards,

Andy

PS.  Please post general discussion back to the list(s) as appropriate
and post specific ideas/requests to my personal address only.  Thanks :)

-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/