KernelNewbies:

If you are working on answering a frequently asked question, please add it to ["FAQsInProgress"].

How do I ...?

  1. /KernelCompilation How do I compile a kernel?

  2. /KernelCrossCompilation How do I cross compile a kernel?

  3. /DisklessImages An Introduction to Diskless Booting.

  4. /CodeBrowsing How to browse through the code?

  5. ["/HowToApplyAPatch"] How do I apply a patch?
  6. KernelHackingTools Are there any good IDEs? How do I handle all this code?

  7. /CompileVendorDriver How do I compile a 3rd party device driver ?

  8. /LinuxKernelModuleCompile How can I compile a Linux Kernel Module ?

  9. /LinuxKernelDebug101 Whats the easiest way to debug ?

  10. CareerAdvice How do I get a job as kernel hacker?

  11. UpstreamMerge How do I get my code into the upstream kernel?

Kernelnewbies questions

  1. /VariousKernelTrees What are the various kernel trees for ?

  2. ["/WhereDoIBegin"] Where do I begin?
  3. [:FAQ/People on KernelNewBies:/People on KernelNewBies] Who can I find on #kernelnewbies?

  4. ["/DoINeedToKnowAssembler"] Do I need to know assembler to hack the kernel?
  5. ["/DoINeedToKnowHardware"] Do I need to know a lot about hardware to hack the kernel?
  6. DoesNotWork I built my own kernel, but it does not work. What's the problem?

Kernel hacking

  1. /VariousKernelTrees What are the various kernel trees for ?

  2. ["/System.map"] What is the System.map file?
  3. /MajorMinor What major/minor does XXX have ?

  4. /CodingStyle What coding style should I use?

  5. /LikelyUnlikely What means the macros likely() and unlikely() ?

  6. ["/Preemption"] What does preemption mean ? Is it available under Linux ?
  7. /LibraryFunctionsInKernel Can I use library functions in the kernel ?

  8. /SyscallTrace How do I intercept system calls ?

  9. /LinkedLists How does the kernel implements linked lists?

  10. /Hashtables How does the kernel implements hashtables? [Under construction]
  11. /WhyWritingFilesFromKernelIsBad Why reading/writing files from the kernel is bad, and how to do otherwise ?

Linux kernel gotchas

  1. [:FAQ/get current:/get current] How does get_current() work?

  2. ["/current"] How does the current macro helps you access your process-related record?

  3. /ExternAndStaticInlineVariable What's the difference between extern and static inline?

  4. /DoWhile0 Why do a lot of #defines in the kernel use do { ... } while (0)?

  5. /LikelyUnlikely What do the macros likely() and unlikely() mean?

  6. /ContainerOf What is container_of ? How does it work ?

  7. /InitExitMacros What are the __init and __exit macros ?

  8. ["FAQ/WhereIs bad udelay"] Now, where is __bad_udelay defined?

  9. ["/asmlinkage"] What is asmlinkage ?

  10. ["/down"] What is that jmp 1b doing out there?
  11. /TestWpBit test_wp_bit magic, or how exception fixups work.

  12. ["/BUG"] How does BUG() work?
  13. /StackTrace

    1. Why is there a function on my stack trace that does not get called?
    2. How do I manually get a stack trace?
  14. BootSectorAndKernelImage Why does the kernel no longer directly boot from floppy?

  15. /FastpathAndSlowpath What is the difference between terms: "Fast path" and "Slow path" ?

Hardware Questions

  1. /HyperthreadingDoesNotWork My CPU says it can do hyperthreading. Why do I only see one thread?

Filesystem Questions

  1. [:FAQ/InotifyDnotify:/InotifyDnotify] Inotify vs Dnotify architecture: How to use it?

  2. [:FAQ/Procfs:/procfs] How does the /proc filesystem work?

Memory Management Questions

  1. [:FAQ/devkmem:/devkmem] What are the purpose of /dev/kmem? How to use it?


KernelNewbies: FAQ (last edited 2014-08-24 07:24:24 by Ramzi Martin Kahil)