## page was renamed from Tools This page provides information about the available tools to help edit / navigate / hack the Kernel source: == Downloading == '''Kernel source management with git''' If you want to download the lastest kernel source, you need git. You can get it from [http://git.or.cz/index.html here]. * There is a very good [http://linux.yyz.us/git-howto.html Kernel Hackers' Guide to git] * [http://www.wlug.org.nz/KernelDevelopmentWithGit Kernel Development With Git] '''Kernel tarballs''' The alternative, more "classic", way to download a kernel source tree release is to pull it from http://kernel.org/ as a compressed archive file. == Navigation Aid == Many tools allow you to index the entire kernel source tree to faciliate its browsing. This makes learning to find your landmarks in the code a lot easier and allow you to quickly find the declarations / definitions of unknown data structures. '''Indexing tools''' * [http://lxr.linux.no/ LXR project] : Nice website to browse the kernel source, search for identifiers, and diff between kernel versions. Uses [http://sourceforge.net/projects/lxr/ lxr] as its backend. * Gonzui http://softice.lakeland.usf.edu/wiki/index.php/Setting_up_Gonzui '''Online browsing sites''' Some websites make it their duty to archive indexed kernel source trees: * [http://lxr.linux.no/source/ LXR Project] * [http://www.kernelhq.org/ KernelHQ] : Another website to browse/navigate the kernel source. Has all the kernel sources since 1.0. * [http://fxr.watson.org/ FXR watson] FreeBSD and Linux Kernel Cross-Reference * (An archive of all kernel versions was [http://www.memalpha.cx/Linux/Kernel/ here].) '''Navigation Utilities''' The following help you incorporate such browsing capabilities in editors: * [http://ctags.sourceforge.net/ ctags] * [http://cscope.sourceforge.net/ cscope]. Tutorials: [http://cscope.sourceforge.net/large_projects.html Using with large projects], [http://cscope.sourceforge.net/cscope_vim_tutorial.html Using Cscope with Vim]. == Version Control == Navigate the changesets applied to: * [http://kernel.org/git/?p=linux/kernel/git/marcelo/linux-2.4.git;a=summary linux-2.4] * [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary linux-2.6]