KernelNewbies:

Abstract

This document is a structured record of my own journey, from a relatively inexperienced application programmer to an even more inexperienced kernel programmer. By sharing my experience, I hope to make kernel hacking more accessible to other members of the open source community. Introduction

Alan Cox

Kernel hacking may not be hard, but it certainly could not be described as easy. That said, probably the biggest barrier to be overcome is a psycological one; having the confidence to get started, dive in and try things out. The next barrier to be faced is the lack of up to date, organised documentation, which hampers the efforts of even the most determined. Although there is actually quite a lot of information out there in books, web pages, newsgroups, mailing lists and the source code, it is all very disparate, dis-organised and on occasion even contradictory.

This document aims to address this issue. Hopefully it will attract bright new talent to the Linux Kernel Community. One day, someone will have to take over from Linus! Who this document is for

This document is aimed at:

It aims to accelerate the learning process by:

Why hack the kernel?

Some reasons why people get into kernel programming:

Prerequisites

What should I know before I start working through this document?

Copyright

Copyright (c) 2001/2002 Andrew Ebling

Please freely copy and distribute (sell or give away) this document in any format. It's requested that corrections and/or comments be forwarded to the document maintainer. You may create a derivative work and distribute it provided that you:

If you're considering making a derived work other than a translation, it's requested that you discuss your plans with the current maintainer. Disclaimer

Use the information in this document at your own risk. I disavow any potential liability for the contents of this document. Use of the concepts, examples, and/or other content of this document is entirely at your own risk.

All copyrights are owned by their owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.

Naming of particular products or brands should not be seen as endorsements.

You are strongly recommended to take a backup of your system before modifying the kernel and make backups at regular intervals. If you would miss it if you lost it, back it up! News

The latest version of this document will be available at the web site in a number of formats:

The SGML source is updated most frequently. The other formats only get updated for major new releases or when I feel the changes warrant the hassle. Credits

I have the pleasure of acknowledging contributions from the following people:

If you contributed a typo or grammar correction and your name is not in this list, it probably means that the error had already been reported and fixed. If you reported a problem that has not been fixed in the current version of this document, please re-send your bug report adding REPEAT to the subject line. I do my best to attend to all the reports I get sent, but occasionally something slips through the net. Translations

As yet there are no translations of this document. Translations are welcome, but please contact me first.

Translation volunteers to date:

Contacting the Author

Any comments or suggestions can be mailed to me: kh.howto@clara.co.uk

Please use these subject line conventions (in addition to your own short and concise subject) to help me handle queries efficiently and filter SPAM:

I ruthlessly filter on subject, so any emails not following these conventions may silently/automatically get deleted. Subject lines like "Hi!", "hello", "your website" etc. are usually spam so are likely to get deleted without getting read. Thank you for understanding and co-operation.

KernelNewbies: KernelHacking-HOWTO/Introduction (last edited 2006-09-16 04:42:05 by dsl-189-163-18-19)