手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

第 6 部分:配置及编译内核

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

由内核运行的第一个进程是 /sbin/init。他依次启动 /etc/inittab 中指定的其他进程。几秒钟内,Linux 系统就启动并运行起来,准备好供您使用。虽然您从不直接和内核打交道,但 Linux 内核始终运行于任何常规进程“之上”,并提供各种程式和库运行所必需的虚拟和抽象。

介绍 ... 模块!

任何较新的 Linux 内核都支持内核模块。内核模块是真正美妙的事物 ― 他们是内核的组成部分,驻留在磁盘上相对较小的二进制文档中。每当内核需要一个特定模块的功能时,就会从磁盘装入这个特定模块并自动将他和自身结合,这样便动态扩展了内核的能力。

假如装入的内核模块的特性在几分钟内未被使用,则内核会自动将他和内核其余部分分离并从内存卸装他 ― 这被称为自动清除(autocleaning)。若没有内核模块,则需要确保运行的内核(作为单个二进制文档存在于磁盘上)完全包含任何可能需要的功能。若没有模块,则需要构建一个全内核,以将新的重要功能添加到其中。

通常,用户构建一个包含任何基本功能的内核映象,然后再构建一组模块,这些模块对应着用户未来可能需要的功能。以后要使用时,则按照需要,将适当的模块装入内核。这也有助于节约 RAM,因为模块只有从磁盘装入后才使用 RAM。当从内核除去模块后,其使用的内存就被释放并用于其他用途。

模块所在位置

内核模块通常位于 /lib/modules/x.y.z(其中 x.y.z 是模块所兼容的内核版本);每个模块在其名称末尾都有“.o”,表明他是包含机器指令的二进制文档。正如您猜想的那样,每个单独的模块代表内核功能的一个特别组件。某个模块可能提供 FAT 文档系统支持,而另一个模块则可能支持一块特别的 ISA 以太网卡。

模块 ― 并非用于任何进程!

值得一提的是:不能将任何东西都放入模块中。因为模块存储于磁盘上,可引导的内核映象需要拥有对磁盘控制器、驱动器和根文档系统的内编译(compiled-in)支持。假如没有将这些基本组件编译到内核映象中 ― 也就是说,假如试图将他们作为模块编译 ― 那么内核将没有从磁盘装入这些模块所必需的能力,这会产生一个很令人讨厌的“先有鸡还是先有蛋”的问题,结果是个不能引导系统的内核!

三。查找并下载源代码

内核版本历史

在撰写本教程时,可用的最新内核是 2.4.18。2.4.18 内核是 2.4 稳定内核系列的一部分。这一系列的内核发行版打算用于生产系统。

更有几个 2.5 系列内核可供使用,但不应当在生产系统上使用他们。“2.5”中的“5”是奇数,表示这些内核本质上是实验性的,并且打算供内核研发人员使用。当“2.5”内核准备好用于生产使用时,就会出现“2.6”(第二个数为偶数)系列。

使用哪些内核源代码

若只想编译当前已安装内核的新版本(例如,要启用 SMP 支持),则最好的方法是安装分发版的内核源代码包。这样做之后,您应该在 /usr/src/linux 中发现一组新文档。

然而,有时候您想安装内核。通常,最好的方法是只安装分发版内核源代码包的新版本或更新版本。该包将包含内核源代码,这些内核源代码经过补丁程式的修正,并且经过调整以便能最优地运行在 Linux 系统上。

从源代码获得内核

假如您具备冒险精神,则能够从 http://www.kernel.org/pub/linux/kernel 抓取一个“主线”内核源代码 tar 包。在这个目录中,您能够找到由 Linus 或 Marcelo 发布的正式内核源代码。这些源代码可能没有分发版内核源代码包中的任何特性,因此,在知道自己正在做什么以前 ... 或在有“额外的”机器和大量空闲时间以前,通常最好不要使用主线内核:)

在 kernel.org,您会发现内核源代码根据内核版本(v2.2、v2.4 等)被组织到几个不同的目录中。在每个目录中,您会发现文档被标为“linux-x.y.z.tar.gz”和“linux-x.y.z.tar.bz2”。这些文档是 Linux 内核源代码 tar 包。您还会看到标为“patch-x.y.z.gz”和“patch-x.y.z.bz2”的文档。这些文档是补丁程式,能够用来更新完整内核源代码的较早版本。假如要编译新的内核发行版,则需下载这些“linux”文档之一。

解包内核

假如您从 kernel.org 下载了新内核,则现在能够将他解包。要这么做,用 cd 命令进入 /usr/src。假如在那里有一个现成的“linux”目录,则将他改成“linux.old”(以 root 用户身份执行 mv linux linux.old)。

现在,能够解压缩新内核了。若仍处在 /usr/src 中,则输入 tar xzvf /path/to/my/kernel-x.y.z.tar.gzcat /path/to/my/kernel-x.y.z.tar.bz2 | bzip2 -d | tar xvf -,这取决于源代码是用 gzip 还是用 bzip2 压缩的。输入这一命令后,新的内核源代码将被解压缩到新的“linux”目录中。注意 ― 完整的内核源代码通常占据 50 MB 以上的磁盘空间!

四。配置内核

讨论配置

编译内核以前,需要配置他。能够用配置来精确控制在新内核中启用(连同禁用)哪些内核特性。还能够控制将哪些部分编译到内核二进制映象(将在引导时装入)中,而将哪些部分编译到“按需装入”的内核模块文档中。

老式的配置内核的方法是很令人痛苦的,包括进入 /usr/src/linux 并输入 make config

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!