如果你把从源代码开始编译构建一个操作系统的工作当成厨师做一桌菜的话,LinuxFromScratch(简称LFS)就是一份“菜谱”。从今天开始我准备写系列教程,一步一步带着大家从开源软件的源代码(大厨的“食料”)开始,基于最新版的LFS(大厨的最新版“菜谱”)编译出能运行的Linux操作系统、构建出能作为桌面日常使用的Linux操作系统、打包成可以在电脑上安装的Linux操作系统、直至让你做出跟DeepinLinux一样好用的GNU/Linux发行版。这更是我们一步一步实践的过程,也是我们逐步深入学习的过程。希望在走完这个过程后,我们的技术、能力能达到为GNU/Linux操作系统添砖加瓦,甚至走的更远,作为一份子编制出我们自己的操作系统。
你心动了吗?不急,跟着我,你只要2个小时,不要惊讶、就2个小时,你也能编译、构建出能运行的Linux操作系统。作为《从LFS到自己的Linux发行版》系列教程的开篇,本篇会以最低难度、最明确步骤为宗旨,跟你一步到位体验基于LFS11.0编译、构建出能运行的Linux系统,让你对LFS有个初步认识;力争带你一次成功,让你树立信心、获得成就感。
工欲善其事、必先利其器。为了顺利地编译构建你的Linux操作系统,我们该做好一些准备工作,免得过程中出问题、从头再来,这样的话2小时可是不能完成我们的LFS的啊。
至此,我们为LFS11.0所做的准备工作全部完毕。
这一节,我们通过复制粘贴一步完成LFS11.0。我们的基于LFS11.0编译构造自己的Linux操作系统的工作都将在虚拟机Deepin中进行。
在此期间,你不要关机(你的电脑、虚拟机Deepin都不要关闭),不要在深度终端输入任何字符,也尽量不要在虚拟机Deepin中打开其他窗口。你最好是把虚拟机Deepin最小化到你电脑的任务栏上,以免由于虚拟机Deepin内存不足或者CPU高占用而导致出现问题。
为了直观地了解虚拟机Deepin在这运行的2小时中,深度终端到底做了些什么,把我基于LFS11.0并做了适当调整的一部分代码粘贴于下面,本文不做详深度解析(那正是下一篇所要呈现给大家的),如果暂时不想了解,尽管可以路过。
上节,我已经说了,你的电脑(当然是虚拟机Deepin)在把代码全部复制粘贴到深度终端并运行约2小时后,已经完全编译构建好了一个基于LFS11.0的Linux操作系统。那么,深度终端到底做了些什么、你的电脑到底发生了哪些变化呢?
可以看出,内置磁盘只有一个:系统盘。
可以看出,内置磁盘有两个:系统盘、48GB卷(从名字可以看出已经分区、格式化并挂载),多出了一个内置磁盘48GB卷。这个多出来的内置磁盘,就是我们通过把代码复制粘贴到深度终端并回车运行,把虚拟机上已经有的第二硬盘进行了分区,并对分区进行了格式化、挂载,形成了可以被电脑所用的硬盘分区。
哇,里面不再是像刚刚被格式化、空空如也的样子了,里面已经有bin、boot和home等一系列目录,俨然是一个完整的Linux操作系统。对,这就是深度终端在运行2小时后编译构建完成的Linux系统,只等你开启。
下面,你跟着我一起来开启你的Linux系统吧。
That'sWonderful!这真是令人激动的时刻。
你跟我一起,一步一步走来,真的从源代码开始,编译构造出了你的Linux操作系统。尽管这个系统还很单薄、功能不是特别多,还不能输入、显示汉字,还没有视窗;你的这个Linux操作系统的编译构造过程,是用我配置好的虚拟机Deepin,把我根据LFS11.0手册整理并适当改造了的代码直接粘贴到深度终端,体验了一次编译构造Linux系统的过程,你对编译构造的原理还不是很明了。
这正是我以后要跟你们继续做的事情:详细了解从源代码到你的Linux系统的编译构造过程,基于BLFS构造出能用于工作的功能丰富的Linux系统,把你的Linux系统装入U盘并能在别的电脑(不是虚拟机、也不是限于自己的电脑)、为别人所用,直至最终构造出像DeepinLinux一样好用的、有完整的包管理机制的Linux操作系统。
这里要顺便表扬一下DeepinLinux。在我试用过的GNU/Linux操作系统中,这个Linux系统是最接地气的,完全开箱即用,中文、输入法及常规软件统统搞定,我用这个系统进行LFS时,只做了三项简单设置:一、通过深度软件商店安装了sublime这个代码编辑器;二、通过深度终端安装了g++等三个LFS编译环境必须的软件;三、通过深度终端对sh指向由dash改为bash。这个系统,还特别漂亮,用来有苹果系统的感觉。真不愧是我们自主操作系统的佼佼者!
如果我们一步一步走过了上述的全部过程,我相信对你我都有所裨益,能深刻理解操作系统构造原理,有能力去为GNU/Linux这个伟大的自由开源软件添砖加瓦,甚至走的更远,去创造出完全为我们所有的操作系统。等着那一天!