linux重新编译内核
1.内容简介
linux内核简介
linux内核版本号
linux为什么重新编译内核
linux内核编译模式
linux内核功能划分
linux内核编译步骤2linux内核简介
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动、文件和网络系统,决定着系统的性能和稳定性。
3.内核版本号
确定内核版本uname -r
一个树是稳定树(stable tree)
一个树是非稳定树(unstable tree)或者开发树(development tree)
源程序版本号的形式为x.y.z
对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数),比如说2.5.18是正在开发的版本,2.6.18是已经可以用的版本了。 4.为什么重新编译内核
编译的原因
支持新安装的硬件设备:比如您刚买了一块新的声卡,但是当前的内核没有提供其驱动,而新版本内核可以驱动该声卡。
运行一个程序,但是操作系统不支持该程序需要的功能。
某个用户需要的内核功能。
用户希望对内核进行优化,自己定制编译的内核运行更快(具有更少的代码)。
内核升级(驱动、BUG、意愿、功能、安全、有时间进行升级)。
不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞。 为什么不编译
如果只是想给内核加上很少数量的功能的话,就没有必要进行编译
编译内核可能会遇到的困难:面对众多的选项 6.内核编译模式
如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。
如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。 7.linux内核功能划分
进程管理
内存管理
设备控制
网络功能
设备和模块分类
字符设备、块设备、网络接口
字符模块、块模块、网络模块 8.新版本内核的获取和更新
linux内核版本发布的官方网站是http://www.kernel.org
新版本的内核分两种,
一种是full Source版本,
一种是patch文件,即补丁 9.为内核源代码打补丁
内核经常需要小规模地升级。每次升级修复一个特定的bug,增加一个新的驱动程序或者功能,或者实现其他任务。
1) 下载主版本的源代码和升级到新版本需要的补丁的源代码。
2) 使用c d命令把路径切换到/usr/src目录。
3) 把下载的源代码和补丁都拷贝到这个目录中。
4) 进入内核源码包内,执行
bzcat ../patch-2.6.27 -p1