正 文

Linux操作系统的内核编译内幕详解


www.7dspace.com  更新日期:2005-9-28 0:35:04  七度空间


  编译

  在繁杂的配置工作完成以后,下面你就可以自己到杯茶耐心等候了。与编译有关的命令有如下几个:

#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#depmod -a

  第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;第三个命令make zImage和第四个命令make bzImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.4.0版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。建议大家使用make bzImage命令。

  后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了"Yes"才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。

  严格说来,第七个命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。

  更新

  经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:

#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8

  以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:

#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map

  然后修改/etc/lilo.conf:

#vi /etc/lilo.conf

  增加如下一段:

image=/boot/vmlinuz-2.4.0test8
label=linux240
read-only
root=/dev/hda2

  其中root=/dev/hda2一行要根据需要自行加以修改。运行:

#sbin/lilo -v

  确认对/etc/lilo.conf的编辑无误,现在重新启动系统:

#shutdown -r now

  在机器重启后出现LILO时按TAB键,输入linux240,我们的新内核发挥作用了,好好享受吧。

6页,页码:[1]  [2] [3] [4] [5] [6] 

上一篇:如何用Photoshop给老照片上色
下一篇:Windows系统关键字搜索也有漏网之鱼
作者:  来源:blog ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