Linux升级和编译内核

最近几年linux内核推陈出新,版本迭代的速度明显加快了很多,由于linux之父对内核版本号的设定的改革,版本号不会再像2.4和2.6时代,很久时间主版本号都不会变动了。给人的感觉就是版本更替的速度加快了很多,除此之外,也会提高关于linux内核的关注度,随着linux的发展壮大,应用越来越普遍,linux内核在业界的影响也越来越重要。

升级和修改内核是一个比较有意思,也有一定风险的操作,但个人认为了解一下还是很有必要的,记得比较早的一些书籍里说:“为什么要升级内核,因为我能”。呵呵,姑且一笑而过吧。升级内核可以支持新的硬件,修复旧版本内核中存在的bug,添加新的功能,对于服务器运维来说,最重要的意义就是bug的修复,尤其是安全相关的bug。

这里有必要再提示一下,如果是生产环境一定要选择stable的版本,稳定性对于生产环境来说是至关重要的,一定要谨记,不要因为升级内核把系统搞挂了,那就出事故了,一定要小心,升级内核是有风险的,有一定的概率会导致系统无法启动,所以,在远程维护的环境下,最好有一个在系统无法启动时,仍可以连接到系统进行维护的途径,否则,问题可能就比较严重了。

这些都没有问题了,你才可以在生产环境上进行升级内核的操作,否则,还是要冒很大的风险的。

linux下编译和升级内核也不是很困难,步骤也没有很多,关键就是出现了无法继续的情况如何处理的问题。现在就开始我们的内核编译升级之旅吧:首先,去www.kernel.org下载最新的内核,注意一定要是stable的,除非你是个内核行家,否则还是老实一点;然后,就是解压下载回来的内核;再后,就是编译了,这个时候,系统需要先部署编译所依赖的软件包,在执行make menuconfig的时候,系统会提示有哪些软件包或命令缺失,仔细阅读提示,是很有必要的,有时,能理解这些提示,就能解决问题,大都是一些命令或文件缺失的提示,如果是命令缺失,安装即可,如果是文件缺失,则要视情况而定,是修改.config文件,还是创建缺失的文件。解决了这些问题后。执行make -j8或者make bzImage -j8来编译所有内容或者只编译内核部分,如果你是使用的make bzImage,后续还需要执行make modules -j8和make modules_install && make install。最后,重启系统,就能使用刚刚编译好的内核引导系统了。

编译升级内核的关键部分都在前期的准备阶段,比如make menuconfig中对内核选项的进行比较合理的配置,是需要对这些选项有些许的了解的,进入linux内核的源码目录,会发现这个目录包含的文件和文件夹是非常多的,但都井然有序的按照一定的规则进行了存放,不会让人感觉到很杂乱,如果有兴趣的话,去每个文件夹下面看一看,我们会发现这些文件的安排也都有一定的规律,这给后面程序化的配置和编译都提供了极大的方便,学编程的同学也可以参考一下。

linux内核源码基本都是C语言源码,如果,喜欢看C的源码,也可以来参考一下,但通读已经很难了,不妨找几个函数看看,关键是要学习一下内核里面代码实现的思想和解决问题的思路,这个才是编码含金量最大的地方。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值