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