• Immutable Page
  • Info
  • Attachments

New Kernel Hacking HOWTO

The layout proposed by Suman Adak is below.

Please create a new subpage (eg /Introduction) for each section, since this document could end up really large...

If something is already documented elsewhere on this site, please link to that other document instead of trying to duplicate it here. Hyperlinks exist for a reason.

  1. Introduction to Linux Kernel( A short Description with various good link about linux kernel)

    1. What is the Kernel?

    2. What I Can do with the Linux Kernel( Some impressive word).

    3. Which Programming language?

    4. Kernel Books

    5. *add more

  2. Getting Source Code

    1. Why should i get source code?

    2. How to get Source Code?

    3. Where i should look to get latest kernel?

    4. *Add more

  3. /System requirements for Kernel Hacking.

    1. GCC,GDB,KGDB patch.

    2. Making room for source code.

    3. Preparing to test the new kernel( Virtual Machine, UML, Serial port configuration).

    4. add more

  4. /Compiling and Installing the kernel.

    1. Why to recompile the kernel

    2. How to make the new kernel version

    3. Understanding the kernel versioning system

    4. Configure the kernel to be compiled

    5. Compile procedure for 2.4 and 2.6 kernel

    6. Install the kernel image into your hard disk

    7. Boot Loader Configuration( Grub and LILO)

    8. Applying kernel patches

    9. Boot the New kernel

    10. Add more

  5. /Overview of the Linux kernel source code tree.

    1. Small description about each directory.

    2. add more

  6. Changes between 2.4 kernel to 2.6 kernel( New features).

    1. Add more

  7. Debugging Kernel

    1. What should I have to fix a bug?

    2. Function printk().

    3. Error oops.

    4. Additional compiling options.

    5. Causing errors and printing extra informations.

    6. Magic SysRq Key.

    7. How to use debuggers?

    8. When everything fail.

    9. Add more

  8. /Kernel Programming Style Guidelines

    1. In-code Comments

    2. Add more

  9. /Subsystems

    1. Process Creating, Management and Destroing

    2. Process Scheduling

    3. Inter Process Communication

    4. Memory Addressing

    5. Memory Management

    6. Reclaiming Pages

    7. Process Address Space

    8. Exceptions and Interrupts Handling

    9. Deferring Work: Tasklets and SoftIRQ

    10. Synchronization

    11. Time Management

    12. System Calls

    13. Virtual File System

    14. Accessing Directories and Files

    15. Block I/O Layer

    16. Page Cache

    17. Security Subsystem and SELinux

    18. TCP/IP Stack and Netfilter

    19. Device Drivers, Kobjects and Sysfs

    20. Module Management: Insert Code at Run-Time

    21. Add More

  10. API (Kernel Internal Use)

    1. Linked Lists

    2. Radix Trees

    3. Red-Black Trees

    4. Hash Tables

  11. Device Drivers

    1. Character Drivers

    2. Block Drives

    3. Network Drivers

    4. USB

    5. Add More

  12. How to contribute to kernel community?

  13. How to get help?

  14. How can i help?

Tell others about this page:

last edited 2007-10-26 20:38:28 by DavidElrod