序言
Linux内核的容积结构是单内核的、但是他充分采用了微内核的设计思想、使得即便是单内核、但工作在模块化的形式下、并且这个模块可以动态装载或卸载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网路系统,决定着系统的性能和稳定性。如是我们在了解Linux内核的基础上依照自己的需要、量身定做一个更高效,更稳定的内核,就须要我们自动去编译和配置内核里的各项相关的参数和信息了。
注意、如果两个内核模块的版本不完全相同是不可以跨版本使用的。
正文
首先我们要去获得Linux内核的压缩文件、获得的路径好多了、最直接的就是去内核官网获得了(),也可以到各镜像站起来下载、这里就不再说明了。
注意:/usr/src;通常而言、我们制作linux内核的时侯源码通常置于这个路径下、并且有一个链接叫linux哪些的、所以展开时应当置于这个路径下。
我这儿下载有一个3.13.2版本的内核、展开时指定一个展开路径就可以了,文件比较大、70多M、可能须要点时间的。
#tarxflinux-3.13.2.tar.xz-C/usr/src/
展开以后在/usr/src/这个目录下就听到了生成一个linux-3.13.2的文件了
为之后使用便捷、我们给他创建一个链接:
#ln-svlinux-3.13.2linux
我们cd到linux目录上面看一下上面的文件看:
#cd/usr/src/linux
上面的目录我这儿就不一一介绍了、有兴趣的同学可以去了解一下哦。
到下一步就是去配置内核了、这步配置内核的方式有多种、每一个make就是一种方式、我们只在选一种就可以了:
makeconfig:遍历选择所要编译的内核
makeallyesconfig:配置所有可编译的内核特点
makeallnoconfig:并不是所有的都不编译linux查看当前版本,而是能选的都回答为NO、只有必须的都选择为yes。
makemenuconfig:这些就是打开一个文件窗口选择菜单,这个命令须要打开的窗口小于80字符的长度,打开后就可以在上面选择要编译的项了
下边两个是可以用键盘点选择的、比较便捷哦:
makekconfig(KDE桌面环境下,但是安装了qt开发环境)
makegconfig(Gnome桌面环境,而且安装gtk开发环境)
menuconfig:使用这个命令的话、如果是新安装的系统就要安装gcc和ncurses-devel这两个包才可以打开、然后再上面选择就可以了、通这个方式也是用得比较多的:
假如想便捷点又不想用别的方式那就复制当前系统上的/boot/config-版本-平台,这个文件到/usr/src/linux/.config覆盖这个文件,再改一下上面的配置信息;什么用得着就保留、哪些用不着就删掉了都可以、有哪些新的也可以加进来、这就是按自己的需求来配置了;
注意:假如编译是在远程联接上的话、make会出问题的、如果远程联接断掉的话那运行的进程是不是也都断掉了、这个make的进程一定是当前系统上运行的子进程、有些一旦父进程挂了、子进程也将不复存在、俗话说:皮之不存毛将焉附,是这个道理吧;
所以我们使用一个叫screen这个命令来操作,没安装自己安装上就是了、可以在一个窗口上启动n个虚拟的桌面,虽然退出了也会保留之前的内容,切换进screen就可以看见窗口标题栏上的screen标志了:
#screen-ls:可以查看当前启用了多少个screen
按Ctrl+alinux查看当前版本,握住再按d可以隐藏screen桌面
由于编译内核须要比较长的时间、所以我们在screen上编译、然后再把screen桌面隐藏就可以了;
重新接入screen:
#screen-r跟上screenID就可以了
之后我们就开始编译吧;(我这儿编译差不多用了两小时、make的时侯我不指定cpu的核心数、默认就是用一个核来编译、所以许久)
#make
编译好了以后我们就可以进行下一步了:
#makemodules_install
这步完了以后你可以查看一下/lib/modules/目录下才会生成一个以版本号命名的一个文件模块了
modules以后再往下走、敲命令吧
#makeinstall
安装完以后会在/boot/目录下生成一个内核文件vmlinuz-3.13.2、还有几个跟你当前编译的版本一样的文件、可以ls去看一下:
#ls/boot/
假如没出哪些问题到这儿我们应当算是编译好了一个新内核了;可以到grub.conf配置文件时看一下:
#vim/boot/grub/grub.conf
好了、要不我们重启一下瞧瞧、OK、重启吧!假如顺利的话就可以进到内核选择界面了,选项我们编译的新内核就OK了,好了、到这就结束了!
总结一下我们的安装步骤:
1、获取内核源码,解压至/usr/src
#tarxflinux-3.13.5.tar.xz-C/usr/src
#ln-sv/usr/src/linux-3.13.5/usr/src/linux
2、配置内核特点(选择一种方式就可以了)
makeconfig:遍历选择所要编译的内核特点
makeallyesconfig:配置所有可编译的内核特点
makeallnoconfig:并不是所有的都不编译
makemenuconfig:这些就是打开一个文件窗口选择菜单
makekconfig(KDE桌面环境下,但是安装了qt开发环境)
makegconfig(Gnome桌面环境linux操作系统教程,而且安装gtk开发环境)
3、编译内核
#make[-j#]:#号最多为CPU化学核心总量的两倍常用linux系统,这样会赶快哦
4、安装内核模块
#makemodules_install
5、安装内核
#makeinstall
6、验正并测试
#cat/boot/grub/grub.conf
查看新内核是否早已添加,而后重启系统并测试
结束:
虽然编译一个新的内核似乎也不是很难是吧、跟我们之前源码编译的httpd的步骤差不多、也就是第一步麻烦点、细心点就OK了,其实假如有哪些不对的地方还望各路诸候多多提点!