Linux内核:source-tree、in-tree和out-of-tree的含义

Lav*_*vya 17 linux kernel

术语“树内”和“树外”究竟是什么意思?此外,“源代码树”是特指从 kernel.org 发布/维护的官方内核还是一个更通用的术语,可以指代任何(修改后的)Linux 内核源代码?

Ant*_*hon 13

“源代码树”不是特定于内核源代码开发的术语,因此它必须是一个更通用的术语,并且它对于内核源代码的含义取决于上下文。

在 Linux 内核源代码开发之外,我还没有遇到过“in-tree”和“out-of-tree”,然后只用于处理模块。所有模块都从“树外”开发开始,可以使用源树的上下文进行编译。一旦一个模块被接受被包含,它就会成为一个 in-tree 模块。不过,AI 还没有为这两个术语提供官方定义,也许这从来没有必要,因为使用模块的人很清楚它的含义。

例如,虽然 Reiserfs 模块仍然是树外模块,但我为 SuSE 生成了 RPM 包,一旦它成为树内模块,就不再需要它了。

  • “树内”和“树外”实际上是通用软件开发术语。它指的是编译期间生成的构建输出/工件的放置位置,可以是“树内”(位于它们来自的文件旁边),也可以是“树外”(位于分隔构建的单独根目录中)源文件的输出。不过,正如您在回复中所描述的那样,在谈论模块时,内核会重载这些术语。 (4认同)