当前位置:Linux教程 - Linux - 定制Linux内核,发挥Linux潜能

定制Linux内核,发挥Linux潜能

  众多的Linux用户在经历了对Linux由好奇到熟悉的过程之后,是否希望按照自己机器的实际配置对Linux进行定制,从而获得最佳的系统性能呢?也许有用户会认为在自己使用Linux的过程中没有碰到到任何问题,Linux确实象人们所宣传的那样“永远不会崩溃”,因此完全没有必要冒着风险对系统内核进行的改动。其实,对Linux系统内核进行定制和修改并不向很多人想象中的那么复杂。如果用户能够根据自己的实际情况对Linux系统内核进行合理的修改,可以有效的简化Linux内核,去除不需要的组件,从而提供更快的系统启动速度,释放更多的内存资源。
  下面我们对Linux系统内核做一下简单介绍。

  所谓系统内核实际上是系统设计人员编写的控制系统的各个组件,在不同程序之间分配系统资源,同时协调系统与硬件和外设之间数据传递的系统核心程序代码。与Windows系统的内核不同,Linux系统的内核是可配置的,用户可以根据自己的实际需要,在对系统内核进行定制。例如,用户可以针对自己机器CPU的具体型号对系统内核进行优化。

  尽管不同厂商在推出其各自的Linux产品之前,都已经针对某些具体的硬件设备或网络协议对系统内核进行了设置,但是用户还是可以针对自己所实际使用的机器对Linux系统内核进行进一步的修改,从而将Linux系统的性能提升到新的高度。   本文将主要结合目前较为流行同时也是较为成熟的Red Hat Linux版本对系统内核的定制进行详细的介绍。使用其它厂商推出的Linux产品的用户也可以参照本文的介绍,对Linux内核进行定制。

准备工作

  尽管重新编译Linux系统内核的操作大多数可以自动完成而且也并不复杂,但是一旦出现错误,将可能导致Linux系统无法正常启动。因此,为了预先防范可能出现的任何问题,用户一定要在对Linux系统内核进行任何的改动之前,制作一张Linux系统启动盘(注:用户在安装Linux系统的过程中可能已经被要求制作了系统启动盘,如果用户没有现成的系统启动盘,可以按照本文随后的介绍重新制作一张),同时还应当将一些重要的数据进行及时的备份。   下面,我们就来看一下如何实现Linux系统内核的定制。

  用户需要以管理员root帐号登录Linux系统。因为本文的所有命令都是通过命令方式实现,所以用户最好选择以命令方式登录。如果用户机器上的Linux系统默认登录到图形方式的话,可以使用图形环境下的终端命令窗口(单击GNOME桌面任务条中以计算机图案显示的按钮)。

