KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 6 as of 2006-08-02 04:29:04
KernelNewbies:
  • KernelHackingTools

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]

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01