i. 前言

从 1998 年起,我踏上了学习和深入理解 Linux 的旅程。当时我刚刚安装了我的第一个 Linux 发行版,并迅速被 Linux 背后的整个设计理念和哲学所折服。

为了完成一项工作,人们总是能提出很多不同的方法。对于 Linux 发行版来说,情况也是这样。多年来诞生了许多发行版,其中一些仍然生存,另外一些已经被其他发行版吸收,还有的已经消亡,成为我们的回忆。这些发行版各有特色,以满足它们的目标人群的需求。因为这些发行版都是已经存在的,能够达成同一目的的手段,我开始意识到并不需要将自己的思维约束在发行版这一种实现方法上。在发现 Linux 之前,我们只能忍受其他操作系统的种种不足,因为我们没有其他选择,操作系统的行为不以我们的意志为转移。然而,自由选择的理念随着 Linux 的诞生而出现。如果你不喜欢某种行为,就可以自由地改变它。这在 Linux 世界中甚至是受到鼓励的。

我曾经尝试了许多发行版,但无法做出最终决定。它们各有特色,都是很不错的系统。这里不存在对与错的问题,而是系统是否符合个人口味的问题。在各种选择中,看上去并没有一种发行版能完美地符合我的要求。因此我开始创造自己的 Linux 系统,以完全符合我的个人品味。

为了构建出真正属于我自己的系统,我决定从源代码编译所有东西,而不使用预先编译的二进制包。这个完美的 Linux 系统将会兼具不同系统的优点,同时扬弃它们的不足。这个想法初听上去非常可怕。然而,我仍然坚信这个系统可以被构建出来。

在整理并解决了循环依赖和编译错误等问题后,我终于构建出自己定制的 Linux 系统。它完全可以工作,并且像当时的其他 Linux 系统一样完美可用。不同的是,这是我自己的创造,亲手组装出这样的系统是非常有成就感的。唯一能够让我更开心的事情是亲自编写一个软件系统。

当我向其他 Linux 社区成员推广我的目标和经验时,大家似乎对这些想法很有兴趣。显而易见,这些自行定制的 Linux 系统不仅能够满足用户的特殊需求,而且对于程序员和系统管理员来说是提高 Linux 技能的理想学习机会。随着越来越多的人对这一主题的关注,Linux From Scratch 项目诞生了。

这本 Linux From Scratch 手册是这一项目的核心内容,它将提供亲自设计和构建系统所需的背景知识和操作步骤。本书提供了一个构建能够正常工作的系统的样板,您可以自由地调整本书中的命令,来满足您自己的要求,这也是本项目的重要组成部分。您始终掌握自己的系统,我们只是在您起步时提供微小的帮助。

我真诚地祝愿您能够在您自己的 Linux From Scratch 系统上体验快乐,并享受拥有这样一个真正属于自己的系统所带来的各种乐趣。

--
Gerard Beekmans
gerard@linuxfromscratch.org