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
  • 4
    "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
  • 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
  • 1
    FYI, GNU radio project also use out-of-tree terminology.
    – matt
    Aug 22 at 10:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .