Linux内核:源树,树内和树外的含义


15

术语“树内”和“树外”到底是什么意思?另外,“源代码树”是否专门指代kernel.org上发布的/维护的正式内核,还是更笼统的术语,它可以指代任何(经修改的)Linux内核源代码?

Answers:


11

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

在Linux内核源代码开发之外,我还没有遇到过“树内”和“树外”的问题,因此仅涉及模块的使用。所有模块都以“树外”开发开始,可以使用源树的上下文进行编译。一旦一个模块被接受包含在内,它将成为一个树内模块。尽管两个术语都没有为AI定义一个正式的定义,也许这从来没有必要,因为使用模块的人很清楚这是什么意思。

例如,当Reiserfs模块仍然是树外模块时,我为SuSE进行了RPM软件包的生成,一旦它成为树内结构,就不再需要它了。


谢谢!因此,从根本上讲,树内意味着模块是源树的一部分,树外是模块吗?
Lavya

1
@Lavya是的,那是我看到它的唯一方法。但是正如我指出的那样,我还没有遇到正式的定义。
Anthon 2015年

“树内”和“树外”实际上是通用软件开发术语。它指的是在编译期间将生成的构建输出/工件放置在它们所来自的文件旁边的“树内”或“树外”中的一个单独的根目录中,该目录将构建分开源文件的输出。正如您在响应中所描述的那样,内核在谈论模块时会重载这些术语。
mtalexan '18

@mtalexan一些支持您的主张的参考将很有用。到目前为止,我发现的唯一一个地方是autosetup(在我第一次使用它时没有),开始使用out-of-tree您描述的方式,但是他们在文档中使用in-place而不是in-tree
Anthon '18年

根据我的经验,@ Anthon in-treein-place是同一术语的同义词。我并没有真正的参考资料,这是我在过去约15年中在许多公司和子领域从事该行业的工作,而不是我读过的书。我只是指出,就技术术语而言,在其他情况下您可能会遇到一些含义稍有不同的事情。我也没有提出任何批评,只是为将来的读者添加了一些其他上下文。
mtalexan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.