Linux内核的配置与编译
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer Knowledge and Technology 电脑知识
与技术第5卷第3期(2009年1月)Linux 内核的配置与编译
胡庆烈
(佛山职业技术学院电子信息工程系,广东佛山528000)
摘要:Linux 是一种实用性很强的现代操作系统,它开放源代码,并允许用户升级其内核。在Redhat 7.2环境中,详细分析了Linux
2.4.18版本的内核配置、编译及新内核切换等操作过程。
关键词:Linux ;内核;配置;编译
中图分类号:TP316文献标识码:A 文章编号:1009-3044(2009)03-0730-02
Configuration and Compiling of Linux Kernel
HU Qing-lie
(Department of Electonics &Information,Foshan Polytechnic College,Foshan 528000,China)
Abstract:Linux is a very practical modern operating system,which opens source coding and allows the user to upgrade its kernel.In the environment of Redhat 7.2,the paper analysis the Linux 2.4.18version of kernel configuration,compiling and new kernel process switch -ing,and so on.
Key words:Linux;kernel;configuration;compile
1引言
Linux 是一个自由的多任务操作系统,它以开放源码、对硬件的配置要求低并兼具现代操作系统的优点而得到了迅猛的发展。操作系统的内核是操作系统的核心,它有很多基本的功能,如虚拟内存、多任务、共享库、需求加载、共享的写时拷贝(copy-on-write)、可执行程序和TCP/IP 网络功能等。
用户编译配置Linux 的内核,主要有以下三个原因:1)从现有内核中去除一些不需要的功能,使自定制的内核运行速度更快、更稳定,且具有更少的代码;2)使系统拥有更多的内存,内核部分将不会被交换到虚拟内存中;3)为了提高速度,将某种功能编译到内核中。
2Linux 内核升级的准备
2.1安装一个Linux 操作系统
在编译一个新的Linux 内核之前,首先应在微机中安装一个Linux 操作系统,以便利用该Linux 环境进行新内核的配置和安装。这里是以Redhat 7.2为例,在安装Redhat 7.2的过程中,有两个问题需要注意:
1)硬盘的分区:由于每个硬盘只能拥有4个主分区(Primary Partition ),故用户需要扩展分区,则至少需要腾出一个主分区来划分逻辑分区。在安装Linux 操作系统时,至少需要两个分区,其中本机分区(Linux Native )是供Linux 存放系统文件,而置换分区(Linux Swap )是用作虚拟内存的存取空间。此外,为了和Windows 系统进行文件的复制转换,还应创建一个FAT32类型的分区。
2)安装LILO 启动程序:LILO 是Linux 的核心加载程序,它提供了从DOS 环境启动Linux 的功能,并支持多重启动菜单,让用户选择启动哪一个分区的操作系统。
2.2获取新的Linux 内核源代码
安装了Linux 操作系统后,接下来的工作是寻找新内核的源代码。目前,在Internet 上提供Linux 源代码的站点有很多,如 就是Linux 内核版本发布的官方网站,用户可以从该站点上获得最新版本的Linux 内核源代码,这里是以linux-
2.4.18版本为例。
2.3对新的Linux 内核源代码包进行解压
由于大部分开放性操作系统的程序都是以压缩文件(tgz 、zip 、gz 与bz2)的形式进行发布,所以从网络上取得这些压缩文件后,都先要解压缩之后才能安装使用。具体过程如下:
1)执行“GNOME Terminal ”,把X Windows System 图形用户界面切换至文件操作模式;
2)执行“#cp /root/linux-2.4.18.tar.gz /usr/src ”,把从网络下载的压缩包复制至/usr/src 处;
3)执行“#tar -zxvf linux-2.4.18.tar.gz ”,对压缩包进行解压,解压文件存放在/usr/src/linux-2.4.18目录中。
2.4清除不正确文件及其它从属文件
为了确保源代码目录中没有不正确的文件和其它从属文件,一般需要运行mrproper 命令进行清理,具体操作如下:
#cd /usr/src/linux-2.4.18
#make mrproper
如果是使用刚下载的完整的源程序包进行编译,则可以省略mrproper 操作。但若已反复多次使用这些源程序来进行内核编译的,则应要先运行一下这个命令。
收稿日期:2008-12-11
作者简介:胡庆烈(1969-),男,揭阳惠来人,电子助理工程师,主要从事电子技术的教研工作。
ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.5,No.3,January 2009,pp.730-731,735E-mail:kfyj@ Tel:+86-551-56909635690964
胡庆烈:Linux内核的配置与编译
2.5建立相关的目录链接
将/usr/include/目录下的asm、linux和scsi等连接指向要升级的内核源代码,它们分别链接源代码目录下真正的计算机体系结构(对于大部分PC机来说,使用的体系结构是i386)所需要的include子目录。如:asm指向/usr/src/linux/include/asm-i386等。具体操作如下:
#cd/usr/include/
#rm-r asm linux scsi
#ln-s/usr/src/linux-2.4.18/include/asm-i386asm
#ln-s/usr/src/linux-2.4.18/include/linux linux
#ln-s/usr/src/linux-2.4.18/include/scsiscsi
3Linux内核的配置选项
Linux内核配置的方式主要有图形窗口和文本方式两种,用户可根据当前机器情况及自己操作的习惯进行选用。
#make config:基于文本的最为传统的配置界面
#make menuconfig:基于文本选单的配置界面
#make xconfig:基于图形窗口模式的配置界面,需要Xwindow的支持
#make oldconfig:在原来内核配置的基础上修改一些小地方时选用
这里选用了make xconfig进行内核的配置。
Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答“y”、“m”或“n”。其中“y”表示将相应特性的支持或设备驱动程序编译进内核;“m”表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;“n”表示内核不提供相应特性或驱动程序的支持。限于篇幅,这里仅以“General setup”和“Networking options”选项中的某些属性为例进行介绍。
3.1General setup(一般设置)
这里是对最普通的一些属性进行设置,一般使用缺省设置就可以了。
1)Networking support(CONFIG_NET):该选项设置是否在内核中提供网络支持,这里该项设为“y”。
2)PCI support(CONFIG_PCI):该选项设置是否在内核中提供PCI支持,这里该项设为“y”。
3)PCI access mode(BIOS,Direct,Any):该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Di-rect”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。这里选择“Any”。
4)Parallel port support(CONFIG_PARPORT):选择“y”,内核将支持并口,这里该项设为“n”。
5)Support for hot-pluggabel devices:热插拔设备支持,为了使新内核更稳定,这里该项设为“n”。
3.2Networking options(网络选项)
1)Packet socket(CONFIG_PACKET):这里选择“y”,使一些应用程序使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。
2)Network firewalls(CONFIG_FIREWALL):这里选择“y”,使新内核支持防火墙。
3)TCP/IP networking(CONFIG_INET):这里选择“y”,使新内核支持TCP/IP协议。
4)The IPX protocol(CONFIG_IPX):这里选择“n”,即新内核不再支持IPX协议。
5)Appletalk DDP(CONFIG_ATALK):这里选择“n”,即新内核不再支持Appletalk DDP协议。
完成上述的配置后,便可退出存盘,接下来的工作就是内核的编译,具体的操作如下:
#cd/usr/src/linux-2.4.18
#make dep//读取配置文件,创建对应的依赖关系树
#make clean//删除前面步骤留下的文件
#make bzImage//生成一个新内核的映像文件bzImage
4Linux内核的切换
把上述操作产生的新内核文件System.map和vmlinuz复制到指定的目录中,并建立相关的链接后,就可以配置LILO,从而完成新内核的切换。具体的操作如下:
#cp/usr/src/linux-2.4.18/System.map/boot/System.map-2.4.18
#cp/usr/src/linux-2.4.18/arch/i386/bzImage/boot/vmlinuz-2.4.18
#cd/boot
rm-f System.map vmlinuz
#ln-s vmlinuz-2.4.18vmlinuz
#ln-s System.map-2.4.18System.map
配置LILO:
1)在/etc/lilo.conf文件中,添加如下内容:
image=/boot/vmlinuz-2.4.18
label=linux2.4.18
read-only
root=/dev/hda0
2)确认对/etc/lilo.conf的编辑无误,执行如下指令:
#/sbin/lilo–v
重启Linux系统,便可运行新版本(2.4.18)的内核。(下转第735页)