首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于发行版本内核打造自己的内核

基于发行版本内核打造自己的内核

作者头像
用户2772802
发布2018-08-06 11:17:33
7360
发布2018-08-06 11:17:33
举报
文章被收录于专栏:磨磨谈磨磨谈

Linux当中最核心的部分就是内核,这个也是最基础,最可能被忽视的一部分,随便找一个刚入职的运维,学习个两三天,网上找些资料也能能自己安装编译内核了,很多运维的初期培训就是做的这些学习,为什么在网上已经有这么多文章的情况下,还要写一篇关于内核的文章,这是因为,我想讲的是如何去选择内核 一般来说,找内核的时候都会去下面这个网站进行选择

https://www.kernel.org/

很多人在问我的时候,都会问,我该怎么去选择哪个版本的内核,一般来说我的回答是这样的

选取最后一个长期支持版本,或者最后一个稳定的版本

一般来说,选择这两个版本基本不会出太大的问题,并且即使有问题,后面做小版本的升级也不是很难的事情,当然这是基于你对自定义内核很有兴趣,或者需要自己去裁剪,增加一些东西的时候,用我上面说的两个版本都没有问题,下面是一个其他的选择

最近把linus的just for fun看完了,也基本上了解了linux大概的发展历程,linux走向成功也有一定的原因是围绕在其周围的一些商业公司,红帽是其中最成功的一个公司,当然还有其他各种发型版本,开源版本和商业版本的最大区别在于服务上面,商业公司能够提供专业的服务,开源并不意味着免费,其中很大一部分是学习成本,然后其次就是包装和推广了,最终才是一个完整的产品

开源有开源的规矩,当然这个规矩在中国不一定行得通,大部分公司不会将开源修改的东西回馈回去,而能够回馈回去的,基本都是技术非常领先的公司,这些公司核心在于自己的技术,以及对产品的把控,所以也就不介意源代码的开源了,并且乐意去引领行业的发展

当然这个对于红帽这样级别的公司,代码当然是会开源的,而其发行版本的内核,其实都是经过了一些修改的,并且这些修改也都是会开源出来的,只是大部分时候我们并没有去关注它,这就是本篇的重点

获取源代码

http://vault.centos.org/7.2.1511/os/Source/SPackages/ centos版本

红帽的内核源码之前托管在ftp上的,现在全部放到了订阅中心了,这里进入红帽订阅中心,进行rpm包的搜索,找到需要的部分,选择下载即可

https://access.redhat.com/downloads/content/kernel/3.10.0-514.el7/x86_64/fd431d51/package

这里我们是要选择的是源码包,因为可能需要自己加些内核模块进去 安装源码包

rpm -ivh kernel-3.10.0-514.el7.src.rpm

安装后默认会放到下面的目录下面,如果你有自定义的目录,也可以直接解压rpm,解压的方法是,下面命令默认会将文件解压到当前目录

rpm2cpio kernel-3.10.0-514.el7.src.rpm |cpio -div

检查文件

[root@lab8106 ~]# ll  /root/rpmbuild/SOURCES/
total 82804
-rwxr-xr-x 1 root root     3118 Oct 19 23:20 check-kabi
-rw-r--r-- 1 root root      150 Oct 19 23:20 cpupower.config
-rw-r--r-- 1 root root      294 Oct 19 23:20 cpupower.service
-rw-r--r-- 1 root root        0 Oct 19 23:20 extra_certificates
-rw-r--r-- 1 root root   121660 Oct 19 23:20 kernel-3.10.0-ppc64.config
-rw-r--r-- 1 root root   121951 Oct 19 23:20 kernel-3.10.0-ppc64-debug.config
-rw-r--r-- 1 root root   121229 Oct 19 23:20 kernel-3.10.0-ppc64le.config
-rw-r--r-- 1 root root   121531 Oct 19 23:20 kernel-3.10.0-ppc64le-debug.config
-rw-r--r-- 1 root root    58278 Oct 19 23:20 kernel-3.10.0-s390x.config
-rw-r--r-- 1 root root    57895 Oct 19 23:20 kernel-3.10.0-s390x-debug.config
-rw-r--r-- 1 root root    30834 Oct 19 23:20 kernel-3.10.0-s390x-kdump.config
-rw-r--r-- 1 root root   137690 Oct 19 23:20 kernel-3.10.0-x86_64.config
-rw-r--r-- 1 root root   137991 Oct 19 23:20 kernel-3.10.0-x86_64-debug.config
-rw-rw-r-- 1 root root     8582 Oct 19 22:19 kernel-abi-whitelists-514.tar.bz2
-rw-rw-r-- 1 root root 83660860 Oct 19 22:19 linux-3.10.0-514.el7.tar.xz
-rw-r--r-- 1 root root        0 Oct 19 23:20 linux-kernel-test.patch
-rw-r--r-- 1 root root     1757 Oct 19 23:20 Makefile.common
-rw-r--r-- 1 root root    34277 Oct 19 23:20 Module.kabi_ppc64
-rw-r--r-- 1 root root    34277 Oct 19 23:20 Module.kabi_ppc64le
-rw-r--r-- 1 root root    31748 Oct 19 23:20 Module.kabi_s390x
-rw-r--r-- 1 root root    36881 Oct 19 23:20 Module.kabi_x86_64
-rw-r--r-- 1 root root     1198 Oct 19 23:20 rheldup3.x509
-rw-r--r-- 1 root root     1176 Oct 19 23:20 rhelkpatch1.x509
-rw-r--r-- 1 root root      977 Oct 19 23:20 securebootca.cer
-rw-r--r-- 1 root root      899 Oct 19 23:20 secureboot.cer
-rwxr-xr-x 1 root root      507 Oct 19 23:20 sign-modules
-rw-r--r-- 1 root root      361 Oct 19 23:20 x509.genkey

打包内核

如果需要修改默认的内核选项,就修改这个文件

vim /root/rpmbuild/SOURCES/kernel-3.10.0-x86_64.config

然后开始编译内核rpm包

rpmbuild -ba /root/rpmbuild/SPECS/kernel.spec

然后内核包就生成了,在下面目录当中取rpm包即可

/root/rpmbuild/RPMS/x86_64/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 磨磨谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取源代码
  • 打包内核
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档