| Size: 2388 Comment: StackTrace | Size: 3671 Comment:  | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 4: | Line 4: | 
| 1. ["/KernelCompilation"] How do I compile a kernel? 1. ["/HowToApplyAPatch"] How do I apply a patch? 1. ["/IDEs"] 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. /KernelCompilation How do I compile a kernel? 1. /KernelCrossCompilation How do I cross compile a kernel? 1. /DisklessImages An Introduction to Diskless Booting. 1. /CodeBrowsing How to browse through the code? 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? 1. UpstreamMerge How do I get my code into the upstream kernel? | 
| Line 12: | Line 16: | 
| 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. /VariousKernelTrees What are the various kernel trees for ? 1. ["/WhereDoIBegin"] Where do I begin? 1. [:FAQ/People on KernelNewBies:/People on KernelNewBies] Who can I find on #kernelnewbies? 1. ["/DoINeedToKnowAssembler"] Do I need to know assembler to hack the kernel? 1. ["/DoINeedToKnowHardware"] Do I need to know a lot about hardware to hack the kernel? 1. DoesNotWork I built my own kernel, but it does not work. What's the problem? | 
| Line 18: | Line 23: | 
| 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 ? | 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. ["/Hashtables"] How does the kernel implements hashtables? [Under construction] 1. /WhyWritingFilesFromKernelIsBad Why reading/writing files from the kernel is bad, and how to do otherwise ? | 
| Line 31: | Line 35: | 
| 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? | 1. [:FAQ/get current:/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. ["FAQ/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 i. Why is there a function on my stack trace that does not get called? i. How do I manually get a stack trace? 1. BootSectorAndKernelImage Why does the kernel no longer directly boot from floppy? 1. /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? 1. [: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? | 
| Line 47: | Line 60: | 
| ["CategoryFAQ"] | . ["CategoryFAQ"] | 
If you are working on answering a frequently asked question, please add it to ["FAQsInProgress"].
How do I ...?
- /KernelCompilation How do I compile a kernel? 
- /KernelCrossCompilation How do I cross compile a kernel? 
- /DisklessImages An Introduction to Diskless Booting. 
- /CodeBrowsing How to browse through the code? 
- ["/HowToApplyAPatch"] How do I apply a patch?
- KernelHackingTools Are there any good IDEs? How do I handle all this code? 
- /CompileVendorDriver How do I compile a 3rd party device driver ? 
- /LinuxKernelModuleCompile How can I compile a Linux Kernel Module ? 
- /LinuxKernelDebug101 Whats the easiest way to debug ? 
- CareerAdvice How do I get a job as kernel hacker? 
- UpstreamMerge How do I get my code into the upstream kernel? 
Kernelnewbies questions
- /VariousKernelTrees What are the various kernel trees for ? 
- ["/WhereDoIBegin"] Where do I begin?
- [:FAQ/People on KernelNewBies:/People on KernelNewBies] Who can I find on #kernelnewbies? 
- ["/DoINeedToKnowAssembler"] Do I need to know assembler to hack the kernel?
- ["/DoINeedToKnowHardware"] Do I need to know a lot about hardware to hack the kernel?
- DoesNotWork I built my own kernel, but it does not work. What's the problem? 
Kernel hacking
- /VariousKernelTrees What are the various kernel trees for ? 
- ["/System.map"] What is the System.map file?
- /MajorMinor What major/minor does XXX have ? 
- /CodingStyle What coding style should I use? 
- /LikelyUnlikely What means the macros likely() and unlikely() ? 
- ["/Preemption"] What does preemption mean ? Is it available under Linux ?
- /LibraryFunctionsInKernel Can I use library functions in the kernel ? 
- /SyscallTrace How do I intercept system calls ? 
- /LinkedLists How does the kernel implements linked lists? 
- ["/Hashtables"] How does the kernel implements hashtables? [Under construction]
- /WhyWritingFilesFromKernelIsBad Why reading/writing files from the kernel is bad, and how to do otherwise ? 
Linux kernel gotchas
- [:FAQ/get current:/get current] How does get_current() work? 
- ["/current"] How does the current macro helps you access your process-related record? 
- /ExternAndStaticInlineVariable What's the difference between extern and static inline? 
- /DoWhile0 Why do a lot of #defines in the kernel use do { ... } while (0)? 
- /LikelyUnlikely What do the macros likely() and unlikely() mean? 
- /ContainerOf What is container_of ? How does it work ? 
- /InitExitMacros What are the __init and __exit macros ? 
- ["FAQ/WhereIs bad udelay"] Now, where is __bad_udelay defined? 
- ["/asmlinkage"] What is asmlinkage ? 
- ["/down"] What is that jmp 1b doing out there?
- /TestWpBit test_wp_bit magic, or how exception fixups work. 
- ["/BUG"] How does BUG() work?
- Why is there a function on my stack trace that does not get called?
- How do I manually get a stack trace?
 
- BootSectorAndKernelImage Why does the kernel no longer directly boot from floppy? 
- /FastpathAndSlowpath What is the difference between terms: "Fast path" and "Slow path" ? 
Hardware Questions
- /HyperthreadingDoesNotWork My CPU says it can do hyperthreading. Why do I only see one thread? 
Filesystem Questions
- [:FAQ/InotifyDnotify:/InotifyDnotify] Inotify vs Dnotify architecture: How to use it? 
- [:FAQ/Procfs:/procfs] How does the /proc filesystem work? 
Memory Management Questions
- [:FAQ/devkmem:/devkmem] What are the purpose of /dev/kmem? How to use it?
- ["CategoryFAQ"]
