What do the terms "in-tree" and "out-of-tree" exactly mean? Also, does "source tree" specifically refer to the official kernel released from / maintained at kernel.org or is it a more general term which can refer to any (modified) Linux kernel source?

1 Answer 1


"source tree" is not a term specific to kernel source development, so it has to be a more general term and its meaning with regards to kernel source is context dependent.

I have not come across "in-tree" and "out-of-tree" outside of the Linux kernel source development and then only for working with modules. All modules start out as "out-of-tree" developments, that can be compiled using the context of a source-tree. Once a module gets accepted to be included, it becomes an in-tree module. A I have not come across an official definition for both terms though, maybe that was never necessary as it was clear to those working with modules what was meant.

E.g. while Reiserfs module was still an out-of-tree module I did the RPM package generation for SuSE, once it became in-tree there was no longer need for that.

  • 1
    Thanks! So basically in-tree means a module that comes as a part of the source tree and out-of-tree that does not?
    – Lavya
    Jun 10, 2015 at 7:26
  • 1
    @Lavya Yes, that is the only way I have seen it used. But as I indicated, I have not come across a formal definition.
    – Anthon
    Jun 10, 2015 at 9:44
  • 1
    "in-tree" and "out-of-tree" are actually generic software development terms. It refers to where the resulting build output/artifacts are placed during a compile, either "in-tree", right next to the files they come from, or "out-of-tree", in a separate root directory that separates the build output from the source files. The kernel overloads these terms when talking about modules though, as you've described in your response.
    – mtalexan
    Jul 3, 2018 at 15:31
  • @mtalexan Some references that support your claim would be useful. The only one I found so far is that autosetup has at some point (they didn't when I first used it), started to use out-of-tree the way you describe, but they use in-place instead of in-tree in their doc.
    – Anthon
    Jul 3, 2018 at 16:43
  • 1
    @mtalexan Since years and scope of experience seem important you: based on my 34 years of professional software development over organisations in three continents, I recommend that you never make a generic statement like "in-tree" and "out-of-tree" are actually generic software development terms based on your, limited, experience alone. There is more than books, and if using a tool like Google cannot easily give some support to your claims, things might not be as generic as you state, and then others are better of not being fed potentially incorrect information in the way you did. YMMV
    – Anthon
    Aug 2, 2018 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.