本文主要讲解“linux编译内核的原因是什么?”本文的解释简单明了,易学易懂。请按照主机频道的思路,研究学习“linux编译内核的原因是什么?”!
原因:新内核修改了老内核的bug,增加了很多新特性。如果用户想使用这些新特性,或者根据自己的系统定制一个更高效、更稳定的内核,就需要重新编译Linux内核。通常更新后的内核会支持更多的硬件,有更好的进程管理能力,运行更快更稳定,一般会修复旧版本中发现的很多漏洞等。经常选择更新的系统内核是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列表,添加最新的内核来使用。
新内核集成了新的驱动程序,比如Intel Kernel Display:/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/vbox drv . ko
如果新内核不能正常工作,您可以选择旧内核在引导GRUB中启动。
你也可以像这样变回原来的内核:
ln-SF/boot/vmlinuz-VERSION/vmlinuz
ln-SF/boot/initrd . img-VERSION/initrd . img
其中VERSION是原始内核的版本。
编译一个Linux内核内核编译的整个过程非常简单,但是编译内核需要很长时间。这主要是因为内核有很多代码。当然,如果你的电脑性能很强,时间会短很多。另外,需要注意的是,建议在虚拟机环境下编译,以免错误导致系统问题。如果在虚拟机中测试,建议系统分区和内核源代码分区的大小大于20GB。
步骤1:下载源代码
1.去Linux内核官网下载最新版本或者其他版本的内核代码。下面是源代码的压缩包。
2.假设我们现在在一个Linux操作系统中,我们可以通过在命令行输入下面的命令来下载内核。
Wget链接(因为链接会被认为是广告,本文省略链接,请自行复制)
在下载的过程中,可以看到下载进度,下载后的信息大致如下。
步骤2:解压缩源代码
压缩包下载后,可以用tar命令解压。
tar xvf linux-5.9.6.tar.xz
解压时可以看到文件列表。这个会很多,可能需要一段时间。
步骤3:安装所需的软件包
安装编译工具和其他依赖软件包,并在Ubuntu 18.04环境下执行以下命令。
sudo apt-get install git fake root build-essential ncurses-dev xz-utils libssl-dev BC flex libelf-dev bison
如果一切顺利,大概安装输出信息如下。
步骤4:配置内核代码
我们可以在编译内核之前配置内核源代码。配置的主要目的是确定哪些模块将被编译到内核中。
1.输入源代码目录
cd linux-5.9.6
2.将配置信息从当前计算机的启动目录复制到源代码目录。这个操作意味着我们编译的内核的配置与当前环境一致。
cp -v /boot/config-$(uname -r)。配置
3.您可以通过以下命令启动配置界面。
制作菜单配置
这个命令将运行一些脚本,然后打开一个配置界面。
14.以下是开放的配置界面。可以看到它包含了所有的内核组件,包括文件系统、网络、IO栈、虚拟化和设备驱动。如果不熟悉的话,可以不做任何改动。
1步骤5:编译内核
1.您可以通过以下命令编译内核。
国产歼10
上面的参数是并发数,通常可以是CPU的两倍。
12.安装模块
sudo制作模块_安装
13.安装内核
sudo make安装
安装完成后,会有以下提示信息。
1步骤6:重启并验证版本。
当上述步骤没有错误时,让我们重新启动计算机,然后运行以下命令。
乌梅夫人
此时,您可以看到内核版本已经是我们的编译版本。
2结论
通过以上步骤,我们可以简单的编译一个内核。如果后来开发内核模块,也是基于内核代码树,所以这是内核开发的基础。
可能的问题
在编译内核时,您可能会遇到这个问题:
没有规则使目标debian/certs/debian-uefi-certs . PEM被certs/x509_certificate_list的要求停止。
只需编辑要编译的内核目录中的配置文件。简单的方法是执行下面的命令。
维姆。配置
然后找到CONFIG_SYSTEM_TRUSTED_KEYS,设置为空,就是这样。
配置系统可信密钥= "
评论前必须登录!
注册