打造自己的专属linux(四):Linux内核编译过程简介

本文详细介绍了Linux内核3.0版本的编译流程,包括下载内核源码、配置编译参数、编译、安装模块、安装内核等步骤,并强调了编译内核的原则,如选择稳定版本、与硬件兼容性、服务器内核选择等。

linux在前不久刚发布了最新的3.0内核,在linux的学习中,了解内核的编译是一个必不可少的功课。前几天,学习了linux内核的编译流程,在此总结下,大家来一起学习。

以最新的3.0内核为例,我下载的是linux3.0.1 下载地址:http://www.kernel.org

前提条件:1.确定你的linux有装Development Tools ,Development Libraris,他们是实现编译的前提工具,如果没有请使用yum groupinstall安装

2.下载内核源码文件并拷贝进虚拟机里

内核编译的原则:1.编译时需要一个新版本,漏洞少一点
2.尽可能选择和自己硬件对应的驱动模块,兼容性好
3.服务器一般不用过新的内核,因为它没有发现一些bug,有可能不稳定

--------------------------------------------------------------------------------------------------------------------------

第一步:将您的内核文件复制到/usr/src/目录下,解压缩内核源码文件,以为的电脑为例

[root@server56 src]# ls busybox-1.18.5 linux linux-3.0.1.tar.bz2 [root@server56 src]# tar -xf linux-3.0.1.tar.bz2 # 解压缩过程比较长,耐心等待 [root@server56 src]# ls busybox-1.18.5 linux linux-3.0.1 # 这就是源待码文件目录

第二步:进入源代码目录,拷贝/boot/config-2.6.18-164.el5到源代码目录并改名为.config

[root@server56 src]# cd linux-3.0.1 [root@server56 linux-3.0.1]# cp /boot/config-2.6.18-164.el5 ./.config

## 这里需要做一个说明:由于我们是初次编译内核,而内核的选项多达上千条,所有我们以redhat官方提供的内核版本配置文件为蓝本,在它的基础上配置,保证内核的稳定性,而redhat内核的配置文件就是/boot/config-`uname-r` uname-r指的是当前系统的版本号,我的是2.6.18-164.el5,编译时,系统会将你的配置保存在.config文件中

第三步:输入make menuconfig 进去编译配置界面 (其实有很多中方式,这里只介绍一种常用的)

[root@server56 linux-3.0.1]# make menuconfig


可以看到,这里面有很多内核选项。里面的选项对应的翻译可以查看这个链接:http://lamp.linux.gov.cn/Linux/kernel_options.html

*号表示编译进内核, M表示编译成模块,按空格键选择 ,回车键进入选择分支,我们已经使用了.config文件,所以可以直接编译,当然你可以选择自己想要的功能。

作者:金步国,国内有名的linuxer,翻译过很多linux书籍

选择接受后按按下面的ESC,弹出的界面选yes保存



第四步:使用make命令编译内核 #!需要注意的是,这个过程相当漫长,大概需要几十分钟到一个多小时的时间,而且最好不要在终端内进行,任何断开连接都会造成编译失败,建议这一步在虚拟机控制台内进行

[root@server56 linux-3.0.1]# make

第五步:编译结束后,安装模块

[root@server56 linux-3.0.1]# makemake modules_install

第六步:安装内核,这一步会将内核信息写入到你的grub里,(可以手动编辑grub.conf文件去掉)你可以用现有的虚拟机体验新版本内核(前提不出错,内核出错会在启动时显示kernel panic!内核恐慌,可能是选择的模块没有对应的依赖关系,只能重新编译)

[root@server56 linux-3.0.1]# make install


在完成编译后,内核文件会存放在/boot目录下

[root@server56 boot]# ls System.map initrd-2.6.18-164.el5.img vmlinuz-2.6.18-164.el5 System.map-2.6.18-164.el5 initrd-2.6.28.10.img vmlinuz-2.6.28.10












linux内核编译详解 。。。。。 Linux 编译内核详解 内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和 网络系统,决定着系统的性能和稳定性。 Linux 的 一 个 重 要 的 特 点 就 是 其 源 代 码 的 公 开 性 , 所 有 的 内 核 源 程 序 都 可 以 在 /usr/src/linux 下找到,大部分应用软件也都是遵循 GPL 而设计的,你都可以获取相应的源程 序代码。 全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中, 由此引发的 一个明显的好处就是 Linux 修补漏洞的快速以及对最新软件技术的利用。 Linux内核则 而 是这些特点的最直接的代表。 想象一下, 拥有了内核的源程序对你来说意味着什么?首先, 我们可以了解系统是如何 工作的。通过通读源代码,我们就可以了解系统的工作原理,这在 Windows 下简直是天方 夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新 编译内核。在 Windows 下是什么情况呢?相信很多人都被越来越庞大的 Windows 整得莫名 其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当 于自己开发了一个操作系统, 但是大部分的工作已经做好了, 你所要做的就是要增加并实现 自己需要的功能。在 Windows 下,除非你是微软的核心技术人员,否则就不用痴心妄想了。 内核版本号 由于 Linux 的源程序是完全公开的, 任何人只要遵循 GPL, 就可以对内核加以修改并发 布给他人使用。Linux 的开发采用的是集市模型(bazaar,与 cathedral--教堂模型--对应) ,为 了确保这些无序的开发过程能够有序地进行, Linux 采用了双树系统。 一个树是稳定树 (stable ,另一个树是非稳定树(unstable tree)或者开发树(development tree) 。一些新特性、 tree) 实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树, 那么在开发树中经过测试以后, 在稳定树中将进行相同的改进。 一旦开发树经过了足够的发 展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式 为 x.y.z:对于稳定树来说,y 是偶数;对于开发树来说,y 比相应的稳定树大一(因此,是 奇数) 到目前为止, 。 稳定树的最高版本是 2.2.16, 最新发布的 Redhat7.0 所采用的就是 2.2.16 的内核;开发树的最新版本是 2.3.99。也许你已经发现和多网站上都有 2.4.0-test9-pre7 之类 的内核,但是这并不是正式版本。内核版本的更新可以访问 http://www.kernel.org/。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值