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? 1. ["/KernelCrossCompilation"] How do I cross compile a kernel? 1. ["/HowToApplyAPatch"] How do I apply a patch? 1. ["KernelHackingTools"] Are there any good IDEs? How do I handle all this code? 1. ["/CompileVendorDriver"] How do I compile a 3rd party device driver ? 1. ["/LinuxKernelModuleCompile"] How can I compile a Linux Kernel Module ? 1. ["/LinuxKernelDebug101"] Whats the easiest way to debug ? 1. ["CareerAdvice"] How do I get a job as kernel hacker? == Kernelnewbies questions == 1. ["/VariousKernelTrees"] What are the various kernel trees for ? 1. ["/WhereDoIBegin"] Where do I begin? 1. ["/People on KernelNewBies"] Who can I find on #kernelnewbies? 1. ["/DoINeedToKnowAssembler"] Do I need to know assembler to hack the kernel? 1. ["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 ? 1. ["/System.map"] What is the System.map file? 1. ["/MajorMinor"] What major/minor does XXX have ? 1. ["/CodingStyle"] What coding style should I use? 1. ["/LikelyUnlikely"] What means the macros `likely()` and `unlikely()` ? 1. ["/Preemption"] What does preemption mean ? Is it available under Linux ? 1. ["/LibraryFunctionsInKernel"] Can I use library functions in the kernel ? 1. ["/SyscallTrace"] How do I intercept system calls ? 1. ["/LinkedLists"] How does the kernel implements linked lists? 1. ["/WhyWritingFilesFromKernelIsBad"] Why reading/writing files from the kernel is bad, and how to do otherwise ? == Linux kernel gotchas == 1. ["/get_current"] How does `get_current()` work? 1. ["/current"] How does the `current` macro helps you access your process-related record? 1. ["/ExternAndStaticInlineVariable"] What's the difference between extern and static inline? 1. ["/DoWhile0"] Why do a lot of `#defines` in the kernel use `do { ... } while (0)`? 1. ["/LikelyUnlikely"] What do the macros `likely()` and `unlikely()` mean? 1. ["/ContainerOf"] What is ''container_of'' ? How does it work ? 1. ["/InitExitMacros"] What are the _``_init and _``_exit macros ? 1. ["/WhereIs__bad_udelay"] Now, where is _``_bad_udelay defined? 1. ["/asmlinkage"] What is `asmlinkage` ? 1. ["/down"] What is that jmp 1b doing out there? 1. ["/TestWpBit"] test_wp_bit magic, or how exception fixups work. 1. ["/BUG"] How does BUG() work? 1. ["/StackTrace"] Why is there a function on my stack trace that does not get called? ---- ["CategoryFAQ"]