QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 953|回复: 2

请教Redhat9.0 kernel编译

[复制链接]
发表于 2003-5-20 17:29:01 | 显示全部楼层 |阅读模式
我下载了新版本的kernel,想自己编译一下,哪位有过这方面的经验,可不可以指点一二?
发表于 2003-5-20 17:35:04 | 显示全部楼层
第六章:编译核心


好了,当我们已经可以基本操控这台 Linux 机器之後,不妨帮它动点手术,让它更适合自己的环境。就像喜欢飙车的朋友,总免不了要对心爱的座架改装改装一样。

要改车,除了要改弹簧、轮胎、煞车、排气、裙边、尾翼等,要想车子真正能发挥性能,当然免不了改引擎啦。下面我们进行的核心编译,就是为 Linux 改引擎了。日後,我们还要装 KDE、GNOME 等等这些 X Window,那是雾灯、座椅、方向盘、表板等这些‘装饰’改装了。这些修改,都一一显示了使用者的个人风格,而且也有许多产品可供选择,就如改车除了用“momo”之外,还可以选择“无限”。
何谓核心?

前面介绍 shell 的时候,已经略略提到过核心这个东西,如果您有看过“电脑基础”中关於作业系统部分的文章,相信不用我再多做解释了。而且,我也不想再重复了,假如您不知道核心是做什麽的,可以到“电脑基础”去看看。

我们通常挂在嘴边的 Linux ,其灵魂所在,就是它稳定而强大的核心。而事实上,Linux 的定义,也只是这个核心,只是大家目前使用的系统,是经过包装的,在核心之外,还有各种各样的套件( 包括不同的 shell )整合一起。如果您有时间,而且愿意上网路去抓,那些套件都可以自己找得到。有些人,帮您把核心编好,套件也设定好并加以整合,同时将安装程式写好,还提供套件管理工具,以及将环境设定妥当,然後烧成 CD,那就是我们常见的 Linux 套装系统了。我们称这些 Linux 套装系统的发行版本为 Distribution ,例如大家闻名的 RedHat,Slackware,OpenLinux,TurboLinux,SuSE,Debian,等等,都是 distrobutions 。不管它们如何包装,但骨子里头的东西,也就是使用的核心,都一样:都是 Linux !

那核心究竟如何定义呢?说简单些,就是作业系统 (Operating System),它负责处理所有系统的东西,包括硬碟的控制、记忆体管理、行程管理、档案系统、网路功能、等等。我们可以将核心看成是一个架於程式和硬体之间的界面操作系统,离开来核心,什麽东西都用不了。而核心的编译好坏,也会影响到系统的效能,甚至,一些系统功能(如 tcp/ip),就必须要编进核心才行。

不过,在动手编译核心之前,请先问问自己是否真的有这个必要?因为,现在的 Linux Distro,其预装的核心力都尽可能的将所有东西以模组的方式进行编译,而这些模组都是可以插入和移除的。这是一个非常灵活的设计:当您需要模组的时候,就载入到核心里面;鸟尽弓藏的时候,可以将模组从核心中移除:呼之则来、挥之则去,怎一个方便了得!要知道,作业系统的效能好坏、稳定与否,其中一个很关键的因素是核心的体积短小精悍。一个臃肿的核心,没错,能提供样样俱到的功能,但也牺牲掉系统效能和稳定性。所以在编译核心的时候,‘将核心编得尽量的小’,是最高原则。

就像改车一样:车身越轻,其可控性越佳,如果您完全是一个 100% 飙车发烧友,很可能,您的车箱里面,除了改良後的前坐位和防翻侧支架外,其它能拿掉的都拿掉,连仪 都是裸露的。呵~~ 如果您的车子里面还有一大堆 Kitty 、Snoppy,以及上十组喇叭和 CD 音响,那我只能说您是“爱车一族”,而绝对不够资格称得上“飙车一族”!如果您能将所有的汽车周边都设计成模组,那就最好不过了:需要泡马子的时候,将所有耍 cool 玩意都弄上;需要午夜狂奔的时候,全部拿掉,一件不留。

同样的,如果您真的是一个 100% 的 Linux 发烧友,假如发现核心里面竟然载有您不想要的东西,是绝对不能容忍的。不过,对於初入门的朋友,倒不必急於以 Linux 发烧友来自居,先摸熟核心的功能之後,才真正打造适合自己的精确核心吧。说实在,若不是赶时髦,一般用 Distro 预装的核心已经非常足够了。而且预装核心都带有非常充足的模组,随时应付您的需求。除非您千真万确的知道您要的硬体只有在新核心里面才能支援,或是从 kernel.org 上面得知旧核心有严重的漏洞,否则,不需要如此劳师动众。

好了,现在,就假设您有十万零一个理由需要进行核心的编译,那就不妨一起共赴一趟核心的编译之旅吧!

选择版本

不管您的核心是从网路上抓的,还是从 CDROM 里面 copy 出来的,首先要确定的事情是:这个版本是否适合您?

事实上,Linux 核心的版本号码上面,就隐含著一些重要的资讯。先让我们看看您目前使用的核心版本吧:

# uname -r
2.4.2-2

不知道您对这这些数字有何认识呢?不知道不要紧,让我告诉您吧:

        <主版本>.<次版本>.<修订版本>-<副版本>

然後,再让我们看看核心版本的维护流程:

      kernel
      2.2.0
        |
        V
      2.2.1
        :
        |
        V        Kernel
      2.2.8 ---> 2.3.0
        |          |
        V          V
      2.2.9      2.3.1
        :          :
        |          |
        V          V       Kernel
      2.2.60      ... ---> 2.4.0
                             |
                             V      Kernel
                             : ---> 2.5.0
                             |        |
                             V        V
                             :        :

事实上,在众多的核心版本中,我们需要特别留意的是第二个数字,也就是次版本的号码:

    * 如果它是一个奇数,那这个版本是实验性的版本,或许有些新的设备和功能能够在这个种版本找到,但因为尚处於开发期,不能保证其稳定性和安全性。无论如何,不建议在真正用来工作的系统上面安装实验性的核心版本。例如:2.1.1、2.3.2、2.3.3、2.5.0 ....

    * 如果它是一个偶数,基本上,该版本已经获得一定程度的测试和肯定,已趋於稳定和可靠的状态。如果您的系统是真正用来工作的,只建议安装稳定的核心版本。例如:2.
回复

使用道具 举报

 楼主| 发表于 2003-5-21 21:27:16 | 显示全部楼层
多谢!我回去慢慢看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 20:09 , Processed in 0.039764 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表