浅析linux内核编译及相关模块加载
原创junwei_7702 博主文章分类:LINUX系统渗透篇 ©著作权
文章分类 运维
©著作权归作者所有:来自51CTO博客作者junwei_7702的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、概述:我们知道linux系统启动中必须要加载内核并加载其内核模块,那么内核的功能是什么呢,其实内核的功能主要包括进程调度、内存管理、文件系统、硬件驱动、网络功能、安全、提供缓冲和缓存加速系统性能。
内核的设计模式分为两种,分别为微内核模式和单内核模式,它们的区别在于微内核的内核当中只保留最核心的功能,而其它应该由内核实现的功能被实现在子系统中完成,这些子系统需要在核心系统的协调下完成;单内核是把所有的功能统统做进内核。究竟linux的内核模式是哪种呢,可能很多朋友会认为是微内核模式,其实不然,linux内核模式恰恰是单内核模式的,这里linux内核做了精巧的设计,采用了微内核的设计思想,保留了单内核的架构把许多功能做成了内核模块(对象)(ko:kernel object),这样就减小了内核的大小,接下来我将会详细讲解一下linux内核编译的方法和步骤。
linux内核官方网站(www.kernel.org)上有官方发布的最新版本的内核,如下:
内核的源代码编译一般在/usr/src/目录中,并在该目录中创建linux链接文件指向源码目录,下载完最新版本的内核后要对其进行解压,然后对内核进行配置,配置内核的命令有一下几种:
make config 遍历式的,如果有5000项的话,都要被问个遍,这样的话会很麻烦;
make menuconfig 打开一个文本图形界面进入功能界面,使用上下箭头会很方便的进
行选择;
make gconfig 需要安装genoo的GTK图形开发环境;
make kconfig 需要安装KDE的QT开发环境;
make defconfig 表示一切都是默认的;
make allyesconfig 测试用的;
make allnoconfig 测试用的;
其中比较常用的是前三种,编辑完后会提示保存,一般保存在/usr/src/linux目录下的.config的隐藏文件中;
然后执行以下命令开始编译内核:
make ---->开始编译;
make modules_install ---->开始编译模块;
make install ---->安装内核;
等编译完后我们要重启系统并选择新内核就可以了,其实步骤很简单,就是编译需要一点时间而已,下面具体演示一下步骤,这里以已经下载好的linux-2.6.28.10版本的内核为例:1、检查系统是否安装相应的开发环境;
4、make menuconfig 打开一个文本图形界面进入功能界面,选择需要装载的功能模块;
(1)解释一下文本图形界面中的各功能模块的意义:
(2)内核的功能模块选项有以下几种:
* 表示直接做进内核;
M 表示做成模块;
空白 表示不使用此功能;
(4)功能模块选择好后保存退出会保存在linux目录下的.config隐藏文件中;
其实我们自己对文本图形界面的功能进行设置后很可能会导致内核启动不起来,因为这些工作都是很专业人士才能完成的工作,所以我们将红帽官方给的样例复制到当前目录下的.config文件中,然后在其基础上进行修改;
接着进入下面子选项;
配置网卡驱动,选择Device Drivers-->Network device support-->Ethernet (10 or 100Mbit)下的AMD PCnet32 PCI support并将其选为直接编译进内核,让其在内核初始化后直接加载进来,这样就只能为自己所用了:
其它的任何选项可以根据自己需要选择,上面的网卡驱动配置好后保存退出,下面
5、开始对内核进行编译;
make ---->开始编译;
make modules_install ---->开始编译模块;
make install ---->安装内核;
6、执行make modules_install ---->开始编译模块;
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
内核编译及模块相关命令使用
本文讲解了怎样进行内核编译及模块相关命令的使用方法。
linux oracle 配置文件 vim 加载