编译自己的Linux操作系统

liang @ 2012年05月04日

LFS,全称是Linux from Scratch,是一个教科书项目的名称,由 Gerard Beekmans 所发展并维护。这个项目旨在教人们完全从零开始编译自己的linux系统,所有的软件都是通过源码包安装,每个人都可以按照自己的需要定制自己的linux,这样可以做出来最小,最快也最满足自己需要的linux,我的这个linux就是按照LFS的思想来编译构建的。

LFS官网

在高中时我就想过将来有机会一定要做一个自己的操作系统出来,后来发现这并不是一件容易的事情,当然,也不是完全不可能,三年前接触了linux后,我就在构思如何能编译一个linux出来。后来,在研究破解无线网的过程中我接触到Beini Linux(奶瓶操作系),只有不到60(ps:据说这个系统的作者是为了庆祝自己女儿的出生写下的这个操作系统),这让我觉得linux是完全可以自己定制并做的很小很小。

言归正传,我第一次接触LFS是在一年前,当时对linux的底层原理和库依赖关系等还是非常不清楚,对整个LFS的过程云里雾里的,所以就搁浅了。

最近又拿起来LFS,细细读了读,发现很多东西已经理解很透了,于是就在着手在自己的笔记本上构建LFS系统,说实话这个过程很费精力,我前后总共用了四天时间,几乎每天醒着的时间都在搞这个系统,当然,最后做出来后,很是自豪,这个系统我称之为”Egg Boiler 1.0“,吼吼~~。

基本的LFS系统构建好以后,开机只要3s左右就到登陆界面了,真是快的一塌糊涂,爽啊。之后,我又在这个系统上安装了DHCP和pppoe,使得他可以自动获取IP地址,由于没有GUI界面,我安装了lynx浏览器,这样就可以通过文本方式访问互联网。

由于是第一次编译linux系统,下面说说自己遇到的困难:

首先是宿主系统的选择,最初用的是Fadero 16,因为他是基于Rad hat的,应该会很稳定,结果它搭载的Gnome3.4界面在root用户登陆的情况下总是崩溃,而且崩溃之后就进不了系统,在这种情况下重装了好几次,最后还是决定放弃Fadero。之后试用了Arch Linux也不是很顺利,最后还是决定用ubuntu 10.10,ubuntu果然不负众望,基本没出什么问题直到新系统的诞生…

其次是宿主系统环境的设置,LFS对GCC,Glib的环境的要求非常苛刻,刚开始不清楚,有些就没有按照官方给的配置设置环境,结果编译到一半,尤其是GCC的编译,总是出错,几近崩溃了都,最后还是老老实实按照官方给的要求重新配置了ubuntu的软件环境,总算是一步一步进行下去了…

再者是LFS版本的选择。早一点的LFS版本有中文翻译,我最早就是用的LFS 6.3,因为文档又中文,但是在编译GCC时总是出错,看了论坛上前人的经验才最后决定用LFS 6.8,虽然文档全是英文,但是基本上都能看懂能理解,结果LFS 6.8在我的ubuntu上果然一路顺利。可见,LFS的版本还是很重要的,一定要选对LFS版本,并严格按照文档来才能成功。

我还没有想好我做的这个系统究竟用来做什么,不过有了这个基础,将来根据需要把它改成服务器系统或嵌入式系统就很轻松了。


                             oo$$$$$$$$$$oo
                          oooo$$$$$$$$$$$$oooo
                      oo$$$$$$$$$$$$$$$$$$$$$$$$o
                   oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o         o$   $$ o$
   o $ oo        o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o       $$ $$ $$o$
oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o       $$$o$$o$
"$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$
  $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$
  $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$
   "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$
    $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o
   o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       $$$o
   $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o
  o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$
  $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""
 """"       $$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$
            "$$$o     """$$$$$$$$$$$$$$$$$$"$$"         $$$
              $$$o          "$$""$$$$$$""""           o$$$
               $$$$o                                o$$$"
                "$$$$o      o$$$$$$o"$$$$o        o$$$$
                  "$$$$$oo     ""$$$$o$$$$$o   o$$$$""
                     ""$$$$$oooo  "$$$o$$$$$$$$$"""
                        ""$$$$$$$oo $$$$$$$$$$
                                """"$$$$$$$$$$$
                                    $$$$$$$$$$$$
                                     $$$$$$$$$$"
                                      "$$$""""
                                      "$$$""""