第2章 工具链
软件的编译过程中由一系列的步骤完成,每一个步骤都有一个对应的工具。这些工具紧密地工作在一起,前一个工具的输出是后一个工具的输入,像一根链条一样,因此,人们也把这些工具的组合形象地称为工具链。
在本书中,我们将从源码开始,逐步构建一个基本的Linux操作系统。显然,工具链是我们首先需要考虑的,因为工具链是编译包括内核在内的操作系统各个组件的基础。正所谓“物有本末,事有终始,知所先后,则近道矣。”因此,在本章中,我们并没有匆忙切入正题——构建工具链,而是首先结合具体的例子,借助宿主系统中的工具,尽可能地将工具链的工作过程更具体地展示给读者。希望通过这个探讨过程,读者可以明白工具链包含哪些组件以及这些组件的基本工作原理。然后基于GNU工具链的源码,手工从源码构建一套工具链。后面,我们将会使用这一章构建的工具链编译内核以及操作系统的各个组件。