一:前言
1:内核的概念:
Kernel(内核)是操作系统的核心,掌控着所有硬件设备的控制权。计算机所要完成的各项工作,都需要通过内核的帮助才能完成。内核就是系统上的一个文件,这个文件包含了驱动主机各项硬件的检测程序与驱动模块。
2:什么叫做编译?
如果想要完成的某个功能是内核没有提供的,那我们就无法通过内核来控制计算机完成这项工作。如果我们想让内核去完成这个功能,那就必须将这个模块“添加”到内核中,这就类似于“驱动程序”,有了这样一个“驱动程序的支持后,硬件(CPU、网卡等)”才能去完成之前不能完成的功能。这里的模块“添加”的过程就叫做编译。
3:内核模块
内核模块的存放位置为/lib/modules/$(uname -r)/kernel,所有以.ko结尾的文件都是模块文件;其中uname -r为当前系统内核版本信息。
二:编译前准备(以Centos6.9为例)
1:安装开发包组
# yun groupinstall Development tools`
2:下载内核源码及解压
#cd /usr/src
# tar -xvf linux-3.18.56.tar.xz
查看解压出来的文件夹
3:准备配置文件
# cd /usr/src/
# cp /boot/config-2.6.32-696.el6.x86_64 ./linux-3.18.56/
# grep NTFS ./linux-3.18.56/config-2.6.32-696.el6.x86_64
显示结果为# CONFIG_NTFS_FS is not set
注:从boot下拷贝一个config文件主要是为了方便,这个文件里保存的是之前在安装系统时内核做安装的模块。这里拷贝过来主要是为了方便演示