基于Linux系统的内核编译与升级研究
2016-02-25谢辉
谢辉
(闽北职业技术学院 信息与工程系 福建 南平 353000)
基于Linux系统的内核编译与升级研究
谢辉
(闽北职业技术学院 信息与工程系 福建 南平 353000)
Linux系统是一种多用户、多任务操作系统,在服务器领域应用十分普遍。它以其良好的可移植性、运行的稳定性、高度的可靠性越来越受到重视,Linux系统优异的表现,来源于内核功能的强大。Linux属于开源软件,所以内核代码是公开的,通过官网可以下载最新的内核安装文件,为用户升级Linux系统提供了保证。用户可以在不重装系统的条件下,通过命令,即可将内核升级到新的版本,保证系统始终拥有新的功能和特性。
Linux内核;开源;编译;升级
1. Linux系统简介
Linux是最著名的类UNIX开源操作系统,它诞生于1991年,由芬兰赫尔辛基大学的学生Linus Torvalds开发出最早的版本,并发布在互联网上。Linux诞生之初就加入了GNU计划,并遵循GPL许可,由全世界的程序员不断的开发和改进,如今,Linux已日臻完善,成为世界上主流的服务器操作系统之一,它以良好的结构和高度的稳定性,得到了广泛的应用。
2. Linux内核功能
Linux是一个真正的多用户多任务操作系统,并具有良好的兼容性、稳定性和强大的可移植性,这些功能都源于它的内核。目前非常流行的手机Android系统,就是建立在Linux内核之上。Linux内核是连接系统软、硬件的一个支撑平台。
Linux内核是系统的核心,管理着整个计算机系统的软、硬件资源,控制整个计算机的运行。Linux内核由各功能模块构成,包括:进程管理(Process Management)、内存管理(Memory Management)、模块管理(Module Management)、网络管理(Network Management)、中断管理(Interrupt Management)、虚拟文件系统接口(VFS Layer)、文件系统(File System)、设备驱动程序(Device Driver)、进程间通信(Inter-process Communication)、系统启动(System Init)等模块。Linux内核直接影响操作系统的性能,在新版本的内核发布后,及时升级系统内核,有利于提升系统的整体性能。
3. Linux的版本
Linux的版本有狭义和广义之分,狭义的版本专指Linux的内核版本号;广义的版本是指以内核版本为基础,包含各公司开发的应用程序和系统设定与管理工具的完整操作系统。如著名的Red Hat、Debian、Turbolinux、Ubuntu、红旗、中标麒麟等等。
不同的发行版,内核来源都是相同的,Linux的内核版本号早期采用带两位小数的数字表示,0.01是第一个版本,之后出现0.02一直到1.0版本。从1.0版本开始,采用A.B.C三段数字来表示,“A”代表主版本号,“B”代表次版本号(偶数代表正式版,奇数代表测试版),“C”代表末版本号。从2011年3.0版本之后,虽然采用的仍是A.B.C格式,但是所代表的含义有所变化,“B”没有奇偶数的区别,而是随着新版本的发布而增加,“C”代表一些Bug修复、安全更新、添加新特性和驱动的次数。
Linux的内核可以通过www.kernel.org官网下载,截止2015年9月26日,最新的内核稳定版为4.2.1,最新支持嵌入式系统的LTS版(长期支持版)为4.1.8。新的内核加入一些新的功能和特性,包括“实时内核补丁”特性,该特性可实时修补内核,而无需重启系统,提高了系统稳定性和工作效率,同时,改进系统图形支持,改良了CPU风扇控制,改进储存系统,集成了更多的硬件驱动。
4. Linux内核的升级与编译
Linux新内核的每次发布,都伴随着一些关键或重大的改进和新特性,因此,及时升级系统内核也变得十分必要。
4.1 Linux内核的升级
本次内核升级过程在Red Hat Linux Enterprise 5系统下进行。
4.1.1启动系统 启动Red Hat Linux Enterprise 5,进入桌面环境,打开终端程序,在命令行输入:
[root@bogon~]#uname -r
2.6.18-8.el5xen
显示内核版本号为2.6.18版,为较早期的版本,有必要进行内核升级。
4.1.2下载内核安装包文件 进入Linux内核官网(www.kernel.org),查找出最新的内核版本为4.2.1,由于本机版本较旧,为保证升级成功率,选择相近的3.8.7版进行升级,成功后,可再次升级到最新的4.2.1版本。输入wget命令,下载内核安装包文件:
[root@bogon~]#wget --no-check-certificate http://www.kernel.org
/pub/linux/kernel/v3.x/linux-3.8.7.tar.bz2
……
Saving to: ’linux-3.8.7.tar.bz2’
100%[========================================== ======>] 84,602,813
4.1.3解压安装包文件 将下载的文件解压到/usr/ src/kernels目录下,如无此目录需先创建,并用命令tar解压:
[root@bogon~]#mkdir /usr/src/kernels
[root@bogon~]#tar -xvf linux-3.8.7.tar.bz2 -C /usr/src/kernels
4.1.4安装或升级ncurses动态库 要执行make menuconfig命令,使用菜单配置内核,必须先安装或升级ncurses动态库,ncurses是一个能提供基于文本终端的图形互动功能动态库。可以通过系统自动升级ncurses库,前提是系统已经安装了yum程序,也可以下载ncurses的rpm安装包来手动安装。
用yum自动升级ncurses:
[root@bogon~]#yum install ncurses-devel
下载ncurses安装包手动安装:
[r o o t@b o g o n~ ]#r p m -i v h n c u r s e sdevel-6.0-1.20150810.fc24.x86_64
.rpm
安装成功后,还需要执行yum命令更新。
[root@bogon~]#yum update
4.1.5清理旧的内核升级文件 在升级新的内核文件之前,要删除之前编译所生成的文件、配置文件、备份文件等,用命令make mrporper实现。
[root@bogon~]#cd /usr/src/kernels/linux-3.8.7
[root@bogon~]#make mrporper
4.1.6通过菜单方式配置内核 [root@bogon~]#cd /usr/src/kernels/linux-3.8.7
[root@bogon~]#make menuconfig
当前面安装完ncurses动态库后,输入上述命令,窗口会出现文本交互菜单,在一些基本选项里输入“Y”确认,“N”放弃,“M”编译等选项,进行编译前的设置工作。
4.2 内核的编译
编译前的准备工作完成之后,接下来进入内核编译步骤。
4.2.1编 译 内 核 进 入/usr/src/kernels/ linux-3.8.7目录,执行make bzImage命令进行内核编译。
[root@bogon~]#make bzImage
命令执行成功后,会在/usr/src/linux/arch/i386/ boot目录下生成一个新内核的映像文件bzImage。
4.2.2编译内核模块 [root@bogon~]#make modules
4.2.3安装内核模块 [root@bogon~]#make modules_install
该过程一般需要花费半小时以上的时间。
4.2.4安装内核到系统 将编译好的新内核,安装到Linux系统中。
[root@bogon~]#make install
4.2.5启动选项的设置 Linux内核升级后,并没有将旧内核删除,因此在重启系统时,在GRUB菜单中会出现新、旧两个内核选项,通常新内核启动项位于第一行,旧内核启动项位于第二行,系统默认启动项为旧内核。此时,就需要通过修改开机菜单配置文件“/etc/grub. conf”,将默认启动选项设置为新内核,系统才会在启动之后,自动启用新内核。用vi命令打开配置文件。
[root@bogon~]#vi /etc/grub.conf
找到第一行的“default=0”参数项,将参数设为1,表示启动选项默认到第二行上,即系统启动时会自动加载新内核。
4.2.6验证新内核 重启系统之后,要看运行的是不是新内核,可以通过命令验证。
[root@bogon~]#uname -r
3.8.72-1.el6.i686
表示新内核已经安装完成,并开始工作。
5.结束语
Windows系统的内核与系统是合为一体的,要想升级操作系统,很多情况下需要重装系统,对服务器的管理和维护都不利;而Linux的内核与系统应用是既独立,又紧密相关的,可以在不需要重装系统的情况下进行内核的升级,有利于服务器的管理和维护。
首先,Linux内核版本相对于发行版来说是独立的,是由Linux的创始人Linus的团队负责研发,并单独发布;而基于Linux内核之上的系统应用,是由各公司独立开发,内核的开发与外部系统应用并不同步。
其次,内核版本与发行版本又是紧密相关的,Linux系统的新功能与特性,都依赖于内核,只有及时将系统内核升级,才能运用这些新功能,而且,可以不需要重装系统进行升级,给服务器管理带来了便利。
Linux系统对计算机硬件配置的要求十分低,部署了Linux系统的服务器可长时间稳定的运行,而且,在Linux内核4.0以后的版本,添加了“实时内核补丁”的特性,可以在服务器不重启的状态下,将内核更新,使系统达到最佳运行状态,这也是其它服务器操作系统目前不具备的。因此,及时将Linux内核进行编译升级,更有利于Linux服务器的稳定和管理效率的提高。
[1]曹江华.Linux常用命令手册[M].北京:电子工业出版社,2015.315-317.
[2]黄照鹤.Linux指令范例速查手册[M].北京:清华大学出版社,2014.432-434.
[3]赵炯.Linux内核完全剖析[M].北京:机械工业出版社,2006.405-407.
[4](美)索贝尔.Linux命令、编辑器与shell编程(第3版)[M].北京:清华大学出版社,2013.203-206.
[5]谢蓉.Linux基础及应用[M].北京:中国铁道出版社,2005.4-5.
TP3
A
1009-5624(2016)06-0021-03