一、实验目的
学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。
二、实验内容
1.通过各类手段获取虚拟机软件VmwareWorkstation(或其他虚拟化软件,例如VirtualBox),并安装在自己的机器上(64位)
2.通过各类手段获取CentOS-6.5-64位ISO镜像文件,并在Vmware Workstation里安装CentOS
3.在www.kernel.org文件里获取最新的稳定版(stable)Linux内核源码包,并在CentOS-6.5虚拟机里解压、编译、安装成功
4. 记录内核编译所消耗的时间,例如: $:time(空格)make
三、实验仪器设备
Linux环境:CentOS_6.5,内核2.6.32
待编译的内核:Linux3.16.3
四、实验步骤
1.安装Vmware Workstation 10版本。(略)
2.获取CentOS-6.5-64位ISO镜像文件,并在Vmware Workstation里安装CentOS。(略)
3.下载最新版内核包。当前最新版的稳定内核包为3.16.3。
4. 解压、编译、安装内核。
(1).打开终端,更改用户权限为root。具体做法是在终端输入 su root,然后按提示输入密码,若输出为root则已经切换到root账户。(若已经为root可忽略次步骤)。
(2).进入待解压内核所在位置,输入命令
# tar -Jxvf linux-3.16.3.tar.xz -C /usr/src/kernels/ 把文件解压到 /usr/src/kernels/ 中。
# cd /usr/src/kernels/linux-3.16.3/ 进入目录
(3).配置内核
#yum install gcc gcc-c++ glibc-static –y 安装gcc,若已经安装,可以跳过。
#make mrproper makemrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件。(如果是第一次编译内核,并没有上次的残留文件可以跳过。)
# yum install ncurses-devel.x86_64 –y 安装ncurses,若已经安装可以跳过。
# make menuconfig 开始挑选内核功能。 具体选项的作用参考考 《Linux-3.10-x86_64 内核配置选项简介 》 对新的内核功能选择,按Save保存,并生成一个 .config 的文件,按Exit退出。
(4).编译内核
# make 和 # make modules_install
注意:2.6内核作了优化,不必显示的执行make dep 和make bzImage,只需要直接执行,只要make 就行,系统会自动完成make dep 和 make bzImage 所做的工作。为了方便查看编译内核所需要花费的时间,采用命令#time make 记录时间如下:
(5).安装内核
# make install
(6).重启机器,查看效果
可见存在CentOs(3.16.3)内核,点击进入,打开终端,输入命令
# uname –r 查看是否编译成功
一、实验问题
1. 虚拟机(也即Vmware Workstation之类软件)有什么用?
拟机软件可以在一台电脑上模拟出来若干台PC,每台PC可以运行单独的操作系统而互不干扰,可以实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成一个网络。
2. 有什么办法可以在多核环境下加速内核编译的过程?
要加速内核编译的过程,关键在于挑选内核的功能,“肯定”内核一定要的功能,直接编译进内核内;可能在将来会用到的功能,那么尽量编译成为模块。总之,尽量保持内核小而美,剩下的功能就编译成模块,尤其是需要考虑到将来扩展性。