Linux下编译升级内核

原创 2013年12月03日 18:26:45

一、介绍: 什么是linux内核

Linux内核是Linux操作系统的核心,主要包括文件系统模块、内存管理模块、进程管理模块、进程间通信模块和网络接口模块5大模块。

1、文件系统模块:主要负责文件系统的管理,在Linux2.6内核支持ext2、ext3、ext4、gfs、及网络文件系统nfs、cifs等。

2、内存管理模块:主要负责无聊内存和虚拟内存的资源分配。 

3、进程管理模块:主要负责进程的资源分配协调管理。 

4、进程间通信模块:主要负责协调进程之间的资源分配关系和进程资源的竞争分配。 

5、网络接口模块:主要负责对系统进行远程管理。

 

二、为什么要升级内核 ?

        顾名思义,Linux的内核承担着Linux操作系统的最为核心的任务,是其它程序和硬件等运行过程中的仲裁者:它要管理所有进程的内存,保证它们都能平等得到处理器的时隙。此外,它还提供程序和硬件之间的接口等功能。 

通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。 

一般,内核的版本序列号使用三个数字表示,如2.2.14,版本号越高表示功能越强。版本号分为两个系列:一种是产品系列,以偶数命名,例如,1.2.x、2.0.x、2.2.x等,运行稳定,已经经过较为周密的测试;另外一种是开发测试系列,以奇数命名,用以进行最新功能的测试,不建议初学者和生产过程中使用。

 

三、升级linux内核前的准备工作

1、查看当前系统内核版本

[root@localhost ~]# uname -a
Linux localhost 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux

 

新版本的内核分两种:

  • 1、一种是full Source版本,完整的内核版本比较大,一般是 tar.gz或者是.bz2文件,
  • 2、一种是patch文件,即补丁, patch文件则比较小,一般只有几十K到几百K,但是patch文件,是针对于特定的版本的,你需要找到自己对应的版本才能使用。

内核升级所需依赖包

在进行内核升级或定制内核时,Linux系统需要事先安装GCC编译工具、ID连接器和make编译器(一般情况下,我都是在装Linux系统的时候把所有的开发工具、系统工具和管理员工具都装上了,以免后期需要单独安装某个包的时候还有其它的各种依赖性安装,这样比较省事......反正如果不在乎那么一点硬盘空间的话,建议就这样搞准没错-.-)

 

 

2、下载Linux2.6内核源码文件

内核源码文件可以去http://www.kernel.org/ 这个网站下载,里面有很多版本的(包括稳定版和开发版)源码文件,我这里下载的是linux-2.6.36.tar.bz2

 

 

3、内核的编译安装

[root@localhost ~]#tar jxvf linux-2.6.36.tar.bz2 -C /usr/src/     //解压到该目录/usr/src/

[root@localhost ~]#cd /usr/src/linux-2.6.36/  #进入目录

[root@localhost linux-2.6.36]#make mrproper     //去除内核的依赖关系以及编译后的垃圾信息

 [root@localhost linux-2.6.36]# make menuconfig   //进入菜单方式界面配置内核

 通过界面可以清楚看到按上下键选择指定菜单,通过回车键可以进入带有箭头→的下一级子目录,通过Y键可将选项编译到内核,按N键将不选择选项,即既不把选项编译到内核也不编译成模块,M键可将选项编译成模块,按两次Esc键可退出到上一级,按?键可查看指定选项的帮助文档,按/键可搜索指定选项的位置以及路径,如下:

需要勾选上General Setup下面的 “enable deprecated sysfs features to support old userspace tools”,不然编译安装之后会找不到原来的挂载点。

[root@localhost linux-2.6.36]#make;make modules;make modules_install;make install    //分别是编译内核、编译模块、安装模块、安装内核,注意是在linux-2.6.36/这目录下编译。

修改引导启动管理器的配置文件

[root@localhost linux-2.6.36]#cat /boot/grub/grub.conf 

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$bPWSBsNd$0uoEJVJ3aM/IC3qT4aEbU.
title CentOS (2.6.36)
        root (hd0,0)
        kernel /vmlinuz-2.6.36 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.36.img
title CentOS (2.6.18-194.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-194.el5.img

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

ps:其实不需要进行修改,内核升级好之后会自动在grub.conf文件中加入上门红色的配置。重启电脑就可以选择需要启动的内核,如果不需要旧的内核可以在grub.conf配置文件中将旧内核的参数注释掉即可。

 

升级完内核之后,重新进入到系统中运行uname -a命令就可以查看到升级后的Linux内核版本了,如下图所示:

 

 

手动编译ubuntu内核并升级内核

内核编译:(部分摘录自http://forum.ubuntu.org.cn/viewtopic.php?t=134404) 1.到http://www.kernel.org下载需要编译的内核源码文件...
  • cupidove
  • cupidove
  • 2016年12月15日 16:17
  • 2437

linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )

花了一天的时间,终于把ubuntu12.04 的linux内核版本从3.13.0升级到3.4.0 升级后,系统更加稳定.具体步骤:# wget http://www.kernel.org/pub/li...
  • mao0514
  • mao0514
  • 2015年11月08日 16:44
  • 2468

centos6.5升级内核到3.10

升级系统内核
  • wangdaoge
  • wangdaoge
  • 2016年09月22日 11:25
  • 2298

CentOS Linux 升级内核步骤和方法

  • 2013年01月14日 10:07
  • 2KB
  • 下载

centos6.5-(docker)升级内核linux.part4.rar

  • 2015年10月01日 22:16
  • 10MB
  • 下载

Linux升级内核版本

  • 2013年11月21日 13:16
  • 33KB
  • 下载

linux升级内核笔记

  • 2008年02月02日 13:08
  • 98KB
  • 下载

centos6.5-(docker)升级内核linux.part2.rar

  • 2015年10月01日 18:08
  • 10MB
  • 下载

CentOS Linux 升级内核步骤和方法

当前系统为CentOS Linux release 6.0 (Final),内核版本为2.6.32-71.el6.i686.由于最近内核出现最新的漏洞(linux kernel 又爆内存提权漏洞,...
  • S100400507
  • S100400507
  • 2015年02月04日 11:29
  • 300

Linux系统(Ubuntu)升级内核的笔记

第一步: 到linux kernel官网下载内核,目前我的系统是Ubuntu14.04,这里我选择最新最稳定的4.0.4版本(截止2015/5/25) 第二步:   最近版本的内核改成tar...
  • sinat_28494049
  • sinat_28494049
  • 2015年05月26日 14:27
  • 361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下编译升级内核
举报原因:
原因补充:

(最多只允许输入30个字)