How do _you_ read the linux source?

Robert P. J. Day rpjday at
Mon Apr 20 08:04:24 EDT 2015

On Sun, 19 Apr 2015, nick wrote:

> On 2015-04-19 09:57 PM, r00nk at wrote:
> > The following question gets asked a lot, "I know C, but reading the
> > kernel source is hard, what should I do?" and the common response is "ctags."
> > It's a lot like asking "how can I build a house?" and receiving the response
> > "screwdriver."
> > 	There is obviously more to it then learning C and installing ctags.
> > As a newbie myself, I recently had to overcome this problem, Here's what I
> > did:

... snip ...

> > 	The problem a lot of newbies are having is in 'separating the trunk
> > from the leaves.' So my question is this: Experienced kernel developers, how
> > do _you_ read source code? How do you separate the trunk from the leaves?
> > What do you do when you read code you're not familiar with? How do you learn?
> > What's your algorithm?

  *sigh* ... this is the wrong question, in the same way that asking,
"how do i start writing kernel code?" is the wrong question. someone
once made the brilliant analogy that asking how to start contributing
to the kernel is akin to asking, "i want to write a book ... what
should i write about?" if you don't already know what interests you,
no one else can help you start writing.

  in the same way, asking "how do i read kernel code?" is akin to
walking into a library and asking, "i want to read something ... where
do i start?" if you don't already know what part of the kernel
interests you, then you should be asking yourself why you should be
reading kernel code in the first place.

  it seems that there is a regular supply of posters whose opening
question is something like, "i'm interested in the kernel ... how do i
get started?" i submit that it's not the mandate of this list to
answer that question. rather, i submit that it's the mandate of this
list to answer questions you have *after* you get started and have
shown that you've invested the time to dig in on your own.

  unless you've demonstrated the interest and ability to do at least a
*little* homework and research before asking questions, you're
probably not going to get much help here, and you might ask yourself
why you're interested in the first place.



Robert P. J. Day                                 Ottawa, Ontario, CANADA


More information about the Kernelnewbies mailing list