制作启动盘

  一般在Linux系统的安装过程中,安装程序都会要求用户制作一张Linux系统启动盘,这样当Linux系统出现严重错误而无法正常启动时,用户就可以使用启动盘重新启动Linux系统。如果用户没有任何现成的启动盘,可以按照如下所述方法自己动手制作。

  假设用户使用的是Red Hat 推出的Linux产品,首先在命令模式或命令终端窗口下输入“more /etc/lilo.conf”命令,然后回车。该命令将会分屏显示Linux加载程序,即Linux Loader(简称LILO)的配置文件。用户在文件中找到如下条目“image=/boot/vmlinuz-2.2.12-20”。该项指出的路径正是用户每次启动Linux系统时首先被装载的Linux系统内核的位置。其中“vmlinuz-”项后的数字代表用户目前所使用的Linux系统内核的版本,实际显示值视用户的具体情况可能会有所不同。记下该数字之后,输入“q”返回到命令方式。

  随后用户输入“mkbootdisk --verbose --device /dev/fd0 2.212-20 ”命令,其中的Linux系统内核版本号以用户的实际版本数字为准。回车之后,Linux将会要求用户插入一张软盘,然后自动为我们制作一张系统启动盘。 设置系统内核

  现在,我们开始对Linux系统内核进行定制。首先,用户输入命令“cd /usr/src/linux”,将当前的工作目录转换到/usr/src/linux。

  Linux系统为用户提供了两种系统内核的设置接口,分别为menuconfig和xconfig。其中,用户可以在任何命令方式下通过输入命令“make menuconfig”启动menuconfig,然后使用方向键和Tab键进行选择和修改。对于xconfig,用户只能在X Windows下通过命令“make xconfig”启动。xconfig提供了更加友好的用户界面,用户可以通过鼠标点击选择选择各项菜单和按钮。本文将主要介绍xconfig使用方法,用户可以通过使用menuconfig实现同样的功能。


  用户输入命令“make xconfig”按回车,在一连串文字飞快显示之后,将会弹出xconfig的主窗口。该窗口包含许多按钮选项,点击其中任意一项会弹出对Linux系统内核进行具体设置的设置窗口。例如,用户点击xconfig窗口中的第二项“Processor type and features“之后,就可以在相应的弹出窗口中对用户自己机器处理器进行设置。


  在每一个设置窗口中,用户可以通过选择“Y”或“N”选项启动或关闭任意功能。此外,用户还可以选择“M”选项,把某些功能作为模块进行编辑。所谓模块并不是系统内核的组成部件,但是在需要时系统内核会连接指定的模块从而共同提供特定的功能。在默认情况下,设置窗口中的许多功能都是作为不同的模块被编辑的。

  如果用户在具体的设置过程中对某一个具体功能的设置不清楚的话,可以点击该功能选项的帮助按钮,启动相应的帮助文本。帮助文本能够提供所有功能选项的详细说明。如果用户发现自己可能选择了错误的选项而希望恢复以前的设置的话,可以选择直接返回主窗口而不保存任何所做的改动。   用户在完成了所有需要改动的设置之后,可以点击xconfig主窗口的“Save and Exit“,保存用户设置并退出xconfig。

编辑系统内核

  用户在按照个人的实际需要完成对系统内核的设置之后,需要对新的系统内核进行编译。

  用户在关闭所有打开的程序之后,在命令方式下输入“make bzImage”命令。该命令会自动完成对新系统内核的编辑,大约需要10到30分钟,具体时间取决于用户机器的性能。

  编译完系统内核之后,返回到命令方式。这时如果出现报错信息,则表示用户对系统内核进行了错误的设置,例如没有启动某一个功能所必须的其它附加功能等。这时用户所能做的只能是从头开始,从新设置系统内核。

  在顺利编译完新的系统内核之后,用户还需要对配置系统内核过程中设定的各种功能模块进行编译和安装。具体为:输入“make modules”命令,然后按回车。该命令将会完成对内核模块的编译。完成编译之后,输入“make modules_install”命令,该命令会自动安装已编译模块。

收尾工作

  在完成了对新系统内核以及模块的编译之后,我们需要把新的系统内核复制到Linux的启动目录中。用户可以输入以下命令“cp arch/i386/boot/bzImage /boot/vmlinuz-mykernel”。此外,我们还需要对LILO进行相应的修改,以便使LILO在系统启动时能够找到新的系统内核。我们可以使用任何一种Linux系统下的文本编辑工具对LILO配置文件进行修改。这里我们使用pico文本编辑器。输入“pico /etc/lilo.conf”命令,启动pico编辑器,并载入LILO配置文件。找到“image=“项,用“/boot/vmlinuz-mykernel”替代该项的现有值。建议用户记下“image=“项的当前值,这样如果出现任何问题,就可以方便的恢复到安全设置。完成修改之后,按Ctrl-X,选择“Y”然后回车,保存设置并退出pico编辑器。   这样,我们已经完成了定制Linux系统内核的所有工作。重新启动机器再次进入Linux系统之后,用户将会感受到新的系统内核所带来的新的体验。