这篇文章主要讲解了“linux编译内核的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux编译内核的原因是什么”吧! 原因:新的内核修订了旧内核的bug,并增加了许多新的特性;如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:(1)自己定制编译的内核运行更快(具有更少的代码)(2)系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)(3)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞(4) 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些这类编译的目的主要是通过编译来了解Linux内核编译的过程,熟悉内核的工作原理,甚至还可以尝试进行一些修改。
编译只是将源码编译成程序,不会替换当前的系统,也不会影响当前系统的运行。编译内核可能是出于某种需求,比如对内核大小有要求,去掉内核中某些用不到的部分,这种场景往往是嵌入式系统。
或者自己修改了某部分内核代码,需要编译后验证功能。模块编译时将某些功能模块编译成 .ko 可以在不重新编译内核的情况下,insmod xxx.ko 到系统中使用编写的代码功能。
编译内核后不会替换当前内核,编译后的新内核往往在类似下面的目录下,名字大都是 bzImage
/usr/src/kernels/3.xx.x-.x86_64/arch/x86/boot/
然后可以编辑系统的 grub list 添加最新的内核来用它新内核集成了新驱动,比如Intel核显: /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915/i915.ko一个系统可以安装多个内核,比如启动文件,新内核不会覆盖旧内核:
/boot/vmlinuz-VERSION /boot/initrd.img-VERSION
安装新内核过程中,一些内核模块需要重新编译,比如VirtualBox:
/lib/modules/`uname-r`/updates/dkms/vboxdrv.ko
如果新内核运行不正常,可以在开机GRUB引导里选择旧内核启动。也可以这样改回原来使用的内核:
ln-sf/boot/vmlinuz-VERSION/vmlinuz ln-sf/boot/initrd.img-VERSION/initrd.img
其中VERSION是原来内核的版本。整个内核编译的过程非常简单,但是内核编译需要花费比较长的时间。这主要是因为内核的代码非常多。当然,如果你的计算机性能强劲,时间会短很多。另外需要注意的是,建议在虚拟机环境下编译,这样避免错误导致系统问题。如果在虚拟机测试,建议系统分区和内核源代码分区的大小大于20GB。Step 1: 下载源代码1、 进入Linux 内核的官网,下载最新版本,或者其它版本的内核代码。这里是源代码的压缩包。2、假设我们现在在一个Linux操作系统中,在命令行输入如下命令就可以下载内核了。
wget链接(由于链接会被认为是广告,本文省略链接,请自行复制)
在下载的过程中可以看到下载进度,下载完成后信息大致如下所示。Step 2: 免费云主机、域名解压源代码压缩包下载完成后,可以通过tar命令解压。
tarxvflinux-5.9.6.tar.xz
在解压的时候可以看到文件列表,这个会很多,可能需要等一会儿。Step 3: 安装需要的软件包安装编译工具以及其它一下依赖的软件包,在Ubuntu 18.04环境下执行如下命令。
sudoapt-getinstallgitfakerootbuild-essentialncurses-devxz-utilslibssl-devbcflexlibelf-devbison
如果一切顺利,大概安装输出信息如下所示。Step 4: 配置内核代码在编译内核之前,我们可以对内核源代码进行配置。配置的目的主要是确定哪些模块会编译到内核当中。1. 进入源代码目录
cdlinux-5.9.6
2. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。
cp-v/boot/config-$(uname-r).config
3. 可以通过如下命令启动配置界面
makemenuconfig
该命令会运行一些脚本,然后打开一个配置界面4. 下面是打开的配置界面。可以看出里面包含所有的内核组件,包括文件系统,网络,IO栈,虚拟化和设备驱动等等。如果你不熟悉,可以不做任何修改。Step 5: 编译内核1. 通过如下命令就可以编译内核了
make-j10
上面参数是并发数量,通常可以是CPU的2倍。2. 安装模块
sudomakemodules_install
3. 安装内核
sudomakeinstall
安装完成后会有如下提示信息。Step 6: 重启,验证版本当上述步骤都没有出错的情况下,我们重启一下计算机,然后运行如下命令。
uname-mrs
此时就可以看到内核版本已经是我们编译的版本了。结论通过上面几步,我们可以很简单的编译一个内核。如果后面开发内核模块,也是要基于内核代码树的,因此这个是内核开发的基础。可能遇到的问题编译内核的时候可能会遇到这个问题:没有规则可制作目标
debian/certs/debian-uefi-certs.pem,由certs/x509_certificate_list需求停止在要编译的内核目录下编辑一下配置文件即可。简单的方式是执行如下命令
vim.config
然后找到
CONFIG_SYSTEM_TRUSTED_KEYS,将其设置为空,也就是下面这个样子。
CONFIG_SYSTEM_TRUSTED_KEYS=”
感谢各位的阅读,以上就是“linux编译内核的原因是什么”的内容了,经过本文的学习后,相信大家对linux编译内核的原因是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇文章主要介绍了cdr渐变工具免费云主机、域名怎么查找的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇cdr渐变工具怎么查找文章都会有所收获,下面我们一起来看看吧。 cdr渐变工具在“左侧工具栏”中,其查找方法:1、启动Corel…