很多同学都已经学习了 Linux ,可能已经在自己的机器上安装过 Linux,甚至都能搭建个简单的个人博客,也有可能编译部署过邮件服务器之类的软件,可是感觉仍然对 Linux 有点摸不着,颇有隔靴挠痒的感受。
总是好奇 Linux 内核是怎么回事,究竟里面有点什么?总是好奇 Linux 是怎么启动起来的,那个什么 GRUB 怎么知道读取引导信息?总是好奇设备怎么就可以被当成文件操作,为什么可以从 /proc
读到进程的信息?总是好奇如何才能构建一个操作系统,从无到有的做成一个可引导的 Linux 启动盘?
不用羡慕那些说起这些就头头是道是 Linux 极客们,其实你和他们之间只是差一个 LFS 而已。
什么?请听我娓娓道来~
LFS 是什么?
LFS(英文 Linux From Scratch 的缩写),中文释意为“从零开始构建的 Linux”。好吧!看起来很高大上 OTZ,可它到底是什么东西呢?感觉上它好像经常和 RedHat,Debain 这类发行版混在一起,那它应该也是个发行版吧!
这样理解其实也没有什么不对,但比起发行版来,它其实更像一本书。书本只提供知识,它只教你做,不会帮你做。这才是 LFS 和别的发行版的本质区别。这本书可以教你如何亦步亦趋的从零开始搭建一个具体而微的 Linux 系统,没错,就是从零开始,是不是有一种上帝视角的感觉呢?
那么在哪儿可以找到这本“书”呢?你可以在网上找到电子版,当然,乐意的话,你可以打印出来——不过,我认为这没必要。你只需要按照这本书的指导,一个字母都不要敲错,你就能在它手把手地指导下,打磨出你自己的 Linux 系统啦!
LFS 是本好书吗?
是的,LFS 绝对配得上称为一本好书,或者说一本好教材。市面上,很难再找到一本如此具体又如此精炼的教材了。
首先,它并不是只是讲讲简单概念,它很具体,具体到就是一个例子,一个告诉你怎么亲手构建出属于自己的 Linux 系统的例子。
其次,它很精炼,它的精炼表现在两个方面:系统构建出来不臃肿;文字描述很精炼。
最后还有一点,这一点至关重要。尽管文字的描述非常精炼,甚至是精炼到枯燥,但是作为一本教材,作者无时无刻不再想尽办法,让你学到东西。无论是编译指令下方各个参数的介绍,还是软件包安装小节下方软件包内容的介绍,作者真的是想尽办法的试图把知识传递给读者。
LFS 没有缺点吗?
那自然是有的,可以原封不动的照抄上面的优点。辩证的看待这些优点,你就会发现这些优点是有代价的。
首先,由于这个例子过于生动形象,所以篇幅不小,快则一两天,慢可能要一两周你才能跟着把系统构建完。一次做完你也不见得能把知识完全消化。
然后,刚才我也提到了,为了让内容更精炼,更多的只是叙述和说明,并不会夹杂太多作者的思想和经验,看起来显得很枯燥。
最后,相信大家都不是太喜欢看教科书。
当然,其实还有一个缺点,会给我们的学习带来比较大的阻力,这个我们后面会提到。
LFS 的定位
盘点了优缺点以后 LFS 的定位就很清晰了,它就是一本书,一本教科书。所以你不能要求它像小说般有趣。而这本书的受众是,广大的程序员,学生,Linux 用户,以及任何一个对此感兴趣的人。
如何开始?
如果你英文水平尚可的话,请直达 LFS 官网: http://www.linuxfromscratch.org/lfs/ ,开始你的上帝之旅吧。
如果你希望阅读中文的话,我们 Linux 中国旗下的 LFS 翻译小组,经过了长时间的不断努力,继续更新了最新的 LFS 8.3 版本:https://lctt.github.io/LFS-BOOK/ 。
对于此译本,译者 Martin 有言:愚者琢玉,履薄临深。善人善用,不负光阴。
LFS 中文维护
之前提到,会给我们的学习带来很大的阻力的缺点,就是这本书的原文是英文。
作为母语是中文的大家来说,阅读大段的英文并不是一件多么享受的事。LCTT 之前已经翻译过一版简体中文的 LFS 7.7。时间过的飞快,现在最新的版本已经是 8.3 了。我们也会不断跟进最新 LFS 翻译,喜欢 LFS 也愿意做出翻译贡献的,可以参与我们的翻译项目。
(以下是广告时间……)
对翻译 LFS 手册感兴趣的同学,翻译项目在此: https://github.com/LCTT/LFS-BOOK ,你可以在这里对翻译中出现的问题进行反馈和修正。
那么,你准备成为一名 Linux 极客了吗?